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 CaptainJack, 05-29-2026, 05:09 AM
|
0 responses
51 views
0 likes
|
Last Post
by CaptainJack
05-29-2026, 05:09 AM
|
||
|
Started by CaptainJack, 05-29-2026, 12:02 AM
|
0 responses
32 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
99 views
0 likes
|
Last Post
by charlesugo_1
05-26-2026, 05:03 PM
|
||
|
Started by DannyP96, 05-18-2026, 02:38 PM
|
1 response
177 views
0 likes
|
Last Post
|
||
|
Started by CarlTrading, 05-11-2026, 05:56 AM
|
0 responses
170 views
0 likes
|
Last Post
by CarlTrading
05-11-2026, 05:56 AM
|

Comment