protected override void OnBarUpdate()
{
if (CurrentBar < 45)
return;
bool bNBarsUpEvent = false;
bool bNBarsDownEvent = false;
for (int i = 0; i <= 7; i++)
{
double valueUp = NBarsUp(nBarsPeriod, true, true, true)[i];
double valueDown = NBarsDown(nBarsPeriod, true, true, true)[i];
if (valueUp == 1)
{
bNBarsUpEvent = true;
BackColor = Color.Green;
}
if (valueDown == 1)
{
bNBarsDownEvent = true;
BackColor = Color.Red;
}
}
}
Announcement
Collapse
No announcement yet.
Partner 728x90
Collapse
NinjaTrader
Why error in log with NBarsUpEvent in for loop
Collapse
X
-
Why error in log with NBarsUpEvent in for loop
Hi, I am trying to check if there was an NBarsUp or -Down event during the last 7 bars. I tried this, but it doesn't work and I get an error message in the log: "Error on calling 'OnBarUpdate' method [...] You are accessing an index with a value that is invalid since its out of range.":
I don't understand why it's not working.Code:Tags: None
-
Hello Lonneman,
I would first try using our built in method CountIf() for this. Example usage below- checks if there has been any occurrence of NBarsup 3 within the last 7 bars and marks with a diamond.
if (CountIf(delegate {return NBarsUp(3, true, true, true)[0] == 1;}, 7) > 0)
{
DrawDiamond("" + CurrentBar, true, 0, High[0], Color.Red);
}Ryan M.NinjaTrader Customer Service
Latest Posts
Collapse
| Topics | Statistics | Last Post | ||
|---|---|---|---|---|
|
Started by Hwop38, 05-04-2026, 07:02 PM
|
0 responses
160 views
0 likes
|
Last Post
by Hwop38
05-04-2026, 07:02 PM
|
||
|
Started by CaptainJack, 04-24-2026, 11:07 PM
|
0 responses
307 views
0 likes
|
Last Post
by CaptainJack
04-24-2026, 11:07 PM
|
||
|
Started by Mindset, 04-21-2026, 06:46 AM
|
0 responses
245 views
0 likes
|
Last Post
by Mindset
04-21-2026, 06:46 AM
|
||
|
Started by M4ndoo, 04-20-2026, 05:21 PM
|
0 responses
348 views
0 likes
|
Last Post
by M4ndoo
04-20-2026, 05:21 PM
|
||
|
Started by M4ndoo, 04-19-2026, 05:54 PM
|
0 responses
178 views
0 likes
|
Last Post
by M4ndoo
04-19-2026, 05:54 PM
|

Comment