OCO Order
OCO (One Cancels the Other) links two orders so that when one order executes, the other is automatically cancelled. It’s a simple concept that helps you avoid “double execution” and manage trades more cleanly.
In plain English: “If this happens, cancel that.”
Quick Navigation
OCO is less about "strategy" and more about clean execution and risk management.
How OCO Works
With OCO, you place two orders as a linked pair. The platform monitors them together:
- If Order A executes, Order B is cancelled automatically.
- If Order B executes, Order A is cancelled automatically.
Simple OCO logic
OCO is often available on exchanges and advanced platforms. Some retail CFD platforms offer a version of it through “linked” stop-loss and take-profit settings.
Common Uses of OCO
1) Bracket exits (take-profit + stop-loss)
You enter a trade and attach:
- a take-profit (to lock gains), and
- a stop-loss (to cap losses).
If your take-profit hits, the stop-loss is cancelled. If your stop-loss hits, the take-profit is cancelled.
2) Breakout entry (up or down)
You expect a big move but don’t know the direction. You can place:
- Buy stop above the market (if it breaks upwards), and
- Sell stop below the market (if it breaks downwards).
OCO ensures only one side triggers, avoiding being filled on both sides in whipsaw conditions.
Important
OCO does not remove risk. It removes operational mistakes — like leaving conflicting orders open or accidentally entering twice.
Platform Considerations
Before relying on OCO, understand how your platform implements it:
- Server-side vs client-side: is the linking done on the broker/exchange server (better) or in your app (riskier if you disconnect)?
- Partial fills: if one leg partially fills, does the other leg cancel immediately or only after full fill?
- Modification: if you edit one leg (price/size), does the link remain intact?
- Attached orders: on some platforms, SL/TP are treated as OCO by default once a position is open.
Best practice
After placing OCO, always check your open orders list to confirm both legs are present and linked.
Example: Bracket Exit Using OCO
You buy EUR/USD at 1.1000. You set:
- Take-profit: 1.1050
- Stop-loss: 1.0975
These are linked as OCO:
- If price reaches 1.1050, your take-profit executes and your stop-loss is cancelled.
- If price falls to 1.0975, your stop-loss executes and your take-profit is cancelled.
This prevents the common mistake of leaving the “other order” open and accidentally reversing or doubling your position later.
Common OCO Mistakes (and Fixes)
- Assuming it’s server-side: some platforms link orders locally.
Fix: verify how your platform handles order linking. - Forgetting about partial fills: one leg may execute partially.
Fix: understand whether cancellation happens on partial or full execution. - Editing breaks the link: modifications can sometimes detach the OCO relationship.
Fix: re-check the orders after edits. - Using OCO without a plan: linking orders doesn’t replace a strategy.
Fix: define entry logic, risk and targets first.
Common Misconceptions
-
“OCO guarantees I won’t lose.”
OCO only manages order relationships. Your trade can still lose if the stop-loss triggers. -
“OCO is only for advanced traders.”
The concept is simple. Beginners can benefit from it because it reduces execution mistakes. -
“OCO is the same as hedging.”
Not necessarily. OCO just cancels one order if the other triggers. Hedging involves holding offsetting positions.
✅ Quick Checkpoint
Try answering before expanding the model answers.
1) What does OCO stand for and what does it do?
One Cancels the Other. It links two orders so that if one executes, the other is cancelled automatically.
2) Name two common uses of OCO.
Bracket exits (take-profit + stop-loss) and breakout entries (buy stop above + sell stop below).
3) What is a key implementation detail you should check on your platform?
Whether the OCO link is server-side or client-side, and how partial fills affect cancellation.
If you can explain these points, you understand how OCO reduces operational errors in trading.
Frequently Asked Questions: OCO Orders
Is OCO available on MetaTrader?
MetaTrader supports attached stop-loss and take-profit orders on positions, which behave like an OCO relationship. Some brokers and add-ons also provide explicit OCO order tools.
Does OCO prevent slippage?
No. Slippage is about execution and liquidity. OCO is about order relationships. If the triggered order is a stop (market), it can still slip in fast markets.
What happens if both legs trigger at the same time?
Ideally, the first execution cancels the other immediately. In extreme volatility or with client-side linking, edge cases can occur. That’s why server-side OCO is preferable and why you should monitor around major news.
Can I use OCO for scaling out?
You can, but it depends on your platform. Scaling out typically requires multiple take-profit levels and careful handling of the remaining stop-loss size.
Summary
OCO (One Cancels the Other) links two orders so that execution of one automatically cancels the other. It is widely used for bracket exits (TP + SL) and breakout entries (up or down), reducing operational mistakes and order conflicts.
Next lesson: Partial Fills.