I need to design a strategy that monitors all orders on an account, regardless of which strategy entered the orders, or if they were entered manually.
Is is possible to "globally" monitor orders? I experimented with the OnExecution() event but it only fires for order events created by its own strategy. If no such event is available, I would be fine with looping through an array of orders to check for changes, if such an array exists.
Again, I need to monitor all orders on the account. The goal is to upload any account changes to a signal server for distribution to signal subscribers.
Have you guys considered the Automated Trading Interface? The DLL interface I believe you have a function to get market position but you need the account and instrument as parameters. The file interface deposits a file with market position interface named by instrument.
The ATI might not be the best solution for this, and it seems to have been deprecated from an official NT Support standpoint. Or am I wrong?
I am far from expert but getting NT to talk to an upstream OMS has been a challenge for me. If I have a room full of NT users I can use Rithmic's tools or TT's tools on an account level but the "roll my own" OMS/Risk system has been a challenge. I'm now considering vanilla FIX as quickFIX is part of the default NT install, but it goes back to the OP question of a global OnExecution() as opposed to a strategy-specific method.
Let's see what the community comes up with.
BTW its great to see you and DTN and a few of the other major vendors chime in here. It speaks loads to your commitment to your product.
Last edited by MXASJ; March 31st, 2011 at 10:08 AM.
No, it has not been deprecated although we used to have a .NET interface in additional to the DLL and File approach and this has been deprecated. Putting things into perspective, the ATI was originally built to support users of TradeStation and eSignal as a pipe to get signals over to NinjaTrader for order execution. Since we introudced our own scripting years back, more users have opted to use our application instead of trying to bridge it with other applications..so the ATI is not as heavily used as in the past.
We are happy to be here and help where and when we can.
0MQ (and its competitors) is something I'm spending a lot of time on. But it goes back to the OP question about a global OnOrderUpdate() or OnExecution() method. There isn't one.
I'm quietly hoping the OP looks at my snip, writes some code that does a time-based array check of open positions and creates a new event-driven method, and posts it here to make the world a better place .
Or user NinjaTrader gets the dev guys to add a OnAccountOrderUpdate() and a OnAccountExecution() method.