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 Mindset, 04-21-2026, 06:46 AM
|
0 responses
90 views
0 likes
|
Last Post
by Mindset
04-21-2026, 06:46 AM
|
||
|
Started by M4ndoo, 04-20-2026, 05:21 PM
|
0 responses
137 views
0 likes
|
Last Post
by M4ndoo
04-20-2026, 05:21 PM
|
||
|
Started by M4ndoo, 04-19-2026, 05:54 PM
|
0 responses
68 views
0 likes
|
Last Post
by M4ndoo
04-19-2026, 05:54 PM
|
||
|
Started by cmoran13, 04-16-2026, 01:02 PM
|
0 responses
120 views
0 likes
|
Last Post
by cmoran13
04-16-2026, 01:02 PM
|
||
|
Started by PaulMohn, 04-10-2026, 11:11 AM
|
0 responses
72 views
0 likes
|
Last Post
by PaulMohn
04-10-2026, 11:11 AM
|

Comment