TL;DROne-Cancels-Other. Two linked orders where filling one automatically cancels the other. The mechanism behind bracket order exits and any situation where you have two mutually exclusive outcomes.
An OCO (One-Cancels-Other) order links two separate orders together. When either order fills, the other is automatically canceled. This prevents you from accidentally doubling your position or having a stale order sitting in the market.
The most common use is pairing a profit target (sell limit) with a stop loss (sell stop) on a long position. Whichever gets hit first cancels the other. You can't accidentally have both fill.
When you submit an OCO pair, both orders go to the exchange simultaneously. They sit in the market independently, each waiting for its trigger condition. The link between them is maintained by your broker's order management system.
If the profit target fills, the broker immediately sends a cancel request for the stop loss. If the stop fills, the broker cancels the target. In practice, the cancellation happens in milliseconds, but there is a theoretical risk that both orders could fill in an extremely fast market (called a double fill). This is rare but not impossible.
Most platforms display OCO pairs as a single unit in your order panel, making them easy to manage and modify together.
While brackets are the most common use of OCO, the concept applies anywhere you have two mutually exclusive trade ideas.
For example, you might want to buy ES if it breaks above 5,220 OR if it pulls back to 5,190 support. You could place a buy stop at 5,220 and a buy limit at 5,190 as an OCO pair. Whichever fills first cancels the other, so you only enter once.
Some traders also use OCO orders to manage exits across correlated markets. If you're long both ES and NQ, you might OCO-link your stops so that if one triggers, the other is also canceled (though this requires more advanced order management).
Standard OCO exit
You're long 1 ES from 5,200. You place an OCO: sell limit at 5,215 (target) and sell stop at 5,190 (stop loss).
If ES reaches 5,215, your profit target fills for +$750 and the stop at 5,190 is automatically canceled. If ES drops to 5,190 first, your stop fills for -$500 and the target at 5,215 is canceled. You can only exit once.
OCO for entry selection
You're watching ES range between 5,190 and 5,210. You want to trade a breakout in either direction.
Place an OCO: buy stop at 5,211 (upside breakout) and sell stop at 5,189 (downside breakout). Whichever direction breaks first, you enter that trade. The other order cancels so you don't end up with conflicting positions.
Placing separate stop and target orders without linking them as OCO
Unlinked orders won't cancel each other. If your target fills but your stop is still active, you could accidentally re-enter the market and end up with an unintended position.
Not checking that your OCO is properly linked after modification
If you modify one leg of an OCO pair, some platforms may unlink it. Always verify both legs show as a linked pair after making changes.
Assuming OCO prevents all double fills
In extremely fast markets, both legs can theoretically fill before the cancel propagates. This is very rare in liquid products like ES, but be aware it's possible.