In this article (12 sections)
- What is slippage in trading?
- How does forex slippage happen?
- What causes slippage in forex?
- Market orders, stop orders and limit orders: which can slip?
- How is slippage calculated?
- Slippage vs spread: what is the difference?
- How to reduce slippage without assuming it can be eliminated
- When slippage is most likely to matter
- How to evaluate slippage in your own trading records
- Key slippage limitations and misconceptions
- Frequently asked questions
- Slippage is an execution trade-off, not just a cost
Slippage is the difference between a defined reference price and the price at which an order is actually filled. In forex, that difference can be favourable or unfavourable. It becomes more likely when prices move quickly, available liquidity is limited, an order is large relative to market depth, or a stop is triggered across a gap. Slippage cannot always be removed without accepting another trade-off, such as rejection, partial execution or a missed fill.
What is slippage in trading?
Slippage in trading is the difference between the price used as the order reference and the actual execution price. The reference might be the displayed quote when an order is sent, a stop trigger, or another explicitly defined price in an execution report. The comparison is meaningful only if that reference is stated.
Slippage is not always a cost. A buy order filled below its reference price or a sell order filled above its reference price receives a more favourable execution. The opposite cases are unfavourable. This is why slippage should be classified by order side, not simply by whether the execution price is numerically higher or lower.
| Order side | Reference price | Fill price | Classification | Why |
|---|---|---|---|---|
| Buy | 1.10000 | 1.09990 | Positive | The buy fills 1 pip below the reference price. |
| Buy | 1.10000 | 1.10015 | Negative | The buy fills 1.5 pips above the reference price. |
| Sell | 1.10000 | 1.10010 | Positive | The sell fills 1 pip above the reference price. |
| Sell | 1.10000 | 1.09985 | Negative | The sell fills 1.5 pips below the reference price. |
How does forex slippage happen?
1. A reference price exists. A trader sees a quote, submits a market order, or has a stop order waiting at a trigger level.
2. The order reaches the execution process. During transmission and processing, the market may move or available quantity at the displayed price may change.
3. The order is matched to available prices. A market order seeks the best price available at execution. A larger order may consume several price levels and produce an average fill different from the top quote.
4. The fill is compared with the reference. The difference is measured in price, pips or monetary impact and then classified as favourable or unfavourable for the order side.
Platform and broker mechanics matter. MetaTrader 5 supports different execution modes, including Instant, Request, Market and Exchange execution, and available fill policies depend on the instrument and server settings. cTrader documents market execution at the best available price and notes that larger orders can fill at a volume-weighted average price rather than only at the top-of-book quote.
What causes slippage in forex?
| Cause | Execution mechanism | Typical context | What the trader can or cannot control |
|---|---|---|---|
| Volatility | Prices reprice before or during execution. | Economic releases, central-bank decisions, unexpected headlines. | Timing and order type can change exposure, but the market cannot be frozen. |
| Liquidity / depth | Insufficient quantity exists at the best displayed price. | Thin periods, large orders, fragmented liquidity. | Order size and timing can be adjusted; available depth is not guaranteed. |
| Gaps | The next executable price appears beyond the trigger/reference. | Weekend reopenings, sharp repricing, session gaps. | Conventional stops cannot create prices inside a gap. |
| Latency | Delay exists between decision, transmission and processing. | Remote servers, unstable connections, overloaded systems. | Connectivity can be improved, but lower latency cannot remove market movement. |
| Order size | A larger order may sweep several price levels. | Size large relative to available depth. | Size can be reduced or split, but that can add timing or cost trade-offs. |
Market orders, stop orders and limit orders: which can slip?
| Order type | Trigger / intent | Can execution price differ? | Main execution risk | Main trade-off |
|---|---|---|---|---|
| Market | Execute now at available market prices. | Yes. | Positive or negative slippage; multi-price fills. | Execution certainty is prioritised over price certainty. |
| Stop | Activate once a trigger level is reached. | Yes, depending on implementation. | Gap or fast-market fill away from trigger. | Trigger certainty does not equal fill-price certainty. |
| Limit | Execute at the limit price or better. | Not worse than the limit under standard limit-order rules. | Partial fill or no fill. | Price protection reduces execution certainty. |
| Stop-limit | Stop trigger activates a limit order. | Price constrained after trigger. | Triggered but unfilled if market moves beyond limit. | Adds price control but can miss the trade entirely. |
Important: A Stop Loss is normally a trigger, not a guaranteed execution price, unless a specific guaranteed-stop product or broker rule says otherwise. The exact implementation should be checked in the relevant broker/platform documentation.
How is slippage calculated?
Formula 1: Absolute price slippage = |Execution price – Reference price|
Formula 2: Slippage in pips = Absolute price slippage / Pip size
Direction-aware impact: For a buy, adverse impact = (Execution price – Reference price) x position units. For a sell, adverse impact = (Reference price – Execution price) x position units. Under this convention, a negative result represents a favourable fill.
Worked EUR/USD example
A trader submits a market buy for 100,000 EUR/USD using 1.10000 as the reference ask. The order fills at 1.10015.
- Absolute price slippage = 1.10015 – 1.10000 = 0.00015.
- With a pip size of 0.0001, slippage = 0.00015 / 0.0001 = 1.5 pips.
- Because this is a buy and the fill is higher than the reference, the slippage is negative (unfavourable).
- Approximate price impact = 0.00015 x 100,000 = USD 15 before any separate spread/commission and ignoring broker-specific contract conventions.
The 1.5 pips in this example are not the spread. They are the difference between the stated reference price and the actual fill. Real orders can receive several fills at different prices, in which case the average execution price should be used.
Slippage vs spread: what is the difference?
| Cost / metric | What it measures | When it appears | Can it change after submission? |
|---|---|---|---|
| Spread | Difference between bid and ask at a point in time. | Before and during the trade. | Yes, quoted spread can widen or narrow. |
| Slippage | Difference between a defined reference price and actual fill. | At execution. | It is known only once the fill is known. |
| Commission | Explicit fee charged under the account model. | According to broker fee rules. | Normally fee-schedule driven rather than a fill-price difference. |
How to reduce slippage without assuming it can be eliminated
| Control | Potential benefit | What it cannot guarantee | Main downside |
|---|---|---|---|
| Use limit orders | Prevents execution worse than the limit under standard rules. | A fill at all. | Missed or partial execution. |
| Adjust order size | Can reduce market-depth impact. | Stable liquidity at the next moment. | More tickets, timing risk or extra costs. |
| Choose deeper-liquidity periods | Can reduce exposure to thin conditions. | No volatility or sudden repricing. | May not suit the trading plan or event timing. |
| Set execution tolerance | Can reject fills outside an allowed range. | The original price. | More rejected or missed orders. |
| Improve connectivity | Can reduce avoidable transmission delay. | A stationary market price. | Infrastructure cost and no protection from gaps. |
| Model slippage in testing | Produces more realistic assumptions. | Future live fill quality. | Requires defensible assumptions by instrument/session/order type. |
Current platform examples: MetaTrader 5 documents an allowable Deviation setting in applicable execution modes, while cTrader documents a Market range control that specifies the maximum allowed price deviation in pips for a market order. In both cases, tighter tolerance can increase the chance of rejection or non-execution rather than guaranteeing the original price.
When slippage is most likely to matter
- High-impact economic releases and unexpected headlines, when prices can reprice rapidly.
Market reopenings and weekend gaps, where no executable price may exist between the prior quote and the new market.
- Rollover or session transitions, when liquidity can change materially.
- Large order sizes relative to immediately available depth.
- Thin or off-peak instruments and sessions.
- Very short-term strategies, where even a small fill difference can represent a large share of the intended move.
How to evaluate slippage in your own trading records
- Record instrument, side, order type, size, timestamp, reference price and actual fill.
- Keep positive and negative slippage rather than logging only adverse cases.
- Group results by order type, session, event/non-event period and size when enough observations exist.
- Use average and median carefully and inspect outliers instead of relying on one headline statistic.
- Do not conclude that a broker or platform caused an execution difference without market data, logs and the relevant execution policy.
Key slippage limitations and misconceptions
| Myth | Reality |
|---|---|
| A market order should fill at the screen price. | A market order prioritises execution at available prices; the displayed quote may change or lack enough quantity. |
| A stop price is the guaranteed fill price. | A conventional stop is generally a trigger; after activation, the available execution price can differ. |
| Limit orders remove execution risk. | They protect the limit price but can remain partially or entirely unfilled. |
| Slippage protection guarantees the original price. | Tolerance controls can reject or restrict execution outside a range; they do not freeze prices. |
| Demo fills prove live execution quality. | Demo environments may not reproduce live liquidity, routing, queueing, rejection or latency. |
| A backtest filled at every signal price is realistic. | Perfect fills can materially understate execution friction, especially in fast markets. |
Turn Trading Calculations Into Real Trading Decisions
Use your calculated risk levels, position sizing, and technical analysis together with live forex trading signals and market commentary from The Forex Complex.
Frequently asked questions
Is slippage always bad?
No. Slippage can be positive or negative. A buy filled below its reference price or a sell filled above it is favourable; the opposite is unfavourable. One favourable fill does not imply that positive slippage is guaranteed or typical.
Can you completely avoid slippage in forex?
No. Immediate execution at an exact price cannot be guaranteed under all market conditions. Controls can reduce some exposure, but tighter price protection can increase rejection, non-fill or partial-fill risk.
Why can a stop loss fill below or above its stop price?
A conventional stop level is generally a trigger rather than a guaranteed execution price. If the market moves rapidly or gaps through the trigger, the order may execute at the next available price, subject to the broker and platform implementation.
Do limit orders prevent slippage?
A limit order constrains the worst acceptable execution price under standard limit-order rules, but it may fill only partially or not at all. Better-price execution can also occur.
What is slippage protection?
It usually refers to execution-tolerance controls such as maximum deviation or market range. These can restrict fills outside a defined tolerance, but tighter settings increase the chance that the order is rejected or not filled.
How should slippage be included in backtesting?
Use explicit assumptions rather than perfect signal-price fills. The appropriate assumption depends on instrument, session, order type, order size and the intended execution environment.
Slippage is an execution trade-off, not just a cost
Forex slippage is best understood as a difference between price intent and the reality of execution. Market orders prioritise getting filled, while limit orders prioritise price protection and can sacrifice fill certainty. Stops add a trigger condition but do not automatically guarantee the trigger price. Evaluating slippage therefore means defining the reference price, measuring the actual fill, considering the order type and market conditions, and judging the trade-off rather than assuming every price difference is preventable.
