What it means
One-Cancels-Other is an order construct that bundles two orders together: when either one fills, the other is automatically cancelled. The standard use case is bracketing an open position with a take-profit limit AND a stop-loss stop simultaneously — whichever side hits first closes the position and removes the other order. Without OCO, you'd need to manually cancel the unused side, leaving a window where both could fire on a fast move.
Why it matters
OCO is the canonical exit structure for any trade with both a target and a stop. Manually managing the two orders separately is operationally fragile — a fast move that touches both within the same minute can leave you double-filled with an inverted exit position. OCO eliminates that risk entirely.
How to use it
Every entry should ship with an OCO exit: stop-loss at the invalidation level, take-profit at the planned target. Set the OCO immediately after the entry fills. For multi-target exits (partial closes at 1R, 2R, 3R), use multiple OCOs each tied to its respective stop or use the platform's bracket-order construct.
Long EUR/USD 1.0850. OCO: take-profit limit at 1.0910 (+60 pips), stop-loss at 1.0820 (-30 pips). Price hits 1.0820 → stop triggers, take-profit limit cancels. Price hits 1.0910 → take-profit fills, stop cancels.
OCO vs bracket orders
Brokers differ in naming: 'OCO' typically describes a pair of independent orders; 'bracket order' (or 'OTO + OCO') describes a parent entry order that automatically triggers a bracketed OCO exit upon fill. Functionally equivalent but the bracket-order setup is one-click; raw OCO requires two steps. For high-frequency or multi-position strategies, the bracket-order shortcut prevents the 'forgot to set the stop' mistake.
Triple bracket: stop + scale-out + runner
Advanced bracket structures split position into thirds: 1/3 closed at 1R for risk-free, 1/3 closed at 2R for compound, 1/3 trailing for runner. Each leg has its own exit logic but shares the same initial stop. Most retail platforms support this via a sequence of OCOs; some pro platforms (NinjaTrader, Sierra Chart, Trader Workstation) have dedicated 'auto-scale' constructs.
Frequently asked
Can I use OCO for entries instead of exits?
Yes — common pattern is buy-stop above resistance OCO with sell-stop below support. Whichever level breaks first triggers the entry and cancels the other side. Bracket the position breakout-direction-aware.
What happens if both legs of an OCO are triggered simultaneously?
By design, the first leg to FILL cancels the other. In practice, the matching engine processes orders sequentially even within the same microsecond, so one fills first. Edge case: gaps that price through both levels — the side actually reached fills, the other cancels.
Are OCOs server-side or client-side?
Modern broker platforms run OCOs server-side, so the cancellation happens at broker infrastructure when one leg fills. Always confirm — client-side OCO is fragile (disconnections leave both orders live).
Want a worked example or a deeper dive? Ask Rocky how this concept applies to your specific watchlist or trade idea.
Ask Rocky