Welcome to NexusFi: the best trading community on the planet, with over 150,000 members Sign Up Now for Free
Genuine reviews from real traders, not fake reviews from stealth vendors
Quality education from leading professional traders
We are a friendly, helpful, and positive community
We do not tolerate rude behavior, trolling, or vendors advertising in posts
We are here to help, just let us know what you need
You'll need to register in order to view the content of the threads and start contributing to our community. It's free for basic access, or support us by becoming an Elite Member -- see if you qualify for a discount below.
-- Big Mike, Site Administrator
(If you already have an account, login at the top of the page)
Contingent orders (CO) and contingent multiple orders (CMO) are orders, whose execution or cancellation depends upon the execution of another order.
OCO orders are a common case, where a limit order (profit target) is linked to stop or stop limit order (stop loss). If one of the orders is executed, the other one will automatically be cancelled.
In most cases OCO orders are not native exchange orders, but the OCO functionality is controlled by the trading front-end or the broker. This is the check list to be followed:
(1) You enter an OCO order into your trading front-end, for example NinjaTrader
(2) If the Broker supports OCO and if the NinjaTrader/Broker API supports OCO (!), then the limit order, the stop order and the instruction to cancel one of them if the other is executed, will be transmitted to the broker.
Otherwise NinjaTrader will only send a limit and a stop order.
(3) If the condition (2) is true and the exchange natively supports OCO, and if the broker/exchange interface supports OCO(!), then the broker will transmit the limit order, the stop order and the instruction to cancel one of them if the other is executed to the exchange. Otherwise the broker will simply send unconditional limit and stop orders to the exchange.
The OCO functionality can only be guaranteed, if it is sitting in the exchange. If it is simulated by the broker or by NinjaTrader, there is always the possibility that the second leg of the OCO order is hit, before it can be removed. This is particularly true, if the two bracket orders are close to each other.
Which Exchanges Support Native OCO ?
I do not think that CME or ICE support OCO orders. The only exchange for which I know that OCO orders are accepted is EUREX.
I bet that most of the brokers keep the OCO functionality on their servers, even if they could send it to the exchange. Guess it is too expensive to program the interface with the exchange required to transmit the OCO logic. For example, CQG does not send OCO to EUREX. I must admit that I even don't know whether Interactive Brokers sends an OCO order to EUREX or just a limit and a stop order, then cancelling the order from their servers, when one of them is triggered.
Does this mean Eurex offers this functionality via their API or their GUI only?
Because of the different scenarios discussed here I have opted (a long time ago) to not use OCO orders. I'm not using NinjaTrader.
I submit opening orders along with an attached Stop-Loss (Market) order. The SL-order is a native order and will reside on the Exchange servers (Eurex).
Target is managed on my PC, when it is hit (or I opt to click a different price) an order will be submitted.
Yes, I experience slippage due to using market orders but I accept that.
ALL orders submitted by NinjaTrader are passed through to the broker/exchange with the exception of our optional simulated stop orders which a user would purposely select. If a set of orders have OCO functionality attached (such as our ATM stops/targets) then for IB and TDA, the OCO functionality resides on their servers otherwise the OCO functionality resides on NinjaTrader.
Thanks for this post. Everyone on this thread talks about cancellation but OCO (from NinjaTrader perspective) needs to more than that. It's also about proportional order quantity reduction on partial fills. For example, 2 lot OCO stop/target orders working. The target limit order gets a partial fill of 1. Any technology partner that we support for OCO must also have proportional quantity reduction which would then reduce the stop order to a quanty of 1. NinjaTrader's client side OCO simulation does exactly this as does IB and TDA. The risk in not doing this is that if the market travels back to your stop you will now find yourself in an opposition position with a quanity of 1 with only 1/2 protected.
Thanks Ray. I did not mean to imply that profit target and stop loss orders were local. I knew they were at the exchange. But they are not exchange held OCO (instead requires client to be live and well in order to be cancelled).
As @Fat Tails pointed out, it seems that CME doesn't even support native OCO. I tried to disprove this (because, surely they do!!) but so far have been unable to do so. That amazes me a bit.
So the next best thing to exchange held OCO would be server held OCO (broker gateway server), as the likelihood of a client failure (software problem, internet problem, power problem, computer crash, etc) is far higher than a server problem. So it would be nice to see more brokers supporting server held OCO capabilities - other than just IB and TDA.
Back in the day....floor brokers/locals used to take OCOs and it was up to them to cancel it and it was a common practice to place it with them. However, they did say on a "non held basis" meaning that they will used best efforts but they don't guarantee cancellation of one side if the other is filled.
I was trying to say on page # 3 of this thread that OCO are not exchange held because the exchange does not want to take the responsibility for fast markets that could trigger both stop and limit.
As a last thing I would say this: In a really fast/volatile market BOTH stop and limit could trigger even if orders are held on a server!! that means from a risk management you still have to watch position and see the cancellation for yourself especially if stop and limit are tight and close to point of entry.
Trading futures and options involves substantial risk of loss and is not suitable for all investors. Past performance is not necessarily indicative of future results. You may lose more than your initial investment. All posts are opinions and do not claim to be facts. Please conduct your own due diligence. Use only Risk capital when trading Futures.
1 800 771 6748 local 561 367 8686 email [email protected]
If a market is moving that fast, then you are going to get killed using a client-based cancellation order. At least the broker gateway server should be only microseconds from the matching engine.
But I am guessing brokers don't want the responsibility either, just like Exchange. And since most people don't ask for it or demand it, then why bother.
We don't control this technology
I try to
1) Inform
2) Support during down time
3) Give honest opinion based on customer needs.
What else could we do?
Trading futures and options involves substantial risk of loss and is not suitable for all investors. Past performance is not necessarily indicative of future results. You may lose more than your initial investment. All posts are opinions and do not claim to be facts. Please conduct your own due diligence. Use only Risk capital when trading Futures.
1 800 771 6748 local 561 367 8686 email [email protected]