PDA

View Full Version : Indicator won't plot when alert is written in


maxpi
10-24-2007, 01:11 PM
I have the following code, it works fairly well, sometimes it stops ploting but it displays the current value at the side of the screen which is what I want always. When I include the section of code for generating the alert it does not plot and it does not display the current value.

protectedoverridevoid OnBarUpdate()
{
if (Bars.PercentComplete>0)
{
Plot0.Set(Volume[0] /Bars.PercentComplete);
}

/*
if (Volume[0] /Bars.PercentComplete >Volume[1])
{
Alert("myAlert", NinjaTrader.Cbi.Priority.High, "PRV", "Alert1.wav", 30, Color.Black, Color.Yellow);
}
*/
}

NinjaTrader_Dierk
10-24-2007, 01:16 PM
Is there any funny stuff in the logs?

maxpi
10-24-2007, 02:07 PM
I never think to go to the logs, sorry... it was trying to reference the bar before bar[0]...

I still wonder why, when updating every tick, it stops plotting at times, I can use it when it does that but it's annoying. If I reapply the indicators it brings the plot up to date.

NinjaTrader_Dierk
10-24-2007, 02:08 PM
Glad it's resolved for you.

KBJ
10-24-2007, 11:20 PM
I think this code might solve a couple of problems that I saw in the code...

protected override void OnBarUpdate()
{
if (CurrentBar == 0) return; // So we can access one bar back (Volume[1]).

if (Bars.PercentComplete > 0) // Has current bar started yet?
{ // Yes.
Plot0.Set( Volume[0] / Bars.PercentComplete ); // Pro-rate current volume.

if ( (Volume[0] / Bars.PercentComplete) > Volume[1] )
{
Alert( "myAlert", NinjaTrader.Cbi.Priority.High, "PRV",
"Alert1.wav", 30, Color.Black, Color.Yellow );
}
return;
}

//
// Current bar has not started yet...
//
Plot0.Set( Volume[1] ); // Display volume for last bar instead.
}...what I noticed was a potential divide-by-zero if PercentComplete was zero, and an access violation on the first bar if the Alert code was un-commented.

Hope this helps.

KBJ