One-cancels-other and bracket orders

The position was closed hours ago, and then an order you had forgotten about filled and opened a new one in the opposite direction. Or one leg of a pair filled and its sibling stayed in the book at full size, so a closing order became an opening order.

A linked order group is not a single compound instrument. It is several ordinary orders plus a rule about their states, and the rule is evaluated after something happens rather than at the same instant. Almost everything surprising about groups lives in that ordering.

What a group actually is

One-cancels-other (OCO) is the base case: two orders and a rule saying that a fill on either one cancels the other. A bracket is the same idea with three: an entry order, plus two exit orders linked to each other and conditional on the entry existing. Names differ, and so does the number of legs a venue will accept, but the structure is always the same — independent orders with an enforcement rule stacked on top.

The legs are not special. Each one is a market, limit or conditional order with exactly the guarantees it would have alone, and each one moves through the ordinary states. The group adds no guarantee to any leg. It only adds cancellations.

Where the rule lives

This is the first thing to establish about any group, because it determines what survives.

Venue-side groups. The venue holds the relationship and enforces it in the same system that does the matching. The rule keeps working when nothing of yours is connected, and the cancel is issued from inside the venue rather than travelling to it.

Groups assembled in front of the venue. Here the legs are ordinary unlinked orders as far as the venue is concerned, and the linkage is a rule held in whatever software you are looking at: it watches for a fill and then sends a cancel. If that software stops watching, the legs remain live and unlinked, and the venue has no idea they were ever related. The failure looks identical to a disconnect-driven cancellation policy except that nothing is cancelled — the orders simply lose their rule.

Interfaces present both arrangements the same way, as a bracket drawn around a position.

The interval between fill and cancel

Even on a venue-side group, “one cancels the other” describes a sequence.

A fill occurs on leg A. The group rule observes it. A cancellation is generated for leg B. Between the first and the last of those, leg B is a live order in the book and can trade. The interval is short and it is not zero, which is the same structure as the gap inside a cancel-replace.

The case that matters is a fast move that satisfies both legs. Two conditional exits whose triggers sit on either side of a price are not mutually exclusive events — a move can satisfy one and then the other before the first cancel completes. Both children are submitted, both execute, and the position is not closed but reversed. Whether that is possible on a given venue depends on how the rule is sequenced relative to matching, and it is not something the interface tells you.

The quantity problem

A group’s legs each carry their own size, and sizes do not automatically stay consistent.

Partial fill of the entry. If the entry fills partially, exits sized for the full entry are now larger than the position. Some venues scale the exits to the filled quantity as it accumulates; some leave them at the original size, in which case an exit that executes in full closes the position and opens the remainder in the other direction.

Partial fill of one exit. The sibling may be reduced by the same quantity, cancelled outright, or left untouched. All three behaviours exist.

Scaling into an illegal size. An exit scaled down to match a small partial fill can land below the instrument’s minimum order size or increment, at which point it is rejected rather than adjusted, and the group is one leg short.

A reduce-only constraint on the exit legs changes the arithmetic: a reduce-only order cannot increase or open a position, so an oversized exit fills only up to the position and the remainder is cancelled. That is a constraint on the child order, not a property of the group, and whether a group applies it is a venue and configuration question.

The mechanism

THE MECHANISM — a linked order group

  · You create a bracket or OCO
                    → several ORDINARY orders plus a
                      rule. No leg gains a guarantee.

  · A leg fills
                    → the rule then cancels the
                      sibling. Sequence, not instant.

  · The interval between the two
                    → the sibling is LIVE and can trade
                      in it.

  · A move satisfies both exit triggers
                    → both children may be submitted.
                      The position reverses.

  · The entry fills partially
                    → exits may still be sized for the
                      whole entry. Closing becomes
                      opening on the excess.

  · An exit carries reduce-only
                    → it cannot open. Excess quantity is
                      cancelled rather than traded.

  · The position is closed by hand
                    → the group may survive it. An
                      ORPHANED leg has nothing to close.

  · Whether the rule lives at the venue,
    whether legs auto-scale, and what a
    partial fill does to the sibling
                    → VENUE-SPECIFIC. All three differ,
                      including between products on one
                      venue.

Worked example

Illustrative figures throughout, synthetic and round, describing no real venue.

Suppose a bracket on a long: an entry buy limit for 2.0 units at 40,000, a take-profit sell limit for 2.0 at 41,000, and a stop sell for 2.0 with a trigger at 39,500.

The clean path. The entry fills 2.0. Later the market reaches 41,000, the take-profit fills 2.0, the rule cancels the stop, and the position is flat.

Partial entry, unscaled exits. The entry fills only 0.8 before the price leaves 40,000, and the remaining 1.2 rests. The position is long 0.8 while both exits are still sized 2.0. The take-profit then fills 2.0: 0.8 closes the position and 1.2 opens a short. The bracket did exactly what it was told and the result is a position on the other side.

Partial entry, reduce-only exits. Same setup, but the exits cannot open. The take-profit fills 0.8, the excess 1.2 is cancelled, and the position ends flat.

Both triggers. The stop’s trigger is satisfied at 39,500 and, in the same fast interval, a bounce satisfies a second conditional exit above. If both children reach the book before either cancel lands, 2.0 is sold twice and the position is short 2.0.

The orphan. The entry fills 2.0 and you close the position with a separate manual order rather than letting a leg do it. If the group was not cancelled, the stop leg is still armed. When the trigger is later satisfied, it submits a sell for 2.0 against no position, and — unless it is reduce-only — you are short 2.0 having intended to be flat.

The failure mode

A group is a set of live orders that looks like a single managed thing. Its characteristic failure is not a leg behaving badly but a leg outliving the situation it was created for.

That happens in three ways, none of them a malfunction. Manual intervention breaks the correspondence between the group and the position, and the group does not notice. Partial fills break the correspondence between leg sizes and the position, and only some venues repair it. And the legs are still triggers with their own reference prices, so wrapping two of them in a rule adds nothing to what either one guarantees. A group is bookkeeping. What each leg does when it fires is decided by the same plumbing as any other order.