Slippage and Market Impact: The Hidden Tax on Every Trade

📅 September 24, 2026⏱️ 6 min read🏷️ Execution

Your backtest shows 2% average profit per trade. Your live account shows 0.3%. The difference is slippage and market impact. Learn how to model both accurately so your backtests tell the truth.

Ask a quant trader: "What's the most common reason a strategy looks great in backtest but loses money live?" The answer, almost universally, is: "They didn't model slippage properly."

Slippage is the difference between the price you expected to get and the price you actually got. It's not a small cost. For most retail trading strategies, it's the difference between profitable and unprofitable.

The Three Components of Execution Cost

  1. Spread: The bid-ask spread. You always cross it — buying at ask, selling at bid. For a liquid large-cap, this is 1–2 basis points. For a mid-cap, 10–30bp. For a small-cap, 50–200bp.
  2. Market impact: Your order moves the price against you. The larger your order relative to recent volume, the more you push the price. A 1,000-share order in a stock doing 100K shares/day is nearly free. The same 1,000 shares in a stock doing 5K shares/day is a 20% participation rate — extremely costly.
  3. Timing cost: The price moves while you're waiting for your order to fill. In fast markets, this can exceed the spread.

Quantifying Market Impact

The standard model is square-root market impact:

Impact (bp) = k × σ × √(Q / V)

Where:
• k = impact coefficient (typically 5–15 for equities)
• σ = daily volatility (as a fraction, e.g., 0.02 for 2%)
• Q = your order size (shares)
• V = average daily volume (shares)

Example: You want to buy 5,000 shares of a stock with σ=2%, ADV=200,000 shares.
Impact = 10 × 0.02 × √(5000/200000) = 10 × 0.02 × 0.158 = 0.032 = 32bp

That's 0.32% — before spread, before commission. If your signal's edge is 0.5% per trade, you've just consumed 64% of your edge in impact alone.

The Participation Rate Rule

The simplest practical rule: your order should not exceed 5% of the stock's average daily volume.

How to Model This in Backtests

Minimum viable slippage model:

  1. Fixed spread: Add 5bp per side for large-caps, 15bp for mid-caps, 50bp for small-caps. Always.
  2. Volume-based impact: Calculate your participation rate for each trade. Apply the square-root formula. Add to cost.
  3. Worst-case buffer: Multiply total estimated cost by 1.5. Live markets are always worse than the model.
The truth test: If your strategy's average profit per trade is less than 3× your estimated round-trip cost, it probably doesn't work live. The backtest is lying to you.

Position Sizing for Execution Reality

This is where most traders go wrong. They size positions based on their risk tolerance ("I want to risk 2% of my account") without checking if the position is executable.

A 2% risk on a $100K account is a $2,000 risk per trade. If your stop-loss is 5% away, your position size is $40,000. Now check: can you actually buy and sell $40,000 of this stock without moving the price 2%? If the ADV is only $200K, your 20% participation rate means you're paying 100bp+ in impact. Your "5% stop" is actually a "7% stop" because the market moved against you just from your own entry order.

What GemStox Does Differently

GemStox position sizing checks your account size against the target stock's average daily volume before suggesting a position. If the suggested size would exceed 5% participation, the system automatically reduces the position size (and adjusts the risk per trade accordingly). You never get a signal that looks great on paper but costs you 30bp to execute.

Signals sized for realistic execution.

GemStox position sizing accounts for your account size relative to the stock's daily volume. No unrealistic fill assumptions. $3 Day Pass.

Get Execution-Realistic Signals →