Modified code:
namespace NinjaTrader.NinjaScript.Indicators
{
public class VolumeCustom : Indicator
{
protected override void OnStateChange()
{
if (State == State.SetDefaults)
{
Description = NinjaTrader.Custom.Resource.NinjaScriptIndicatorDe scriptionVolumeUpDown;
Name = "VolumeCustom";
Calculate = Calculate.OnBarClose;
IsOverlay = false;
IsSuspendedWhileInactive = true;
DrawOnPricePanel = false;
AddPlot(new Stroke(Brushes.Blue, 2), PlotStyle.Bar, NinjaTrader.Custom.Resource.VolumeUp);
AddPlot(new Stroke(Brushes.Red, 2), PlotStyle.Bar, NinjaTrader.Custom.Resource.VolumeDown);
AddPlot(new Stroke(Brushes.Gray, 2), PlotStyle.Bar, NinjaTrader.Custom.Resource.VOLVolume);
AddLine(Brushes.DarkGray, 0, NinjaTrader.Custom.Resource.NinjaScriptIndicatorZe roLine);
}
else if (State == State.Historical)
{
if (Calculate == Calculate.OnPriceChange)
{
Draw.TextFixed(this, "NinjaScriptInfo", string.Format(NinjaTrader.Custom.Resource.NinjaScr iptOnPriceChangeError, Name), TextPosition.BottomRight);
Log(string.Format(NinjaTrader.Custom.Resource.Ninj aScriptOnPriceChangeError, Name), LogLevel.Error);
}
}
}
protected override void OnBarUpdate()
{
if (Close[0] > Open[0])
{
Values[0][0] = Volume[0];
Values[1].Reset();
}
else if (Close[0] < Open[0])
{
Values[1][0] = Volume[0];
Values[1].Reset();
}
else
{
Values[0].Reset();
Values[2][0] = Volume[0];
}
}
}
}

Comment