Thank you for your patience.
We got further clarity on this item from development and you were correct.
GetCurrentAsk() and GetCurrentBid() can peak ahead to whatever the last updated price was for the instrument. Due to the multi-threaded nature of NinjaTrader 8 there is the possibility for the GetCurrentAsk() or GetCurrentBid() to see ahead of the instrument thread that updates MarketDataType events such as MarketDataType.Ask.
Please let me know if you have any questions.

Shaving those last few milliseconds off and trying to reduce latency at these levels gets costly and complex. Since NinjaTrader internal design is a factor it is likely be a smaller percentage of your total worries. Colocating for sure handles the largest source for latency but after that each millisecond gain on handling becomes increasingly difficult often requiring:
Comment