Order types and what each guarantees

A stop-loss triggered at 39,500 and filled at 38,900. A post-only order never executed at all. A limit order sat at the touch price while the market traded through it.

None of these is a malfunction. Each is an order type doing exactly what it promises, which is usually less than what its name suggests — and all three follow from a single constraint that governs every order type there is.

The constraint

You can guarantee that your order executes, or you can guarantee the price it executes at. You cannot guarantee both.

This isn’t a venue policy or a limitation of current technology. It’s structural. An order that must execute has to accept whatever the book currently offers, because the alternative is not executing. An order that must not exceed a price has to be willing to wait, and waiting means possibly waiting forever.

Every order type is a position on that trade-off, plus some conditional logic about when it becomes active.

Market

Guarantees: execution, as long as there is any liquidity at all. Guarantees nothing about: price.

A market order crosses the book and consumes resting orders outward from the touch until it’s filled. The price you get is whatever that consumption produces — the average of every level it touched, not the number you saw before sending it.

On a deep book with a small order, that average is close to the touch and the distinction is academic. On a thin book, or with a large order, it isn’t. A market order in an illiquid market can walk a long way, and the fill can be startlingly far from the last trade.

Some venues apply protective limits that cap how far a market order may walk, converting it to something more like an aggressive limit order. Whether that exists, and at what tolerance, is a venue decision.

Limit

Guarantees: the price will be no worse than the one you specified. Guarantees nothing about: whether it executes, or when, or in full.

A limit order that crosses on arrival executes immediately as a taker, at prices no worse than your limit — sometimes better, if the book offers it. A limit order that doesn’t cross rests in the queue as a maker.

The failure modes are the interesting part. It may never fill. It may partially fill, leaving a remainder resting — you now hold a position of a size you didn’t choose. And it may sit at the touch price while the market trades at that price and moves away, because queue position decides who gets filled and you were behind other orders.

Stop and stop-limit

Guarantees: that an order will be submitted when a trigger condition is met. Guarantees nothing about: price, and — for stop-limit — not execution either.

This is the order type whose name does the most misleading work, and it’s worth being blunt: a stop order is a trigger, not a price. It is dormant until a specified price is reached, at which point it submits an order.

Stop-market submits a market order on trigger. It will execute; the price is whatever the book gives it at that moment. In a fast move, the book at the moment of trigger may be far from the trigger price, which is exactly why a stop at 39,500 can fill at 38,900. The mechanism worked perfectly.

Stop-limit submits a limit order on trigger. You control the worst acceptable price, and in exchange you accept that it may not fill at all. In the scenario above, a stop-limit at 39,500 with a limit of 39,400 would simply not have executed, and the position would still be open.

Neither is better. They’re the same trade-off again: stop-market gives up price to guarantee exit, stop-limit gives up the exit to control price. A stop-loss of either kind is not protection against loss; it’s an automated instruction with its own failure mode.

Trigger conditions themselves vary — some venues trigger on last traded price, some on mark price, some let you choose — and the choice matters in thin markets where a single print can be far from the consensus price.

Post-only

Guarantees: the order will not execute as a taker. Guarantees nothing about: execution.

If a post-only order would cross the book on arrival, the venue rejects or repositions it rather than letting it take. It exists so that participants who need maker treatment — for fee reasons — can guarantee it.

The failure mode is specific and catches people: in a market moving toward your order, post-only orders get repeatedly rejected precisely when you most wanted to be filled, because every attempt would cross. You end up with no position and a suspicion that something is broken.

Time in force

Modifiers on how long an order lives, rather than order types in themselves.

Good-til-cancelled rests until filled or cancelled. The default on most venues.

Immediate-or-cancel (IOC) executes whatever it can immediately and cancels the remainder. Useful when a partial fill is acceptable but a resting remainder isn’t.

Fill-or-kill (FOK) executes entirely and immediately, or not at all. No partial fills. The strictest form of “both or neither”.

Reduce-only will only decrease an existing position, never open or increase one. Not a time modifier but commonly grouped with these; it exists because in derivatives an order intended to close a position can otherwise flip it to the opposite side if the position has changed since you set the order up.

The mechanism

THE MECHANISM — what each type promises

  · Market
                    → execution guaranteed, price not.
                      Walks the book as far as needed.

  · Limit
                    → price guaranteed, execution not.
                      May partially fill and leave a
                      remainder resting.

  · Stop-market
                    → NO PRICE GUARANTEE. A trigger
                      that submits a market order. Can
                      fill far from the trigger.

  · Stop-limit
                    → NO EXECUTION GUARANTEE. Controls
                      the price and may leave the
                      position entirely open.

  · Post-only
                    → maker treatment guaranteed,
                      execution not. Rejected when it
                      would cross.

  · IOC / FOK
                    → bound the wait, not the price.
                      FOK forbids partial fills.

  · Trigger reference, protective caps,
    rejection behaviour
                    → VENUE-SPECIFIC. Last price, mark
                      price and configurable triggers
                      all exist.

Worked example

Illustrative figures. Suppose the best ask is 40,004 with 1.2 units, then 40,010 with 2.5.

A market buy for 3.0 fills 1.2 at 40,004 and 1.8 at 40,010: average about 40,007.6. Filled in full, price uncontrolled.

A limit buy for 3.0 at 40,004 fills 1.2 at 40,004 and rests 1.8 at 40,004. You hold 1.2 units and an open order. Price controlled, size uncontrolled.

An FOK buy for 3.0 at 40,004 does nothing at all — it cannot fill 3.0 within the limit, so it is killed entirely.

An IOC buy for 3.0 at 40,004 fills 1.2 and cancels the rest. You hold 1.2 and no open order.

Same intention, four different outcomes, all correct.

The failure mode

Common to all of them: an order type is a set of instructions evaluated against a book that is changing, with a delay between your decision and its arrival.

None of them removes the underlying uncertainty. They only determine which side of it you accept — an uncertain price, or an uncertain fill. Choosing an order type is choosing which of those you’d rather be surprised by, and any description that implies you can avoid both is describing something that doesn’t exist.