Fill or Kill

What is Fill or Kill in forex and CFD trading

A Fill or Kill (FOK) order is a time-in-force instruction that requires a market or limit order to be executed immediately and in its entirety, or if either condition cannot be met, the entire order must be immediately canceled or “killed.” The Fill or Kill instruction matters for real trading decisions because it guarantees both the order’s volume and immediate execution, which is crucial for large-volume traders who prioritise execution certainty over price flexibility. A trader can verify or measure the use of a Fill or Kill order by checking the order type or time-in-force field in the order ticket before submission, confirming the entire trade quantity was executed in the order history, or observing the immediate rejection if the conditions are not met.

Key facts about Fill or Kill

  • Requirement: An FOK order demands 100% of the requested order volume to be filled at the specified price or better.
  • Execution Time: The order must be executed in a single, instantaneous transaction, preventing partial fills or delayed execution.
  • Result of Failure: If the full quantity is not available at the current market price or better, the entire FOK order is instantly canceled, not left pending.
  • Application: FOK orders are most commonly used by institutional traders, algorithmic systems, and high-frequency traders needing to move large block sizes quickly.
  • Market Impact: The use of FOK order types can reduce market impact risk for large orders because it avoids leaving visible partial order volume in the order book.
  • Liquidity Sensitivity: FOK orders are highly dependent on available market liquidity; they are more likely to be filled during peak trading hours for major currency pairs like EUR/USD.
  • Pricing: When placed as a limit order, the FOK instruction requires execution at the limit price or better; when placed as a market order, it requires immediate execution at the current best available market price.

How Fill or Kill works in forex and CFD trading

The Fill or Kill mechanism is a binary instruction that forces a decision on the execution venue immediately upon receipt, preventing the order from contributing to market depth or facing time decay.

The process involves these sequential checks:

  1. Order Submission: The trader submits a large order quantity, for example, 500 standard lots of EUR/USD, and specifies the time-in-force as Fill or Kill.
  2. Liquidity Check: The execution venue, such as an ECN, immediately checks its aggregated liquidity pool for sufficient opposing volume at the current price level or better.
  3. Volume Verification: The system determines if exactly 500 lots are available for immediate execution; if only 499 lots or less are available, the order volume condition fails.
  4. Instantaneous Execution (Fill): If the full 500 lots are available, the transaction is executed instantly in one block, and the order is completed.
  5. Immediate Cancellation (Kill): If the full 500 lots are not available, or if the system cannot execute the trade immediately due to latency or technical constraints, the entire order is rejected, or “killed,” with zero units filled.
  6. Confirmation: The trader receives a confirmation of either the complete execution or the immediate cancellation; the order never appears in the pending order list.

Example of Fill or Kill with a real trade

This example contrasts the outcome of an FOK order with a standard order during a scenario of fluctuating liquidity.

Scenario: A trader needs to buy 20 standard lots of EUR/USD precisely at 1.0980 before a minor news release.

Order Type: Buy Limit with FOK instruction Entry Limit: 1.0980 Position size: 20 standard lots (2,000,000 units) Current Market Ask Price: 1.0982

Case 1: Fill or Kill Order is Submitted Case 2: Standard Limit Order is Submitted
Price drops to 1.0980. The ECN’s order book shows total available sell liquidity at 1.0980 is 18 standard lots. The FOK condition fails because the full 20 lots are not available. The ECN’s order book shows total available sell liquidity at 1.0980 is 18 standard lots. The order is partially filled for 18 lots at 1.0980, and the remaining 2 lots stay in the order book pending more liquidity.
Result: Order is immediately canceled (“killed”), zero units filled, PnL impact is $0.00. The trader is out of the trade. 18 lots filled at 1.0980, remaining 2 lots pending. The trader has a partial exposure.

How Fill or Kill affects your cost and risk

The Fill or Kill instruction affects risk management by strictly controlling execution certainty, particularly for trade size, but it increases the risk of non-execution. It has no direct impact on spread or commission cost, but by ensuring full execution at the target price, it removes price slippage risk for the entire order quantity.

Fill or Kill compared with related concepts

Fill or Kill vs Immediate or Cancel (IOC)

Fill or Kill differs from Immediate or Cancel (IOC) in the condition for volume; FOK demands the entire order volume be filled immediately or canceled, whereas IOC permits a partial fill immediately, with any unfilled portion being canceled immediately thereafter. FOK ensures the intended position size is either fully opened or not opened at all, simplifying position size management.

Fill or Kill vs All or None (AON)

Fill or Kill differs from All or None (AON) primarily regarding the time condition; FOK requires immediate and complete execution, but AON only requires the order to be filled entirely, allowing it to remain active and pending in the order book until the full volume is available. AON accepts a delay, while FOK prioritizes execution speed.

Broker differences in Fill or Kill across the industry

The support for the Fill or Kill order type is a key differentiator between retail-focused platforms and those catering to professional or algorithmic traders.

How to verify Fill or Kill on your trading platform

The ability to verify and use a Fill or Kill instruction depends heavily on the trading platform’s advanced order features.

  1. Open the New Order Window: In your trading platform (MT5 or TraderEvolution), open the Order window for the desired asset.
  2. Select Advanced Order Type: If placing a Limit or Stop Limit order, look for the Time in Force (TIF) dropdown menu.
  3. Choose FOK: Select “Fill or Kill” (FOK) from the Time in Force options; if it is not available, the platform does not support it natively.
  4. Specify Quantity: Enter the exact, full trading volume required, for example, 300,000 units or 3 standard lots.
  5. Submit Order: Place the order and immediately check the Order History or Journal tab.
  6. Verify Result: The history should show either a fully executed trade with the requested volume, or an immediate Rejected or Canceled status with zero fills.
  7. Sanity check: A successful FOK order must not appear in the “Pending Orders” list at any point; it is either filled or canceled instantly.

Related Tools

Use these calculators to apply what you've learned:

No Fine Print. Better Trading Economics.

Built on transparency. Lowest total trading costs.
Execution you can measure. Rewards shared with you.

Invite only access for approved trading profiles.