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 CaptainJack, 05-29-2026, 05:09 AM
|
0 responses
434 views
0 likes
|
Last Post
by CaptainJack
05-29-2026, 05:09 AM
|
||
|
Started by CaptainJack, 05-29-2026, 12:02 AM
|
0 responses
282 views
0 likes
|
Last Post
by CaptainJack
05-29-2026, 12:02 AM
|
||
|
Started by charlesugo_1, 05-26-2026, 05:03 PM
|
0 responses
243 views
1 like
|
Last Post
by charlesugo_1
05-26-2026, 05:03 PM
|
||
|
Started by DannyP96, 05-18-2026, 02:38 PM
|
1 response
331 views
0 likes
|
Last Post
|
||
|
Started by CarlTrading, 05-11-2026, 05:56 AM
|
0 responses
292 views
0 likes
|
Last Post
by CarlTrading
05-11-2026, 05:56 AM
|

Comment