Your backtest bought at the price on the chart. Your live account did not. That gap between the fill you expected and the fill you got has a name, or rather several: spread, slippage, and market impact. It is one of the biggest reasons a strategy that looks profitable in testing bleeds money live, and it comes down to a single idea that is easy to forget. There is no such thing as "the price." This is the mechanical layer underneath order types: what actually happens after you click submit.
There Is No Single Price, Only a Bid and an Ask
The number that flashes on a ticker is the last traded price. It is history: the price at which two other people already dealt. What you can deal at right now is a pair of numbers. The bid is the highest price a buyer is currently willing to pay. The ask (or offer) is the lowest price a seller is currently willing to accept. The gap between them is the spread.
A market buy fills at the ask. A market sell fills at the bid. So if you buy and immediately sell, you do not get back to zero, you lose the spread. That is the first cost of every trade, before commission, and you pay it on every round trip. It is small on liquid instruments and brutal on illiquid ones, which is exactly why the same strategy can print on EUR/USD and die on a thin small-cap.
Here is what the spread typically costs as a percentage of position, computed as spread divided by price. The values are illustrative typical ranges, not live quotes, but the orders of magnitude are real:
Typical Round-Trip Spread Cost by Instrument Class
| Instrument Class | Example | Typical Price | Typical Spread | Round-Trip Cost |
|---|---|---|---|---|
| Major FX pair | EUR/USD | 1.0850 | 0.6 pip | 0.006% |
| Large-cap stock | Mega-cap name | $210 | $0.01 | 0.005% |
| Exotic FX pair | USD/ZAR | 18.50 | 190 pips | 0.10% |
| Small-cap stock | Thin name | $10 | $0.05 | 0.50% |
The same spread cost, drawn to scale, makes the point that a table softens:
Round-Trip Spread Cost by Instrument Class (% of position)
The major-pair and large-cap bars are barely visible. That is the honest picture: the small-cap round trip costs roughly 100 times more than the large-cap one, purely in spread. Trade the small-cap ten times a day and the spread alone can outrun any edge you think you have. If you trade forex, the same math applies pip by pip, and the forex pip and lot math shows how that scales with position size.
The Order Book, and Why Size Matters
Behind the bid and ask sits the order book: a stack of resting limit orders at different price levels, queued and waiting. A market order does the opposite. It demands immediate execution and consumes the best available levels until it is filled.
If the book is deep, your order fills at or near the top of the book and you barely move the price. If the book is thin, a single order can eat through the best level, then the next, then the next, filling worse and worse as it climbs. That is market impact, and it is why size matters even for retail traders in illiquid names or off-hours. You are not too small to move a market that has almost nothing resting in it: a modest order in a sleepy small-cap is enough to walk the book several cents.
A market order does not ask the price. It takes whatever the book is offering, level by level, until it is filled.
Slippage: When the Fill Misses the Quote
Slippage is the difference between the price you expected and the price you actually got. It is not a broker trick or a glitch, it is the book moving between the moment you decided and the moment you executed, plus the impact of your own order. It gets worse in a handful of predictable situations, and there is an uncomfortable pattern underneath them.
Where Slippage Bites Hardest
| Situation | Why the Fill Slips | How to Reduce It |
|---|---|---|
| Market open and close | Auction imbalances, wide spreads, book not yet settled | Wait 15-30 min after the open; avoid market-on-close |
| Major news or data release | Liquidity providers pull quotes; the book thins and gaps | Be flat through the release, or use limit orders |
| Small-caps and off-hours | Few resting orders; a modest order walks levels | Size down; use limits; check average volume first |
| Exotic FX pairs | Wide spreads, fewer market makers quoting | Check the spread before entering; trade in overlap hours |
| Overnight and weekend gaps | No trading between close and open; price reprices in a jump | Stops do not protect against gaps; size for the risk |
The uncomfortable pattern: slippage is asymmetric in practice. It tends to hurt rather than help, because you demand liquidity at exactly the moment everyone else does. When good news breaks, you want to buy and so does the crowd, so the ask runs away from you. When a stop cascade triggers, everyone sells into the same thinning bids. You are rarely the only one reaching for the door. This is one of the transaction-cost reasons backtests overstate performance: a backtest assumes it filled at the printed price, symmetrically, every time.
Stops Are Triggers, Not Guarantees
A stop-loss is not a price you are guaranteed to exit at. It is a trigger. When the market touches your stop level, the order becomes a market order and fills at whatever liquidity exists at that instant. In calm conditions on a liquid name, that is a cent or two of slippage and nobody notices. In a gap, it is a different story.
Work through it. You are long 100 shares bought at $55, with a stop at $50. Overnight, bad news hits. The stock does not trade down through $50, it opens the next morning at $46, gapping straight past your stop. Your stop-loss triggers on the open and fills near $46, not $50.
Long 100 Shares at $55, Stop at $50, Overnight Gap to $46
| Order Used | What Happens on the Gap | Loss / Share | Loss (100 shares) |
|---|---|---|---|
| Idealized (stop holds at $50) | Assumes liquidity sitting at your stop | -$5.00 | -$500 |
| Stop-loss (market) | Triggers, fills at the opening liquidity | -$9.00 | -$900 |
| Stop-limit ($50 stop / $50 limit) | Triggers but limit not met; no fill | Position still open, still falling | Unbounded |
The stop-loss fill is 80% worse than the loss you planned, and nothing prevented it, because there were no buyers at $50. A stop-limit is the alternative: it guarantees your price but not your fill. If the market gaps past your limit, the order simply does not execute and you keep holding a falling position. That is the real trade-off, and it is worth being blunt about: would you rather get a bad fill or no fill? For a hard risk limit on a gappy instrument, most traders accept the bad fill.
Where "Commission-Free" Gets Paid For
If your broker charges no commission, the execution still costs something, and it helps to understand where. Many retail brokers route your orders to wholesale market makers and receive a payment for that flow, a practice called payment for order flow. The market maker fills your order and profits from the spread, capturing a slice of the difference between bid and ask.
This is not a conspiracy, and for liquid names in calm conditions the execution is usually fine, sometimes even slightly better than the public quote. But it is worth stating plainly: commission-free is not cost-free. The spread is always real and always paid, just less visible than a line-item commission. When you compare brokers, execution quality belongs next to fees and regulation, which is part of choosing a broker on what actually matters. The same demand-for-liquidity math shows up on-chain, where slippage on AMM-based DEXs is priced into every swap by the size of the liquidity pool.
What You Can Actually Do
None of this is a reason to stop trading. It is a reason to stop pretending fills are free. A few concrete habits close most of the gap between your backtest and your account:
- Use limit orders whenever fill certainty is not critical. You give up the guarantee of execution in exchange for controlling your price, and you stop paying the spread as a taker.
- Avoid market orders at the open, the close, and around scheduled news. These are the moments the book is thinnest and slippage is largest.
- Check the spread before you enter, especially on exotic FX pairs and small-caps. If the spread is a meaningful fraction of your target, the trade may be underwater the instant you enter.
- Size down in thin markets. Your order is only "small" relative to the liquidity actually resting in the book.
- Measure your own slippage. Log expected fill versus actual fill in your trading journal, and after 50 trades you will know your real average execution cost instead of guessing.
Key Takeaways
The chart price is history. What you can deal at is a bid and an ask, and the spread between them is a cost you pay on every round trip. Market orders take liquidity and can walk a thin book; stops are triggers that fill at whatever exists, not at the level you set. Commission-free routing does not remove the spread, it hides it. The traders who close the gap between test and reality treat execution as a real, measurable cost, not a rounding error.
Your edge has to be bigger than your execution cost, or it is not an edge, it is a subsidy to whoever fills you.
Disclaimer: This content is for educational purposes only and does not constitute financial advice. Trading involves substantial risk of loss. Past performance does not guarantee future results.