Hello: I am running an algorithmic trading strategy (scratch written ie: not Ninja or TS) that uses the IB api to manage orders. Licensing the software to someone else is currently complex and time consuming due to the duplication of the processes on the customers platform. Then there is the monitoring of multiple separate systems.
I’ve been looking at the C2 api, and I think moving customers over to C2, then using the C2 api to transmit orders from my system to IB or the other brokers you support would greatly simplify things for us.
However, I don’t understand how I would manage trades using C2
My orders are Stop Limit orders. They are either cancelled or filled. When filled, I get a msg back from IB api with the fill and other details, and my application uses that to manage the trade. What I don’t understand about the C2 system, is how does it differentiate between different users/accounts? Like for example, if user Bob got all 10 contracts filled at x price, and user Sally only got 5 contracts filled at a slightly different price - this would mean that both accounts positions would have to be managed differently. Does the C2 api send a message back with the account ID and fill info?
What you manage at C2 is a hypothetical system. Once you fill an order in your system, which means when the market price of the C2 data feed touches your order price, your order becomes filled. If any autotrader fills the order, your order becomes filled. After a few minutes, your fill price on C2 is updated with the VWAP or all fills by live Autotraders that have filed the order.
If one of the Autotraders doesn’t fill a conditional order, our trading engine will convert it to a market order after a few seconds to ensure they stay in sync with your system.
C2 does not report the live Autotraders fill quantities to you. Your strategy needs to be separated from the individual volume traded to avoid falling under regulatory rules that would require you to be registered as an asset manager.
Just to add a bit to what Francis wrote:
I think what Francis (and I) are suggesting is that you need to alter you mindset a little. When you are a Strategy Manager working with C2, your goal is very simple: Manage your Model Account, and generate profits there. That’s it. In other words, don’t worry about subscribers, and which broker they are trading at, or how large are their trades, or which individual subscriber gets filled or not.
Just manage your Model Account here at C2.
We’ll worry about all the other stuff.
That’s really the magic of C2, and the magic of C2 AutoTrading. We take care of all your subscribers’ autotrading. We make sure their brokerage accounts stay in sync with your Model Account intentions.
To use the example you mentioned in your original post:
If you issue a limit order, and 10 of your subscribers get the limit price, but the other 5 don’t, we’ll convert the unlucky five to a market order in order to make sure everyone stays in sync with your Model Account. That way, you just need to worry about trading your Model Account here on C2. (We’ll adjust your Model Account P/L results to incorporate the fact that some of your followers didn’t get optimal fills; the fill price on the C2 Model Account will be the volume-weighted average price (VWAP) of all your subscribers’ fills – both lucky and unlucky ones.)
So, whether you are using our API to enter trades via a computer program, or whether you are manually typing trades into our Web order-entry screen, it doesn’t matter. The answer is the same: Just worry about managing the one Model Account, and let C2 handle all the other stuff related to synchronicity with your AutoTrading subscribers.
P.S. We don’t support Stop-Limit orders. We do support stops, and we do support limits. We also support market orders.