Skip to content

Execution

Crypto OCO vs bracket orders: when are exits active?

An entry can be partly filled while its exits wait. A worked order-state example shows why OCO and bracket labels do not prove active protection.

An ivory entry gate branches into two lime exit rails, with one path closed by a crossbar.
Illustration for execution; examples in this article are educational.

An OCO order links two orders so that a specified event in one cancels the other. A bracket usually adds an entry order whose execution activates linked take-profit and stop-loss exits. Crypto venues use these labels differently, so verify when exits become active, how partial fills change their quantities, and which events cancel the sibling order before relying on the structure.

The distinction matters most between submitting an entry and finishing an exit. A form can show all three prices while only one order is currently working. A take-profit can trade only part of the position while cancellation removes its paired stop.

This educational article was prepared with AI assistance. The quantities and prices below are hypothetical. Exchange examples describe the named venue and product; they do not establish that KLINEO submits or manages those order types.

OCO describes a relationship; a bracket adds a sequence

Think of OCO, meaning one-cancels-the-other, as a cancellation relationship between two orders. In a common sell arrangement, one path seeks an exit above the market and the other responds to a downward trigger. They are linked by the venue rather than merely placed at the same time.

A common bracket structure adds a parent entry before those exits. The entry activates the pair under the venue's rules. This is often called OTOCO: one-triggers-one-cancels-the-other. The terms describe different parts of the same potential structure: the entry-to-exit activation and the relationship between exits.

Binance Spot's API describes OCO as two linked orders and OTOCO as three: a working entry and two pending orders forming an OCO pair. Its OTOCO pending orders reach the order book only after the working order fills completely. See the Binance Spot order-list specification.

Labels alone are insufficient. An existing holding may need only linked exits; a new trade needs an entry and a defined activation rule. A venue may also use “bracket” for its TP/SL controls. Read the actual order state rather than inferring it from the label.

QuestionOCO exit pairEntry with a bracket
What is being coordinated?Two alternative exit pathsEntry activation, then alternative exits
What must already exist?Enough relevant inventory or position for the intended exitsA valid entry and sufficient resources under venue rules
What is easy to miss?The sibling may disappear before all inventory exitsPending exits may not yet protect a partial entry
What should be recorded?Pair identity, component IDs and cancellation eventParent identity, component IDs and activation condition

Two independent sell orders are not automatically an OCO pair. A client application that watches one fill and then sends a cancel request for the other has its own observation and cancellation interval. Confirm who maintains the relationship: the exchange or the application.

The first partial fill is the revealing test

Consider the difference between two documented spot implementations. Binance Spot OTOCO waits for full entry completion. Kraken Pro's spot TP/SL brackets activate on partial or full primary execution, with exit quantities matching the primary fills. Kraken also says triggering one of the paired exits cancels the other. These are product-specific mechanics, not interchangeable definitions. Kraken Pro spot bracket-order documentation.

Suppose a hypothetical order buys 10 ABC at 100 USDT each. The intended take-profit is a sell at 110; the intended stop trigger is 95. For clarity, assume fees are paid separately and every quantity meets the fictional market's rules. A real order needs actual credited inventory, fee treatment and instrument filters.

Entry observationActual ABC acquiredFull-entry activation policyProportional activation policy
Accepted, no fills0Exit pair pendingNo filled entry quantity to cover
Four units fill4Pair still pendingExits correspond to the four filled units
Remaining six fill10Pair can now activateExit coverage should correspond to total fills

The two policy columns illustrate the documented Binance and Kraken distinction; they are not a universal checklist of every order event. Under a full-entry activation rule, the four acquired ABC already have price exposure even though the pair is pending. Canceling the remaining entry does not undo that purchase.

At this point, the relevant question is what exposure exists and which exits are actually active. Do not describe pending exit instructions as live protection. Avoid adding overlapping exits until the existing list's cancellation and activation behavior is understood. The partial-fill management guide covers the inventory ledger behind that check.

