Slot ID: blog-post-top
You click buy at 1.08500 on EUR/USD. The confirmation comes back at 1.08537. Nobody asked your permission, and nothing on the platform looks broken. That gap between the price you expected and the price you got is forex slippage, and it is a permanent structural feature of the market rather than a fault in the software.
It varies enormously by pair, session and order type. Learning to read it is part of learning to read the market itself.
Spot currency prices aren't set by a single exchange. They come from a stream of quotes pushed out by banks, non-bank market makers and ECNs, each quoting a price for a limited size. The number on your screen is the best price available at that instant, not a promise to fill unlimited volume there.
Send a 0.10 lot EUR/USD order during the London session and you'll almost certainly be filled within a fraction of a pip of the screen price. The top of the book is deep enough to swallow you whole. Send 20 lots, or send anything at all three seconds after a US inflation print, and the arithmetic changes. Your order takes the best price, then the next level, then the one after that, and your average fill ends up somewhere behind where you clicked.
That's the entire mechanism. Slippage is the cost of consuming liquidity in a decentralised market, and it deepens whenever that liquidity thins out, which happens far more often than most traders expect.
Most discussions of slippage are really complaints, so it's worth stating that the effect runs both directions. When a fast market moves in your favour between the click and the fill, a market order can come back better than requested. Limit orders show it more clearly: you ask to buy at 1.08400, price collapses through it, and you're filled at 1.08385. That's 1.5 pips to the good.
Brokers running agency execution pass that improvement through. Dealing-desk models may or may not. Know which model your account sits on before you assume either behaviour.
A market order accepts whatever price is available. A limit order caps what you'll pay but can go unfilled. A stop-loss is a market order wearing a disguise: once triggered it becomes "get me out at any price", which is exactly why slippage on exits tends to be worse than slippage on entries. The extreme version is January 2015, when the Swiss National Bank dropped the EUR/CHF floor and stop orders filled hundreds of pips away from their trigger levels. Some brokers never reopened.
Non-farm payrolls, CPI, central bank decisions, an unscripted headline at 03:00. Spreads on GBP/USD routinely widen from 0.6 pips to 8 or more inside a second, and the first two seconds after a release are the worst time in the calendar to need a fill. A stop sitting 15 pips away can realistically execute 25 pips away. This is the same window in which forex volatility spikes and spreads follow it.
Around 21:00 or 22:00 GMT, depending on daylight saving, liquidity providers step back for rollover and spreads widen for a few minutes. The Sunday open is another classic. Weekend gaps mean price reopens away from Friday's close, and any stop sitting inside that gap fills at the first available price rather than at the level you set.
EUR/USD is one thing. USD/ZAR at 02:00 GMT is another. Exotic pairs have only a handful of providers quoting at any moment, so a routine position can shift the price 15 or 20 pips on its own. If you trade those pairs, part of what looks like a wick on the chart is really your broker's quote jumping between sparse levels, noise that reading pure price action won't filter out for you.
Stop hunting is mostly not a hunt. Clusters of buy stops sit above round numbers and swing highs, and sell stops cluster under the levels where price has turned before. When price reaches one of those clusters, the burst of market orders briefly empties the book, and your stop fills into that vacuum. Placing it four or five pips beyond the obvious level instead of exactly on it is a small change with outsized effect.
Suppose your average negative slippage is 0.8 pips per round turn. Nothing dramatic. Trade 250 times a year and you've handed over 200 pips. On a $10,000 account trading 0.20 lots, at $2 per pip, that's $400, or 4% of the account, before you've paid a cent in commission.
Scalpers feel it hardest because the target is small. If your average win is 6 pips and slippage takes 1.5 of them, your required win rate climbs sharply just to break even at the same expectancy. Swing traders with 80-pip targets barely notice the same friction.
Execution quality is measurable, and almost nobody measures it. Log the requested price and the filled price for every order over 100 trades. Then look at the average. If it sits near zero during normal conditions, your broker is doing its job and any pain is coming from the conditions you chose to trade in. If it consistently runs above 1 pip on liquid pairs mid-session, that deserves a direct question, and possibly a different account type.
There's a psychological trap here worth naming. A bad fill is annoying, and it's far easier to file it under "the broker is rigged" than to admit you placed a market order nine seconds before a rate decision. That instinct, blaming the platform instead of the process, is the same one behind most rule-breaking in trading psychology, and it costs more than the slippage itself.
Do the logging, review it monthly, and treat the number as one more input into position sizing. A strategy with a 9-pip average edge and 2 pips of execution cost is still a strategy. A strategy with a 5-pip edge and the same cost usually isn't.
Slot ID: blog-post-bottom