When the indicator is implemented on using historical data, the arrow logic is reversed. (See diagram) When the indicator is implemented while replay data is running, the arrow is not displayed. Both hint that the syntax [-1] referring to the previous bar is not working. Do not know how to fix. Appreciate if someone can help.
namespace NinjaTrader.Indicator
{
public class MyUniversalOsc : Indicator
{
#region Variables
private int bandEdge = 20;
private double a1, b1, c1, c2, c3;
private DataSeries WhiteNoise, Filt, Peak;
private double universal;
#endregion
protected override void Initialize()
{
Add(new Plot(Color.FromKnownColor(KnownColor.Red), PlotStyle.Line, "MyUniversalOscValue"));
Add(new Plot(Color.FromKnownColor(KnownColor.LightBlue), PlotStyle.Line, "ZeroLine"));
Overlay = false;
WhiteNoise = new DataSeries(this);
Filt = new DataSeries(this);
Peak = new DataSeries(this);
}
protected override void OnBarUpdate()
{
if (CurrentBar < 2)
{
Peak.Set(0.0000001);
return;
}
if (UniversalOsc(Close, bandEdge)[0] > 0 && UniversalOsc(Close, bandEdge)[-1] < 0)
DrawArrowUp("myArrow" + CurrentBar, 0, Low[0] - (TickSize), Color.Blue);
else
if (UniversalOsc(Close, bandEdge)[0] < 0 && UniversalOsc(Close, bandEdge)[-1] > 0)
DrawArrowDown("myArrow" + CurrentBar, 0, High[0] + (TickSize), Color.Red);
else
{RemoveDrawObject("tag"+CurrentBar);}
}
Comment