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.
| Size available within the limit | Outcome | Position after |
|---|---|---|
| 7 contracts | Order killed, nothing traded | Flat |
| 12 contracts | All 10 filled across two prices | 10 contracts |
| 10 contracts exactly | All 10 filled | 10 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.
Related
In the same section
- Final settlement
- Fill assumptions
- First notice day
- Feed status
- FIX protocol
- Fat tails
- Fixed fractional sizing
- Fair value gap
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.