I hope you can help me understand why a certain behaviour in Ninjatrader 8 occurs. My first thought, of course, is that it was the commonly reported 'lag', but I do not belive this is the case, What I observe happens with the FXCM data feed (I cannot try others), and in fast moves, the BID/ASK, which drives price in this case (according to NT docs), separates from the bar high/lows. In case this is not clear. If you plot the bid/ask in real-time, it can be significantly higher than the bar high, or maybe lower than the bar low. This only happens when the price moves fast, and the bid/ask appears to lead the last reported price by the bar. Allow a very short period of slower movement, and the 2 will catch each other up. Here is a minor example. I have seen up to 50 ticks in extreme moves. The green shaded area is the bid/ask. The 2 black lines are plotting the bid/ask/close from another indicator, too. Just for testing and to be sure all indicators on the chart are getting the same bid/ask/close results (they are). Lines are plotted in OnRender. BID/ASK prices are sourced from calls to GetCurrentBid() GetCurrentAsk()
I did not believe it was the chart 'lag' issue, as these lines are being plotted by indicators on the chart. i.e., they are not lagging. Only the price bars are lagging in their display. It can get far more extreme than this. In the ninjatrader documentation, it states that for this provider, "Chart data is driven from the current bid price", but as far as I can see, this is not currently the case. The reason I state this, is I have observed bid/ask shoot way ahead of price bar during volatility, etc, only for the price bar to not entirely follow to the extremes of the bid/ask, sometimes significantly. Again, bid//ask appears to 'lead' during velocity moves, sometimes by a quite considerable amount rather than simply report the last traded price, then revert to the price bar as things slow down/change direction. The price bar does not necessarily reach the extremes of where the bid was shown.
My suspicion was the ninjatrader documentation is wrong, and the 'Close' reported to the bartype is not really the BID (or isn't anymore), or that somehow, the bars are decoupled from the data the indicators are receiving. I would appreciate it if you could offer any insight into what might be happening here. Should the data reported to a bar type in OnDataPoint() match the data provided to the Indicators in OnBarUpdate, lock-step? Can a bar type lag indicators? (I had thought they were all on the same single thread, running sequentially). Is the documentation for this provider still correct?
Again, any additional insight into why this occurs would be appreciated.
Many thanks.

Comment