What is Partial fill in forex and CFD trading
A partial fill, a key concept in our forex glossary, occurs when a market or limit order is executed for less than the total quantity requested by the trader because insufficient liquidity was available at the specified price at the time of order execution. This matters for real trading decisions because it results in a smaller initial position size, meaning the trader’s exposure, risk, and potential profit are lower than originally intended, necessitating an immediate decision regarding the unfilled balance. A trader can verify a partial fill by comparing the initial order quantity displayed on the platform’s order ticket against the actual executed quantity recorded in the trade history, where the partial fill volume will be explicitly listed.
Key facts about Partial fill
- Trigger Condition: Occurs when the requested order volume exceeds the aggregated liquidity available at the execution price level.
- Resulting Position: The trader opens a live position equal to the volume of the partial fill, not the total requested volume.
- Order Status: After a partial fill, the remaining, unfilled portion of the order may be immediately canceled (Immediate or Cancel order) or remain pending (Good-Til-Canceled order), depending on the time-in-force instruction.
- Liquidity Dependence: The probability of a partial fill increases during periods of low market liquidity, such as major news events, market open/close, or on exotic currency pairs.
- Pricing: All executed units of a partial fill are transacted at the target price for a limit order, or the best available price for a market order, potentially across multiple liquidity providers.
- Transparency: Reputable ECN brokers provide trade confirmations detailing the executed volume and price, distinguishing the partial fill from the canceled or remaining volume.
- Impact Measurement: The exposure risk is measured by the filled volume, not the original requested volume, impacting margin usage.
How Partial fill works in forex and CFD trading
The concept of a partial fill is a direct outcome of the fragmented nature of forex and CFD liquidity, where a large order must be matched against several different counterparty bids or offers.
The process involves these sequential steps:
- Order Submission: A trader sends a Buy Limit order for 10 standard lots (1,000,000 units) of EUR/USD at a price of 1.1000.
- Liquidity Aggregation: The broker’s system checks all connected liquidity providers for available sell-side volume at 1.1000.
- Volume Matching: The system identifies that a total of 7 standard lots of sell liquidity is available across all providers at 1.1000.
- Execution: The available 7 standard lots are executed instantly, creating a long position of 7 lots for the trader. This constitutes the partial fill.
- Remaining Volume Handling: The remaining 3 standard lots (10 requested – 7 filled) are handled based on the order’s Time-in-Force (TIF) instruction, such as being immediately canceled or kept pending.
- Confirmation: The trader receives a trade confirmation for the 7-lot executed position, often with a notification regarding the status of the remaining 3 lots.
Example of Partial fill with a real trade
This example demonstrates the numeric impact of a partial fill on a planned transaction.
Scenario:
A trader attempts to enter a long position on EUR/USD before a major news event.
- Requested Order Type: Buy Limit
- Entry Price: 1.1050
- Position size requested: 5 standard lots (500,000 units)
- Available Liquidity at 1.1050: 3.5 standard lots
- Time-in-Force: Good-Til-Canceled (GTC)
Partial Fill Execution:
- Price reaches the limit of 1.1050.
- Available liquidity of 3.5 standard lots is immediately filled at 1.1050.
- Remaining Unfilled Quantity: 5.0 lots requested – 3.5 lots filled = 1.5 lots remaining.
Resulting Position:
- 3.5 standard lots bought at 1.1050.
- The 1.5 lots remain pending due to the GTC instruction.
- The trader is now exposed to 70% of the intended position size.
How Partial fill affects your cost and risk
A partial fill reduces the overall risk and potential PnL of a trade because the exposure is lower than intended. While it doesn’t change the per-unit cost (spread/commission) for the filled volume, it ensures the executed portion avoids price slippage by securing the intended limit price.
Partial fill compared with related concepts
Partial fill vs No fill
Partial fill results in a live position being opened, albeit for a smaller volume than requested, whereas a No fill means the order was completely rejected or remains fully pending, resulting in zero executed volume and zero market exposure. A partial fill guarantees some market entry, while a no fill guarantees none.
Partial fill vs Slippage
Partial fill is an issue of quantity, where not all desired volume is available at the target price, leading to a smaller position size. Slippage is an issue of price, where the order executes for the full requested volume, but at a price worse than the limit or market price displayed. Partial fill affects the size of the position, whereas slippage affects the PnL of the position.
Broker differences in Partial fill across the industry
The occurrence and impact of partial fills vary significantly based on whether a broker uses a Market Maker or ECN execution style.
How to verify Partial fill on your trading platform
Verifying that an order resulted in a partial fill requires inspecting the order history in detail, primarily on platforms that support advanced Time-in-Force features like MT5 and TraderEvolution.
- Open Order Terminal: Navigate to the Trade tab or the Terminal window in MT5 or MT4.
- Locate the Order: Check the History or Account History tab to find the original order submission record.
- Compare Volumes: Note the original Requested Volume in the order ticket details.
- Inspect Execution Log: Review the execution details associated with that order; if a partial fill occurred, the Executed Volume will be less than the requested volume.
- Check Remaining Status (MT5/TraderEvolution): For the remaining unfilled quantity, check the order status. It should be either “Canceled” (for IOC) or “Pending” (for GTC).
- Verify Trade Entries: Confirm that the executed volume (the partial fill) resulted in a corresponding single position entry in the list of open trades.
- Sanity check: If the executed volume equals the requested volume, no partial fill occurred; if the executed volume is zero, a no fill or outright rejection occurred.
Related Tools
Use these calculators to apply what you've learned:
- Pip Value Calculator
Calculate pip value for any pair
- Position Size Calculator
Size your position correctly
- Drawdown Calculator
Track your risk
- Compare Costs
Compare trading costs to current broker
- Live Spreads
Trade live institutional spreads verified the lowest all-in costs globally
No Fine Print. Better Trading Economics.
Built on transparency. Lowest total trading costs.
Execution you can measure. Rewards shared with you.