This problem is most easily noticeable on relatively thin stocks (100-200K shares per day) that have decent price movement (at least 50 cents on the day). Of course, there's no way I can tell you which stocks will fit this criteria tomorrow, so you will probably need to test this on multiple stocks.
The easiest way to test this is to have two instances of NinjaTrader open at the same time. On one, create a simple strategy that prints the time and price whenever OnBarUpdate is fired. On the other, create a simple strategy that prints the time and price whenever OnMarketData is fired with a price update. Theoretically, both routines should print exactly the same number of lines with exactly the same values, but I'll guarantee that the OnMarketUpdate program has more prints. The problem does not occur often and may only happen on a few stocks per day, but it does occur during critical moments like when the stock is tanking.
I have experienced this situation many times, but I don't have the resources to run two occurrences of NinjaTrader nor the time to stare at one stock for an entire day. I have modified my program to print a line on every occurrence of OnBarUpdate and have seen many instances where there was as much as a 90-second delay between OnBarUpdate firings, but the price updated three or four times in Interactive Brokers. Since switching my program to use OnMarketData, I have never experienced this problem of missing prints.

Comment