One-cancels-other (OCO) order
A one-cancels-other (OCO) order links two or more orders so that when one of them executes, the others are canceled. Its most common use is the exit pair of an open position, a protective stop and a profit target, and the practical question that matters most is where the link is enforced: at the exchange, on the broker's servers or inside the trading application.
Senzoukria · Glossary · Updated September 2026
How the link works
Each order in an OCO group is an ordinary working order: a stop, a limit or another type, resting at the broker or the exchange. The link is an extra rule on top of them: when one leg reports an execution, cancel the others. For an exit pair on a long position, that means a sell stop below and a sell limit above; whichever is reached first closes the position, and the other must disappear so that it does not open a new position later.
Where the link lives
| Where | Survives your disconnect? | Typical weakness |
|---|---|---|
| Exchange (native) | Yes | Only for products and order types the exchange supports |
| Broker server | Yes | Depends on the broker's implementation and its latency |
| Trading application (client) | No | Stops working when the application or its connection stops |
Failure modes to know
- Both legs fill: in a fast market, the second leg can execute before its cancellation arrives, leaving an unintended position.
- Partial fill of one leg: the other leg still carries the full quantity unless it is reduced, so a later trigger can over-close the position.
- Disconnect: a client-side link stops watching; both legs stay working at the broker, unlinked.
- Cancellation refused or unconfirmed: the remaining leg's state is unknown until the broker's working orders are checked.
A worked example
A trader is long 2 ES from 5,000.00 with a stop at 4,995.00 and a target at 5,010.00 linked OCO. The target fills: the link sends a cancellation for the stop, the broker confirms it, and the account is flat with no working order left. Now suppose the target filled only 1 contract before price turned down. The stop still carries 2 contracts; if it triggers, it sells 2 against a position of 1 and leaves the account short 1. The OCO did its job only if the remaining quantities were kept consistent.
In Senzoukria
On a Rithmic connection, OCO links are local: the application's order session watches the legs and sends the cancellation. Placing a stop and a target from the SL and TP fields of the broker account panel sends two orders opposite the position and links them, with the message 'Stop and target placed. OCO is managed by this app while connected; keep it running.' The autopilot links its stop and target the same way once both are acknowledged. Legs must belong to the current account, the same instrument, side and quantity. If the order session ends while a link is active, a safety notice states that the app cannot maintain the link while disconnected and asks you to verify orders and positions at the broker; when more than one leg executes, or a cancellation is refused or unconfirmed, the application sends no automatic retry and asks for the same verification. The compact order pad's 'OCO Strategy', stop and target in ticks attached to market entries, exists on the simulated account panel.
Related
- Bracket order
- Stop-loss order
- Take-profit order
- Working order
- Account safety notices
- Broker account panel
In the same section
- One-timeframing
- OFI
- Open interest
- OCC option symbol
- Crypto open interest
- Objective function
- Open-drive
- NQ futures
This page in other languages
Frequently asked questions
- What happens to my OCO if the application closes?
- With a client-side OCO, the two orders stay working at the broker but nothing links them any more: if one fills, the other remains and can later open an unwanted position. In Senzoukria the link is local to the running application, which is why it warns on disconnect and asks you to check the broker's working orders.
- Can both legs of an OCO order fill?
- Yes, in a fast market, if the second leg executes before its cancellation is processed. Exchange-native and broker-side links narrow that window; a client-side link, which needs a round trip through the network, cannot eliminate it. Checking the position after any exit in a fast market is the safeguard.