One Cancels the Other

What is One Cancels the Other in forex and CFD trading

A One Cancels the Other (OCO) order is a pair of conditional orders, typically a limit order and a stop order, placed simultaneously for the same position, where the execution of one automatically triggers the immediate cancellation of the other. The OCO instruction matters for real trading decisions because it allows a trader to simultaneously set up both a breakout entry above current market price and a reversal entry below the current price, or more commonly, a take-profit and a stop-loss exit for a running position, without the risk of both executing. A trader can verify an OCO order by checking the order type selection in the platform, often labeled as a bracket or OCO order, and confirming that both linked orders disappear from the pending list once either limit or stop order executes. For more trading terminology, explore our forex glossary.

Key facts about One Cancels the Other

  • Order Pairing: OCO orders always involve at least two separate conditional orders linked by the OCO instruction.
  • Contingency: The core contingency is that the fill of one order immediately sends a cancellation command for the paired order.
  • Common Use: The most common application is a take-profit limit order and a stop-loss order placed simultaneously to manage a trade’s exit.
  • Entry Strategy: OCO can also be used for entries, anticipating a move in either direction, for instance, a buy stop above resistance and a sell stop below support.
  • Risk Control: OCO effectively guarantees that only one outcome occurs, preventing unintended double exposure or leaving an unmanaged risk order pending.
  • Platform Specificity: While standard on many professional platforms, OCO capability may require an advanced ticket interface or an Expert Advisor (EA) on MetaTrader 4 (MT4).
  • Initial Status: Both orders remain pending until the market price reaches the trigger level of one of the orders.

How One Cancels the Other works in forex and CFD trading

The One Cancels the Other order type is a client-side instruction managed by either the broker’s server or the platform terminal to enforce the contingency mechanism.

The process involves these steps:

  1. Creation of Pair: The trader identifies the position or potential entry and creates two distinct contingent orders, for example, Order A (Take Profit Limit) and Order B (Stop Loss).
  2. OCO Linking: The trader uses the platform’s specific OCO function to link Order A and Order B, explicitly applying the OCO instruction.
  3. Server Monitoring: Both Order A and Order B are sent to the broker’s server and monitored; they remain dormant in the pending list.
  4. Order A Execution: The market price moves and executes Order A, for instance, the Take Profit Limit is hit.
  5. Cancellation Trigger: Upon the successful fill of Order A, the broker’s system immediately generates a cancellation request for Order B.
  6. Order B Deactivation: Order B, the Stop Loss, is instantly removed, ensuring the position is not accidentally reversed or covered when the market pulls back.
  7. Final Result: The trading account reflects the execution of Order A, the cancellation of Order B, and a single, closed position, with the intended profit or loss realized.

Example of One Cancels the Other with a real trade

This example demonstrates how an OCO order manages the exit from a live position.

Scenario: A trader is currently long EUR/USD and wants to manage risk and profit simultaneously.

Current Live Position: Buy 1 standard lot (100,000 units) EUR/USD at 1.1000. Risk Management Goal: Close the position if price hits 1.0950 (Stop Loss) or 1.1070 (Take Profit).

The OCO instruction is applied to these two exit orders: Order A (Take Profit): Sell Limit at 1.1070 Order B (Stop Loss): Sell Stop at 1.0950

Outcome 1: Price Rallies to 1.1070

Order A is executed at 1.1070. Order B is canceled instantly. Pip Gain: 1.1070 – 1.1000 = 70 pips Gross Profit: 70 pips × $10/pip = $700 Spread Cost: 0.2 pips × $10/pip = $2.00 Commission: $0.00 (zero commission structure) Commission: $0.00 (zero commission structure) Net Profit: $700 – $2.00 = $698.00 Result: $698.00 profit, and no pending stop-loss remains.

Outcome 2: Price Drops to 1.0950

Order B is executed at 1.0950 (or near it, depending on slippage). Order A is canceled instantly. Pip Loss: 1.1000 – 1.0950 = 50 pips Gross Loss: 50 pips × $10/pip = $500 Spread Cost: 0.2 pips × $10/pip = $2.00 Commission: $0.00 (zero commission structure) Net Loss: $500 + $2.00 = $502.00 Result: $502.00 loss, and no pending take-profit remains.

How One Cancels the Other affects your cost and risk

The One Cancels the Other order type is a crucial risk management tool that does not directly impact trading cost, such as spread or commission, but significantly affects the execution quality and capital risk by ensuring orders are not inadvertently executed. By linking a stop-loss and a take-profit, the OCO order guarantees that a closed position will not be reversed by a leftover order.

One Cancels the Other compared with related concepts

One Cancels the Other (OCO) vs Order Sends Order (OSO)

One Cancels the Other (OCO) links two or more pending orders together so that the execution of one cancels the other, with both being conditional orders. In contrast, an Order Sends Order (OSO) order is a primary order that, once executed, automatically places one or more secondary orders, often a stop-loss and take-profit, with the secondary orders usually being OCO-linked themselves. OCO is for conditional choices, while OSO is for conditional placement.

One Cancels the Other (OCO) vs Trailing Stop

One Cancels the Other is a static instruction that links two predetermined price points, whereas a Trailing Stop is a dynamic instruction where the stop-loss price automatically adjusts or “trails” the market price by a fixed number of pips as the trade moves in the trader’s favor. OCO is concerned with the choice between two outcomes, while a Trailing Stop is concerned with the management of a single outcome.

Broker differences in One Cancels the Other across the industry

The key difference in OCO offering is whether the broker’s platform supports it natively or requires an external tool to implement the necessary server-side logic.

How to verify One Cancels the Other on your trading platform

Verifying and utilizing the OCO function involves specific steps depending on whether you are using TraderEvolution, MT5, or an MT4 Expert Advisor.

  1. Open the Order Panel: Navigate to the order creation section for the desired instrument, for instance, EUR/USD.
  2. Select Advanced Order Type (TraderEvolution/MT5): In TraderEvolution, choose the “Create OCO Order” option; in MT5, use the Pending Order tab and look for the OCO option or its equivalent name.
  3. Define Both Legs: Enter the details for the first order, typically a Buy Stop/Sell Stop, and the second order, which is the corresponding opposite.
  4. Confirm Linkage: Ensure the platform clearly indicates that the two orders are linked by the OCO rule, often with a shared ID or a connecting line.
  5. Submit and Monitor: Submit the OCO pair and monitor the Pending Orders tab. Both orders should be visible.
  6. Test Execution: Place a temporary, small market order at one of the OCO order’s levels (if safe to do so) and immediately check the Pending Orders list.
  7. Verify Cancellation: Confirm that the order that was not executed has been automatically removed from the system.
  8. Sanity check: If the non-executed order remains pending after the first one is filled, the OCO link failed, or the orders were placed separately.

Related Tools

Use these calculators to apply what you've learned:

No Fine Print. Better Trading Economics.

Built on transparency. Lowest total trading costs.
Execution you can measure. Rewards shared with you.

Invite only access for approved trading profiles.