However, I don't think it's the case for 3 reasons :
1) There is no evidence that bid/ask info and trade info is sent asynchronously by the exchanges, and by the data feed. I even don't see why bid/ask info should be asynchronous. At the exchange level, the bot making the trades has to have the correct bid/ask info. So the bid/ask info and trade info should be synchronous at the exchange level. I don't see why they would become asynchronous later on the data feed level. I may be completely mistaken, so if anyone has the correct info, it would be cool to enlight us.
2) Bid/ask info and trade info are processed in the same event loop, OnMarketData, so if they arrive in the correct order to NT, they are processed in the same correct order.
3) I don't think there's multithreading implemented in the data processing layer in NT. The logic is event-driven (OnUpdate, OnMarketData etc), but event-driven does not mean multithreaded. For that you would need to launch event listener threads, an I don't think it's the case. Try opening charts, you will see it doesn't change the thread count. So I don't see any multi-threaded "race" conditions appearing at the NT level.
Comment