i am new to ninja trader 8 and its programming platform.
kindly guide me how to resolve this error.
Error on calling OnBarUpdate method on bar 0 ,you are accessing an index with a value
that is invalid since it is out of range.
My aim is to get green vol bar when current candle close is above previous candle,
and similarly red vol bar when candle close is below previous candle close and
blue volume bar when above two conditions does not match.
code :
namespace NinjaTrader.NinjaScript.Indicators
{
public class updownplot : Indicator
{
protected override void OnStateChange()
{
if (State == State.SetDefaults)
{
Description = @"Enter the description for your new custom Indicator here.";
Name = "updownplot";
Calculate = Calculate.OnBarClose;
IsOverlay = false;
DisplayInDataBox = true;
DrawOnPricePanel = false;
DrawHorizontalGridLines = true;
DrawVerticalGridLines = true;
PaintPriceMarkers = false;
ScaleJustification = NinjaTrader.Gui.Chart.ScaleJustification.Right;
//Disable this property if your indicator requires custom values that cumulate with each new market data event.
//See Help Guide for additional information.
IsSuspendedWhileInactive = true;
AddPlot(new Stroke(Brushes.Green, 2), PlotStyle.Bar, "UpVol");
AddPlot(new Stroke(Brushes.Red, 2), PlotStyle.Bar, "DownVol");
AddPlot(new Stroke(Brushes.Blue, 2), PlotStyle.Bar, "DVol");
}
else if (State == State.Configure)
{
}
}
protected override void OnBarUpdate()
{
//Add your custom indicator logic here.
double curC = Close[0];
double curP = Close[1];
double curV = Volume[1];
if (curC > curO )
{
UpVol[0]=curV;
}
else if (curC < curO )
{
DownVol[0]=curV;
}
else // (curC = curO)
{
DVol[0]=curV;
}
}
}
}
Comment