I am trying to get values of delta on two different instruments using Volumetric bars - and the data seems to mismatch ( either its a bar behind - sometimes it repeats from the previous bar - and sometimes the number is completely different) attached is the code I am using :
else if (State == State.Configure)
{
if (Bars.BarsPeriod.BarsPeriodType == BarsPeriodType.Volumetric)
{
AddVolumetric(FirstInstrument,BarsPeriodType.Minut e,Bars.BarsPeriod.Value,VolumetricDeltaType.BidAsk ,1);
AddVolumetric(SecondInstrument,BarsPeriodType.Minu te,Bars.BarsPeriod.Value,VolumetricDeltaType.BidAs k,1);
}
else
{
AddVolumetric(FirstInstrument,Bars.BarsPeriod.Bars PeriodType,Bars.BarsPeriod.Value,VolumetricDeltaTy pe.BidAsk,1);
AddVolumetric(SecondInstrument,Bars.BarsPeriod.Bar sPeriodType,Bars.BarsPeriod.Value,VolumetricDeltaT ype.BidAsk,1);
}
}
}
protected override void OnBarUpdate()
{
if (CurrentBars[0] <= BarsRequiredToPlot || CurrentBars[1] <= BarsRequiredToPlot || CurrentBars[2] <= BarsRequiredToPlot)
return;
NinjaTrader.NinjaScript.BarsTypes.VolumetricBarsTy pe barsType1 = BarsArray[1].BarsType as NinjaTrader.NinjaScript.BarsTypes.VolumetricBarsTy pe;
if (barsType1 == null) return;
NinjaTrader.NinjaScript.BarsTypes.VolumetricBarsTy pe barsType2 = BarsArray[2].BarsType as NinjaTrader.NinjaScript.BarsTypes.VolumetricBarsTy pe;
if (barsType2 == null) return;
double deltaMom1 = barsType1.Volumes[CurrentBars[1]].BarDelta;
double deltaMom2 = barsType2.Volumes[CurrentBars[2]].BarDelta;
if (BarsInProgress == 0 )
{
if (deltaMom2 >= 0 )
{
Draw.Text(this, "Delta1" + CurrentBar, true, deltaMom1.ToString() ,0, High[0] + 1 * TickSize ,0, Brushes.Orange,VolFont,TextAlignment.Center,Brushe s.Transparent,Brushes.Transparent,0);
Draw.Text(this, "Delta2" + CurrentBar, true, deltaMom2.ToString() ,0, High[0] + 1.5 * TickSize ,0, Brushes.Orange,VolFont,TextAlignment.Center,Brushe s.Transparent,Brushes.Transparent,0);
}
if (deltaMom2 < 0)
{
Draw.Text(this, "Delta3" + CurrentBar, true, deltaMom1.ToString() ,0, Low[0] - 1 * TickSize ,0, Brushes.Orange,VolFont,TextAlignment.Center,Brushe s.Transparent,Brushes.Transparent,0);
Draw.Text(this, "Delta4" + CurrentBar, true, deltaMom2.ToString() ,0, Low[0] - 1.5 * TickSize ,0, Brushes.Orange,VolFont,TextAlignment.Center,Brushe s.Transparent,Brushes.Transparent,0);
}
}
}

Comment