Announcement
Collapse
No announcement yet.
Partner 728x90
Collapse
NinjaTrader
Breakout of previous High/Low
Collapse
X
-
Breakout of previous High/Low
I am trying to write a strategy that includes a breakout of a previous High/Low of x bars ago. I am detecting the correct previous bar with the highest high or lowest low but my problem is detecting when the previous High/Low gets broken. I have it looking for a cross above/below but it doesn't work because when a hew high/low is hit, the previous high/low gets reset. I'm sure I'm missing something simple to get this to work. I attached the current code I'm using.....Tags: None
-
Hello mlarocco,
I believe in this case you would need to use a class level variable and then find the highest and lowest values after you check the cross condition. That would let you delay reading the new highest/lowest values by 1 bar. That would look like the following:
Code:private int highestBarsAgo; private int lowestBarsAgo; protected override void OnBarUpdate() { if (BarsInProgress != 0) return; if (CurrentBars[0] < 60) return; //evaluate high price from highest bars ago value double HighestPrice = High[highestBarsAgo]; double LowestPrice = Low[lowestBarsAgo]; Print ("Highest Bar is " + highestBarsAgo); Print("Highest price is " + HighestPrice); Print("Current High is " + High[0]); // Set 1 if (CrossAbove(High, HighestPrice, 1)) { BarBrush = Brushes.Blue; } // Set 2 if (CrossBelow(Low, LowestPrice, 1)) { BarBrush = Brushes.Yellow; } highestBarsAgo = HighestBar(High, 60); lowestBarsAgo = LowestBar(Low, 60); }
-
Thanks, I will give it a tryOriginally posted by NinjaTrader_Jesse View PostHello mlarocco,
I believe in this case you would need to use a class level variable and then find the highest and lowest values after you check the cross condition. That would let you delay reading the new highest/lowest values by 1 bar. That would look like the following:
Code:private int highestBarsAgo; private int lowestBarsAgo; protected override void OnBarUpdate() { if (BarsInProgress != 0) return; if (CurrentBars[0] < 60) return; //evaluate high price from highest bars ago value double HighestPrice = High[highestBarsAgo]; double LowestPrice = Low[lowestBarsAgo]; Print ("Highest Bar is " + highestBarsAgo); Print("Highest price is " + HighestPrice); Print("Current High is " + High[0]); // Set 1 if (CrossAbove(High, HighestPrice, 1)) { BarBrush = Brushes.Blue; } // Set 2 if (CrossBelow(Low, LowestPrice, 1)) { BarBrush = Brushes.Yellow; } highestBarsAgo = HighestBar(High, 60); lowestBarsAgo = LowestBar(Low, 60); }
Comment
Latest Posts
Collapse
| Topics | Statistics | Last Post | ||
|---|---|---|---|---|
|
Started by CarlTrading, 03-31-2026, 09:41 PM
|
1 response
77 views
1 like
|
Last Post
|
||
|
Started by CarlTrading, 04-01-2026, 02:41 AM
|
0 responses
40 views
0 likes
|
Last Post
by CarlTrading
04-01-2026, 02:41 AM
|
||
|
Started by CaptainJack, 03-31-2026, 11:44 PM
|
0 responses
63 views
2 likes
|
Last Post
by CaptainJack
03-31-2026, 11:44 PM
|
||
|
Started by CarlTrading, 03-30-2026, 11:51 AM
|
0 responses
63 views
0 likes
|
Last Post
by CarlTrading
03-30-2026, 11:51 AM
|
||
|
Started by CarlTrading, 03-30-2026, 11:48 AM
|
0 responses
53 views
0 likes
|
Last Post
by CarlTrading
03-30-2026, 11:48 AM
|

Comment