Fill-or-kill (FOK) order

A fill-or-kill (FOK) order must be executed immediately and in its entire quantity at its limit price or better; if the full size cannot be matched at once, nothing is filled and the whole order is canceled. It gives certainty about size at the cost of frequent non-execution.

Senzoukria · Glossary · Updated September 2026


Definition

FOK is an all-or-nothing instruction applied at the moment of arrival. The matching engine checks whether resting orders at the limit or better can fill the full quantity. If they can, the whole order executes, possibly across several price levels. If they cannot, the order is canceled without any partial execution and without resting in the book. Binance's spot documentation puts it as an order that will expire if the full order cannot be filled upon execution; CME Globex supports FOK as an order qualifier on the same principle.

A worked example

The book offers 4 contracts at 5,000.00 and 3 at 5,000.25. A buy of 10 FOK with a limit of 5,000.25 finds only 7 contracts within its limit, so it is killed: no contract trades, and the trader has no position. If the book instead offered 4 at 5,000.00 and 8 at 5,000.25, the same order would fill all 10 contracts: 4 at 5,000.00 and 6 at 5,000.25.

Buy 10 FOK, limit 5,000.25
Size available within the limitOutcomePosition after
7 contractsOrder killed, nothing tradedFlat
12 contractsAll 10 filled across two prices10 contracts
10 contracts exactlyAll 10 filled10 contracts

When traders use it

  • When a partial position is worse than none, for example a hedge that must match a known quantity.
  • To test whether displayed size is really available without leaving a resting order behind.
  • In automated systems that size risk on the full quantity and cannot handle a partial fill safely.
  • FOK is not the same as an all-or-none order that rests until it can fill completely; FOK does not wait.

Why the DOM can mislead you

The ladder shows the size displayed at the last update you received. Between that update and your order's arrival, some of that size can trade, be canceled or be joined by orders ahead of you, and on an aggregated feed several orders at one price are shown as one number. An FOK that looked fillable on screen is therefore killed more often than intuition suggests, especially in fast markets and on thin levels.

In Senzoukria

FOK is one of the four time-in-force choices of the full order ticket on the Trading page, with DAY, GTC and IOC, and is transmitted with the order to the Rithmic connection. The ticket does not pre-check whether the displayed book could fill the order; the exchange decides, and the result, filled or canceled, comes back from the broker and is shown in the working orders and positions.

In the same section

Sources

This page in other languages

Frequently asked questions

What is the difference between FOK and IOC?
An IOC fills whatever it can immediately and cancels the rest, so partial fills are possible. An FOK fills its entire quantity immediately or nothing at all. Use IOC when some size is better than none, FOK when only the full size is acceptable.
Why was my FOK order killed when the DOM showed enough size?
The displayed size is a snapshot that may already be out of date when your order arrives. Other orders may have taken the liquidity, resting orders may have been canceled, or the feed may aggregate several orders at a price. The matching engine only fills what is actually resting at the moment of arrival.

Keep reading