I ran my KDTestSync indicator, set to 1 Min with CalculateOnBarClose = true, on YM and ES in the middle of the night when activity is low. There are some 1 min periods with no activity on instrument or the other.
Below, on line 2, Bar Series 1 closes its 1:19:00 AM bar. Then, on line 3, Bar Series 1 closes its 1:20:00 AM Bar. After that, on line 4, Bar Series 0 closes its 1:19:00 AM Bar. This has got to be a bug; if Bar Series 0 had any actvity during the 1:19:00 AM Bar, it should have been closed when the 1:19:00 AM Bar for Bar Series 1 was closed.
BarsInProgress=0: Times[0][0]: 12/18/2009 1:18:00 AM, Times[1][0]: 12/18/2009 1:18:00 AM, Closes[0][0]: 10302, Closes[1][0]: 1098.5, Volumes[0][0]: 3, Volumes[1][0]: 95, BarsArray[0].TickCount: 1, BarsArray[1].TickCount: 2 BarsInProgress=1: Times[0][0]: 12/18/2009 1:18:00 AM, Times[1][0]: 12/18/2009 1:19:00 AM, Closes[0][0]: 10302, Closes[1][0]: 1098.5, Volumes[0][0]: 3, Volumes[1][0]: 480, BarsArray[0].TickCount: 9, BarsArray[1].TickCount: 1 BarsInProgress=1: Times[0][0]: 12/18/2009 1:18:00 AM, Times[1][0]: 12/18/2009 1:20:00 AM, Closes[0][0]: 10302, Closes[1][0]: 1098.5, Volumes[0][0]: 3, Volumes[1][0]: 28, BarsArray[0].TickCount: 9, BarsArray[1].TickCount: 1 BarsInProgress=0: Times[0][0]: 12/18/2009 1:19:00 AM, Times[1][0]: 12/18/2009 1:20:00 AM, Closes[0][0]: 10301, Closes[1][0]: 1098.5, Volumes[0][0]: 15, Volumes[1][0]: 28, BarsArray[0].TickCount: 1, BarsArray[1].TickCount: 1 BarsInProgress=1: Times[0][0]: 12/18/2009 1:19:00 AM, Times[1][0]: 12/18/2009 1:21:00 AM, Closes[0][0]: 10301, Closes[1][0]: 1098.25, Volumes[0][0]: 15, Volumes[1][0]: 23, BarsArray[0].TickCount: 13, BarsArray[1].TickCount: 1 BarsInProgress=0: Times[0][0]: 12/18/2009 1:21:00 AM, Times[1][0]: 12/18/2009 1:21:00 AM, Closes[0][0]: 10301, Closes[1][0]: 1098.25, Volumes[0][0]: 67, Volumes[1][0]: 23, BarsArray[0].TickCount: 1, BarsArray[1].TickCount: 2
From the NT7 Code Breaking Changes document:
CurrentBar internal pointers are now first updated for all bar series with the same timestamp before OnBarUpdate() will be triggered. This ensures that accessing bars across multiple series will be in sync regardless of which BarsInProgress context you may be working out of.
It's already quite hard to write reliable multi-instrument indicators & strategies; if time can go backwards it will be even harder.
Thanks,
Kevin

Comment