A partial take-profit can remove the other exit

Now assume all 10 ABC were acquired at 100 and the exit pair became active. The take-profit sells three at 110, then liquidity disappears. Under the partial-fill cancellation behavior described in Binance's OCO API guide, the sibling is canceled even if the first fill is small.

The account has sold three ABC for 330 USDT and still holds seven. Allocating 300 USDT of entry cost to the three sold units gives a gross realized gain of 30 USDT, before fees. The remaining seven have an allocated entry cost of 700 USDT. The realized gain does not establish that those seven still have a working stop.

If all seven could later sell at 95, the constructed gross loss on them would be 7 × (100 − 95) = 35 USDT. Combined with the earlier 30-USDT gain, the trade would be down 5 USDT before costs. That calculation assumes a later fill at 95; a trigger is not a promise of that price or any fill.

Record the residual quantity and inspect every component's current status. An open target remainder, canceled stop, triggered limit and rejected replacement are different states requiring different decisions. Recreating a whole 10-unit exit pair after three units have sold would no longer match the seven-unit holding.

Linked cancellation does not improve a stop's execution terms

An OCO relationship coordinates orders. It does not turn a stop-limit into a market exit or make liquidity appear. If the stop triggers a limit sell above available bids during a rapid fall, the limit can remain unfilled after the sibling is canceled. The account then has exposure and a working limit rather than a completed exit.

The stop-market versus stop-limit guide explains the execution tradeoff. When testing a bracket, preserve that distinction: “stop triggered,” “exit accepted” and “position closed” are separate observations.

If a component trails the market, it also needs a tracking-start rule and a saved favorable extreme. The trailing-stop worked ledger explains that moving condition before it hands control to the resulting market or limit instruction.

Derivatives add position-side and reduction rules. Coinbase's Global Derivatives TP/SL documentation describes linked OCO exits, distinguishes attaching them to a new entry from managing an existing position, and identifies the exits as reduce-only. It also warns that TP/SL does not guarantee a maximum loss or avoid liquidation. This scope is Coinbase Global Derivatives for eligible customers, not all Coinbase markets. Coinbase Global Derivatives TP/SL rules.

For a derivatives workflow, confirm whether an exit can increase or reverse exposure after another order reduces the position. Our reduce-only order guide explains why the intention to close and an enforceable reduction restriction differ.

Use a state worksheet before submitting the structure

Complete this worksheet from the exact venue documentation and a controlled test. Use the account, environment, instrument and order types you intend to use; a successful test elsewhere does not establish the same mechanics.

CheckEvidence to retain
Exit activationPartial or full parent-fill requirement; actual active quantities
Sibling cancellationTrigger, first fill, full fill or manual cancellation rule
Quantity ownershipAcquired inventory or position, existing exits and other strategies' orders
Stop executionReference price, trigger condition, market or limit instruction
Manual reductionWhich exits resize, cancel, remain or require intervention
Failure recoveryParent and child IDs, last verified states and unresolved requests

Test an incomplete entry, an incomplete exit and a manual cancellation, not just a smooth round trip. In a shared account, also test a position change from another authorized source. Check that observation against the venue's supported behavior before taking corrective action.

If a submission or cancellation times out, retain the structure's identifiers and reconcile with the exchange before retrying. The order-timeout recovery guide covers that uncertainty. A missing response does not prove a parent or child order failed to exist.

Instrument eligibility can change while linked instructions exist. The delisting-risk guide adds the deadline and settlement checks needed when a market is being removed; an earlier accepted bracket does not establish that the same exit routes remain available.

The useful outcome is a record showing acquired quantity, current exits and the rule that connects them. OCO versus bracket is the starting vocabulary; verified activation, quantity and cancellation behavior determine what the account can actually do next.

Keep the context with the example.

Each worked example is illustrative, with its sources and assumptions in the article. Read our editorial standards for authorship, verification and corrections.