What Are IOC and FOK Orders?
Learn what IOC and FOK orders are, how Immediate-Or-Cancel and Fill-Or-Kill work, when traders use them, and why partial fills matter.

Introduction
IOC and FOK orders are order instructions that tell the market what to do if your order cannot be completed immediately. That sounds like a small detail, but it changes the entire risk profile of a trade. In many situations, the main danger is not getting no fill at all; it is getting the wrong kind of fill; perhaps a small partial execution that leaves you exposed, or a resting remainder that sits on the book and signals your intent to everyone else.
This is the problem these instructions were built to solve. A normal day order says, in effect, “try to execute me now, and if you cannot, leave me working.” IOC and FOK say something stricter: “do not leave me hanging around.” They are both forms of time-in-force, meaning they specify how long an order remains eligible to trade.
In the FIX standard, TimeInForce(59) carries this instruction. If that field is omitted, the default is DAY, which means the order remains in effect for the trading day unless it is filled, canceled, or otherwise handled by venue rules. Within that same standard, Immediate Or Cancel (IOC) is defined as a market or limit-price order to be executed in whole or in part as soon as it is available in the market, with any unexecuted portion canceled. Fill Or Kill (FOK) is defined as a market or limit-price order to be executed in its entirety as soon as it is available in the market, and canceled if that full execution is not available.
The difference between them is only a few words. Mechanically and strategically, those words matter a great deal.
How do IOC and FOK differ on immediacy versus completeness?
| Order | Partials allowed | Persists on book | Typical terminal state | Best when |
|---|---|---|---|---|
| IOC | Yes | No (remainder canceled) | Partial fill or canceled | Speed and discretion |
| FOK | No | No (never stored) | Full fill or canceled | Protect atomic execution |
The easiest way to understand IOC and FOK is to separate two questions that every order answers, whether explicitly or not.
The first question is about price discipline: what prices are acceptable? That is what a market order or limit order answers. A market order says price is flexible; a limit order says price is capped or floored. The second question is about persistence: if the market cannot satisfy me immediately, should I wait on the book? That is what time-in-force answers.
IOC and FOK live in that second layer. They do not decide the acceptable price by themselves. In FIX, both can apply to a market order or a limit-price order. Instead, they decide what happens when the immediately available liquidity is insufficient.
Here is the compression point: both IOC and FOK reject persistence, but only FOK also rejects partial completion.
That gives you a clean mental model:
- An IOC order says: execute whatever you can right now, within my price constraints, and cancel the rest.
- A FOK order says: execute the entire quantity right now, within my price constraints, or execute nothing at all.
If you remember only one thing, remember that. IOC is immediate, partials allowed. FOK is immediate, partials forbidden.
What does “immediate” mean for IOC and FOK orders?
The word immediate is easy to misunderstand. It does not mean some universal physical instant, and the standards do not define a precise latency budget such as “within 100 microseconds.” In FIX, the phrase is “as soon as it is available in the market.” That tells you the semantic result, not the exact internal timing of every venue.
The important invariant is simpler: the order is evaluated against the liquidity available when the venue processes it, under that venue’s matching and session rules, and it is not meant to remain resting in the book as an ordinary working order. If the required execution condition is not met at that point, the venue cancels the unfillable part, or the whole order in the FOK case.
That distinction matters because markets are not all built the same way. Some venues reject IOC or FOK in certain market states, such as pre-open, because matching cannot occur there. LMEselect, for example, states that IOC and FOK submitted in pre-open are rejected because they cannot be executed in that market state. Nasdaq Nordic’s market model similarly says FOK can only be entered during continuous trading, while IOC behaves differently depending on whether the market is in continuous matching or a call auction.
So the durable truth is not “immediate means one exact timing rule everywhere.” The durable truth is: the order is not supposed to become a normal resting order after the venue has had its chance to match it under the applicable rules.
How does an IOC order execute in practice?
An IOC order is designed for a trader who wants liquidity now but is willing to accept less than the full amount. The mechanism is straightforward.
Imagine you want to buy 10,000 shares with a limit price of 50.00. You submit a buy limit IOC for 10,000 at 50.00. When that order reaches the matching engine, the venue looks at the sell-side liquidity available at 50.00 or better. Suppose there are 2,000 shares offered at 49.98, 3,000 at 49.99, and 1,500 at 50.00. The market can therefore satisfy 6,500 shares immediately within your limit.
An IOC order will trade those 6,500 shares and then cancel the remaining 3,500. The unfilled balance does not sit on the book at 50.00 waiting for later sellers. That is the whole point. You receive the liquidity that exists now, but you avoid advertising the remaining interest as a resting order.
This is why IOC is often useful when the trader values speed and discretion over completion. If you are probing available liquidity, taking a quote without wanting to display on the book, or trying to reduce signaling risk, IOC gives you a sharp outcome: take what is there and leave no remainder behind.
The FIX application-layer specification gives a concrete example of this logic in quote-taking workflows: to “take” an IOI or quote without displaying on the book, a NewOrderSingle should use TimeInForce(59) = 3, meaning ImmediateOrCancel.
There is also an order-state consequence. Under the general FIX quantity relation, OrderQty = CumQty + LeavesQty, where CumQty is cumulative executed quantity and LeavesQty is remaining open quantity. With many ordinary orders, terminal states such as Canceled have a specific relationship to what remains live. But the FIX specification explicitly notes that Fill or Kill and Immediate or Cancel are exceptions that can have Canceled as their terminal state. That makes sense: an IOC can be partially executed and still end as canceled with no remaining live quantity because the unexecuted remainder was intentionally killed.
How does a FOK order execute in practice?
A FOK order solves a stricter problem. Sometimes a partial execution is not merely inconvenient; it changes the economics of the trade.
Suppose you need to buy 10,000 shares because that quantity is one side of a hedged position, an arbitrage package, or a risk transfer that only makes sense if completed in full. If you receive only 6,500 shares, you may be left with unwanted directional exposure, hedging slippage, or execution costs that were justified only for the full size. In that situation, partial success is not really success.
So you submit a buy limit FOK for 10,000 at 50.00. The venue again inspects the sell-side liquidity available at 50.00 or better. If there are 10,000 shares available immediately, the order executes in full. If there are only 9,999 (or 6,500, or any amount short of full completion) the order is canceled in its entirety.
That all-or-nothing property is the essential mechanism. LMEselect states it plainly: FOK orders are executed only if there is sufficient quantity available at the stated price or better for them to execute fully; otherwise the entire order is canceled. Nasdaq Nordic’s model says much the same thing in operational terms: a FOK order is never stored in the order book, and if it is not matched in full on entry, it is canceled.
Notice what FOK is really protecting. It is not just protecting price. A limit order already does that. FOK is protecting execution completeness.
That is why FOK can be thought of as combining two constraints at once. It says the price must be acceptable, and the size must be fully available now. If either condition fails, the order should not happen.
When should traders use IOC versus FOK?
| Trade goal | Accept partials? | Signal risk | Likelihood of fill | Preferred TIF |
|---|---|---|---|---|
| Reduce signaling / discretion | Yes | Low | Higher | IOC |
| Preserve hedged or package size | No | Not primary | Lower | FOK |
| Maximize chance of any execution | Yes | Medium | Highest | IOC |
The practical choice between IOC and FOK comes down to what kind of failure you are willing to tolerate.
If your main concern is that a visible remainder could leak information, but any immediate quantity is still useful, IOC is the natural fit. It lets you take whatever liquidity exists now without becoming a resting quote. In fragmented or fast markets, this can help a trader interact with liquidity opportunistically while limiting exposure to adverse signaling.
If your main concern is that a partial execution would create a worse position than no execution, FOK is the stricter tool. It prevents the “half-done trade” problem. The cost of that protection is obvious: FOK will fail more often than IOC, because its acceptance condition is stricter.
This is the fundamental tradeoff. **IOC maximizes the chance of getting something done. FOK maximizes the chance that, if anything happens, it is exactly the size you required. **
Neither is universally better. They optimize for different risks.
How do IOC and FOK interact with market and limit orders?
| Base order | Price discipline | Execution check | Remainder treatment | Common use |
|---|---|---|---|---|
| Limit + IOC | Limit price enforced | Match available at or better | Cancel remainder | Take displayed liquidity |
| Limit + FOK | Limit price enforced | All‑or‑nothing at limit | Cancel whole order | Atomic limit fills |
| Market + IOC | No explicit limit (venue guards) | Take immediately available liquidity | Cancel remainder | Immediate partial execution |
| Market + FOK | No explicit limit (venue guards) | Requires full immediate liquidity | Cancel whole order | Immediate full market fills |
Because IOC and FOK are time-in-force instructions, not standalone pricing instructions, they attach to other order types rather than replacing them. The FIX definitions explicitly say both IOC and FOK may be used with market or limit-price orders.
That has an important consequence. The phrase “fill or kill” can sound as if it is mainly about quantity, but the actual executable condition is always quantity within the acceptable price logic of the base order type.
With a limit IOC, the order can execute partially, but only at the limit price or better; the rest is canceled. With a limit FOK, the full quantity must be available at the limit price or better or the whole order is canceled.
With a market IOC, the order seeks immediately available liquidity without a specified limit price, subject to venue protections such as price bands or collars. The remaining quantity is canceled. FIX allows this in principle, though in practice many venues apply detailed guardrails. Nasdaq equity rules, for example, specify that if an IOC order cannot be fully executed at or within price bands, any unexecuted portion is canceled. For market orders with a time-in-force other than IOC, the unexecuted portion may instead be posted at the upper or lower price band. That contrast shows what IOC changes: it removes the possibility that leftover size quietly becomes a resting order because of the venue’s protective handling logic.
For market FOK, venue rules matter even more. Some markets explicitly support market orders whose continuous-trading time-in-force is constrained to FOK or IOC semantics; Nasdaq Nordic’s fixed income market model does this. Other venues may limit or disallow certain combinations, or only allow FOK in specific sessions or products. So the broad concept is stable, but the exact allowed pairings are venue-specific.
How do IOC and FOK change an order’s lifecycle?
From a matching-engine perspective, IOC and FOK mostly alter what happens after the immediate matching attempt.
A regular day limit order can move through a familiar lifecycle: accepted, partially filled, left resting, later filled or canceled, perhaps even replaced. IOC and FOK compress that lifecycle dramatically. The order arrives, is checked against current executable liquidity, and then reaches a terminal state quickly.
With IOC, the possible outcomes are immediate full fill, immediate partial fill plus cancellation of the remainder, or immediate cancellation if nothing is executable. With FOK, the possible outcomes are even narrower: immediate full fill or immediate cancellation.
The FIX Trade specification reflects this compressed lifecycle in reporting rules. It emphasizes that execution information should not be combined in the same ExecutionReport with other state changes such as canceled, replaced, pending cancel, or done for day. That matters for IOC and FOK because they often generate fills and terminal cancellation outcomes in rapid succession. The reporting discipline keeps those events logically separate even when they occur nearly simultaneously from the trader’s perspective.
The same specification also notes that cancel or cancel/replace requests are only acted upon when there is outstanding quantity. In practice, for IOC and FOK, there is often little or no window in which such requests matter, because the order is intended to resolve immediately. That is another way of seeing what these instructions do: they reduce the period during which an order exists as something the trader can manage actively.
When do exchange venue rules affect IOC/FOK behavior?
The high-level definitions of IOC and FOK are consistent across standards and venues, but the details around them are not entirely uniform. The edge cases tell you what is fundamental and what is convention.
The fundamental part is the execution condition:
- IOC: immediate execution for as much as available, cancel the remainder.
- FOK: immediate execution of the whole amount, otherwise cancel everything.
The conventions are about when those instructions are allowed and what counts as “available” in a particular market state.
Session rules are a common source of variation. Nasdaq Nordic says FOK orders can only be entered during continuous trading and are excluded from equilibrium price calculation in auctions. IOC orders, by contrast, may be stored during a call auction and have any remaining part canceled after the uncross. LMEselect rejects both IOC and FOK in pre-open because those orders cannot execute in that state. Nasdaq Futures documentation similarly restricts FOK to the open session and indicates that IOC/FOK may be rejected in pre-open.
These are not contradictions in the core concept. They are examples of venues deciding whether an order instruction designed for immediate execution is compatible with a market phase where matching is delayed, batch-based, or otherwise governed by special rules.
There are also interactions with specialized order features. Nasdaq options protocol documentation notes that minimum-quantity and all-or-none style behavior is effectively tied to IOC treatment, and that FOK can have market-state restrictions. Nasdaq equity rules show that IOC can alter whether a specialized order is displayed or posted. In other words, once you move beyond plain vanilla trading, IOC and FOK often interact with additional constraints such as reserve logic, auction participation, price bands, or product-specific validation.
So a trader or implementer should treat the semantic core as universal and the operational details as venue-specific.
Is FOK simply a more aggressive form of IOC?
It is tempting to think of FOK as simply a stronger version of IOC. That is only partly true.
Yes, FOK is stricter. But the reason is not aggressiveness in the usual trading sense. It is not necessarily trying harder to get filled. In fact, because FOK rejects partial fills, it often results in fewer executions than IOC.
The real distinction is that IOC optimizes for capturing available liquidity without persistence, while FOK optimizes for preserving the atomicity of the trade. Atomicity here means that the trade should either happen completely or not happen at all.
That makes FOK conceptually closer to an all-or-nothing condition with an immediate deadline than to a mere urgency flag. The urgency and the all-or-nothing requirement are both essential. Remove urgency and you get a different class of order. Remove the all-or-nothing condition and you are back to IOC.
How do IOC and FOK affect reporting and audit requirements?
These order instructions also matter beyond matching. They shape how firms and venues report order events.
FINRA’s OATS FAQ states that firms should not submit a separate Cancel Report for orders handled as IOC or FOK. The reason is mechanical, not bureaucratic. An IOC is by definition subject to immediate partial or full execution and otherwise automatically partially or fully canceled. An FOK is by definition subject to either immediate execution or immediate cancellation. Since the cancel behavior is inherent in the order instruction, a separate cancel report is considered inappropriate and unnecessary in that reporting context.
That does not mean the event is unimportant. It means the lifecycle is compact enough that the cancellation outcome is understood as built into the execution semantics of the order.
This is a useful reminder that IOC and FOK are not exotic niche labels. They are embedded deeply enough in market infrastructure that standards, exchange systems, and surveillance/reporting regimes all give them special treatment.
What edge cases can break the textbook IOC/FOK intuition?
The clean textbook explanation can mislead if you assume every market implements the same details.
One place the intuition can break is hidden or implied liquidity. Some venue documents define whether implied orders may themselves be IOC or FOK; some say they cannot. Others leave open questions about whether hidden or implied liquidity counts toward satisfying a FOK in the same way as displayed book depth. If you are building a strategy around exact fulfillment guarantees, this matters.
Another place is auctions and crossed sessions. An “immediate” order in a continuous book is simple to picture. In a call auction, the notion of immediate execution becomes more procedural: some venues store IOC until the auction uncross and then cancel the remainder, while others reject IOC/FOK entirely before continuous matching begins.
A third place is protective handling such as price bands, collars, speed bumps, and venue-specific revalidation. LMEselect, for instance, notes that after a configured speed bump, an execution check is performed and IOC/FOK orders will be canceled if they cannot be fulfilled at that point. That means the relevant moment for “is liquidity available?” may be after other venue logic has run.
So the safest way to think about IOC and FOK is this: they define the trader’s desired execution policy, but the venue still determines the exact processing path that implements that policy.
Why do exchanges offer IOC and FOK orders?
Markets need a way to separate three different intentions that would otherwise get blurred together.
Sometimes a trader wants to post liquidity and wait. Sometimes the trader wants to take liquidity now, but any amount is useful. Sometimes the trader wants to transact now only if the full amount can be obtained at acceptable prices.
Without explicit time-in-force instructions, the market would have trouble distinguishing those intents. A plain order that partially executes and then rests can be exactly right in one context and exactly wrong in another. IOC and FOK exist because execution quality is not only about price; it is also about what happens to unfilled size.
That is the durable lesson. Traders do not merely choose a price. They choose a policy for incomplete execution.
Conclusion
IOC and FOK orders are both ways of saying, do not let this order linger. The difference is what they permit before cancellation. IOC allows an immediate partial fill and cancels the remainder. FOK demands an immediate full fill and cancels the whole order if that is not possible.
If you remember the mechanism, the rest follows naturally: IOC protects against unwanted persistence; FOK protects against unwanted partial completion. They are simple instructions on paper, but they exist because those two risks are very different in real trading.
How do you place IOC or FOK orders on Cube?
Place IOC or FOK orders on Cube by selecting the market and choosing Immediate‑Or‑Cancel or Fill‑Or‑Kill in the Time‑in‑Force menu; Cube will route the order and apply the chosen TIF semantics against available liquidity. The steps below show the concrete actions to submit an IOC or FOK order on Cube's trading interface.
- Fund your Cube account with fiat via the on‑ramp or a supported crypto deposit.
- Open the market and click New Order for the trading pair you want (example: XYZ/USDC).
- Choose side (Buy/Sell) and pick Market or Limit; use a limit order for FOK if you require price control, or a market order for a fast IOC sweep.
- Enter the exact quantity, set Time‑in‑Force to IOC or FOK, and note that FOK will cancel unless the full quantity is immediately matchable at your price.
- Review estimated fees and expected fill behavior (IOC may partially fill; FOK is all‑or‑nothing), then submit the order.
Frequently Asked Questions
- How do IOC and FOK behave when you attach them to a limit order versus a market order? +
- IOC and FOK are time‑in‑force instructions that attach to a market or a limit order; the pricing rules come from the base order type while IOC/FOK decide what happens to any unfilled size. For example, a limit‑IOC can execute partially only at the limit or better and cancel the remainder, whereas a limit‑FOK requires the full quantity to be available at the limit or better or else is canceled; market‑IOC/FOK are permitted in principle but their handling is subject to venue protections and rules.
- Can IOC or FOK orders be entered during pre‑open or auction (call) sessions? +
- It depends on the venue and session: many exchanges reject FOK during auction or pre‑open phases and allow FOK only in continuous trading, while IOC may either be rejected or be stored for the auction and then have any remainder canceled at the uncross. Examples in the sources include LMEselect rejecting IOC/FOK in pre‑open and Nasdaq Nordic allowing only continuous‑session FOK but treating IOC differently in call auctions.
- Does hidden or implied liquidity count when a venue decides whether an FOK order can be fully executed? +
- There is no universal rule — some venues count hidden and implied liquidity toward a FOK, others do not, and the article specifically warns this is an area of variation; if exact fulfillment guarantees matter you must check the destination venue’s documentation.
- Do firms need to send a separate cancel report when an IOC or FOK order is killed? +
- No — FINRA’s OATS guidance says firms should not submit a separate Cancel Report for orders handled as IOC or FOK because the cancel behavior is inherent in the order’s semantics; the article and the OATS FAQ treat IOC/FOK cancellation as part of the order lifecycle rather than a separate cancel event for reporting.
- How do IOC/FOK interact with minimum‑quantity, all‑or‑none (AON), and reserve/iceberg order features? +
- Minimum‑quantity (min‑qty) logic and all‑or‑none (AON) features interact with IOC semantics in venue‑specific ways: some rulebooks state minimum‑quantity orders are always treated as IOC (so any unfilled portion is killed), while AON/FOK and reserve/iceberg features introduce additional constraints and may be limited by session rules. Because implementations vary, traders should consult the venue’s spec for exact behaviour with min‑qty, reserve, and AON attributes.
- Why does a Fill‑Or‑Kill order usually get rejected more often than an Immediate‑Or‑Cancel order? +
- FOK will typically fail more often than IOC because it requires an immediate full execution and therefore has a stricter acceptance condition; IOC allows partial fills so it maximizes the chance of getting some liquidity while FOK maximizes the chance that, if anything executes, it is the exact size requested.
- What does ‘immediate’ actually mean for IOC and FOK orders — is there a fixed time budget? +
- ‘Immediate’ is defined semantically as execution ‘as soon as it is available in the market’ when the venue processes the order, not a single universal latency threshold; in practice that means the order is evaluated against the liquidity visible under the venue’s matching, session and protective rules (including speed bumps, price bands, and revalidation) and is not meant to remain as a regular resting order afterward.
- If IOC and FOK have clear definitions, why do implementations still vary across exchanges? +
- Treat IOC and FOK as a trader’s declared policy rather than a guarantee of identical processing everywhere: the semantic core (IOC = immediate with partials allowed; FOK = immediate all‑or‑nothing) is universal, but operational details such as allowed sessions, whether market orders can be FOK, and how venue protective logic treats leftover size are venue‑specific and must be checked per destination.