I am an Apex Ninjatrader user. I’ve used NT-Rithmic to connect to my Apex accounts. I’ve also used Replikanto. I experienced the ongoing problem of the combination of these three leaving ghost orders on the NT chart when a trade-copied position is closed. The prescription given to eliminate these ghost orders is to either disconnect/reconnect Rithmic, or to enter a standing limit or stop market order away from price and close it, which will eliminate the ghost orders.
Both of these “solutions,” of course, are insufficient, and necessitate a real fix by those responsible. Unfortunately, all we get from the parties involved is finger-pointing. “It’s not us. It’s them.”
Being a long-time C# programmer, I’ve learned to write very complex NT indicators and strategies. My main strategy, which includes a new ChartTrader interface, is now essential to my trading.
Being dissatisfied with every trade copier I tried, I decided to write my own. I learned that it is best to include the trade copier in the strategy itself, because information about the order can be kept in the strategy which makes it easier to track orders in ways a separate add-on which only can respond to OnOrderUpdate, OnPositionUpdate, etc, cannot.
It works great. I've had no problem with it. It’s extremely reliable. Except, for one thing. And you guessed it. It was Ghost orders.
I did my best to solve the problem in my code. But nothing worked. Finally, I decided to try Apex Tradovate accounts. So, I canceled all my Rithmic accounts and replaced them with Tradovate accounts. Since then, I have not had one ghost order. I haven’t tried it with Replikanto, since I use my own copier, but I would be willing to bet this would solve the ghost order problem there as well.
So, the main problem is Rithmic. NT support told me that Rithmic is unorthodox in the order it returns order and position information to the trading platform, and my findings confirm that.
But the problem is also NinjaTrader. It would be easy for NT to add a background function which checks every few seconds whether an order that is on the platform actually exists on the exchange, and clear it if it doesn’t. I would have done that in my code if I knew how to tell ChartTrader to clear them. But all I can do is check for real orders, not ghost orders.
NT’s blasé, non-proactive attitude about this problem is baffling. Especially, since I would like to try TopStep, but TopStep only allows Rithmic with NT. And I don’t want to deal with ghost orders again. I would appreciate, and I know many others plagued by this problem would appreciate, if NT would take the bull by the horns and see that this problem gets solved. It’s ridiculous it has gone on this long. It makes one suspicious that, since NT owns Tradovate, they would rather people not use Rithmic.
--

Comment