Trading Education
What Is a Bracket Order? OCO Orders Explained
Learn what bracket orders and OCO (one-cancels-other) orders are, how they work, and how to use them to automate your trade exits.
Source updated
- Originally published
- Source updated
In this article
A bracket groups an entry with intended protective and profit-taking exits. An OCO relationship links orders so execution of one is intended to cancel the other. The exact activation, cancellation and partial-fill behaviour depends on the broker, platform and order type.
Follow the Parent and Children
In a simple long-position example, an entry near $100 has a sell target at $105 and a sell stop trigger at $97. The exit orders should become active under the bracket's documented parent-fill rules, with quantities matching the position they protect.
A target price touching does not guarantee a limit fill, and a stop trigger does not guarantee a $97 execution. Check acknowledged order status rather than treating a drawn bracket as working protection. IBKR's bracket documentation illustrates why transmission and parent-child relationships must be handled explicitly.
Partial Fills Need Particular Attention
If only part of the entry fills, find out when the corresponding exits activate. If a target partly fills, check whether the other exit reduces, cancels or remains at its original quantity. An oversized remaining sell order can create a short position after the intended long is closed.
OCO does not universally make cancellations atomic across every route. Check the service's overfill protection and acknowledgement rules. IBKR's OCA explanation also distinguishes client cancellation from some system cancellations or rejects.
A Gap Does Not Choose the Nearest Order
Which order can trigger or fill depends on its type, conditions, session and actual price path. There is no universal rule that the order nearest an opening print triggers first. A price bar spanning both exits does not show their sequence.
Verify the Whole Workflow
In simulation, test full and partial entries, manual reductions, one exit being rejected, disconnection and restart. Confirm where the linkage is hosted and what requires your terminal to stay running. Check the actual live service's terms separately.
Brackets can reduce manual steps, but do not remove monitoring or guarantee an account-loss limit. Calculate quantity from the planned price distance, costs and execution allowance, and verify the remaining account state before stepping away.
Risk Disclaimer: Trading involves substantial risk of loss. Past performance is not indicative of future results. See our full risk disclaimer.