execution · 4 min

Slippage: The Tax You Don't See

What You Will Learn

  • What slippage is and why it occurs on every market order.
  • How to measure slippage in your own trading.
  • Practical techniques to minimize slippage and protect your edge.

The Core Idea

Your backtest assumes you bought at $100. In reality, you bought at $100.15.

That 0.15% difference is slippage. It doesn’t show up as a fee on your statement. It doesn’t have a line item. But it’s real money leaving your account on every trade.

Most traders treat slippage as bad luck. A botter treats it as a designable cost—something to measure, model, and minimize.

If your strategy’s edge is 0.3% per trade and your slippage is 0.2%, you’re keeping only a third of what you earned. The rest is an invisible tax.

What Is Slippage?

Slippage is the difference between your intended execution price and your actual fill price.

When you send a market order to buy, you expect to pay the current ask price. But by the time your order reaches the exchange and gets filled, the price may have moved. Or there may not be enough volume at the best price, so your order fills across multiple price levels.

Either way, you pay more than you planned. That’s slippage.

The math adds up fast. Suppose you trade 5 times per day with 0.1% average slippage per trade:

  • Daily: 0.5%
  • Monthly: ~10%
  • Yearly: ~120%

That’s not a rounding error. That’s the difference between a profitable strategy and a losing one.

Why Slippage Happens

Insufficient liquidity. The order book doesn’t have enough volume at the best price. If you’re buying 10 BTC but only 2 BTC sits at the best ask, the remaining 8 BTC fills at progressively worse prices.

Volatility. Prices move between when you decide to trade and when your order executes. In fast markets, even milliseconds matter. What you saw on screen is already stale.

Market impact. Large orders move prices. If you’re buying a significant fraction of available liquidity, your own buying pushes the price up against you. You’re trading against yourself.

Latency. Network delays, exchange processing time, and API overhead all create gaps between intention and execution. The further you are from the exchange’s matching engine, the more stale your price information.

Time of day. Liquidity varies dramatically throughout the day. Trading during low-liquidity hours (overnight in your market’s timezone) typically means worse fills.

Measuring Your Slippage

You can’t improve what you don’t measure. Start tracking slippage on every trade.

Step 1: Record your intended price. Before you send the order, note the price you expected to get—typically the current bid (for sells) or ask (for buys).

Step 2: Record your actual fill. After execution, note what you actually paid. For orders that fill across multiple price levels, calculate the average fill price.

Step 3: Calculate the difference. Slippage = (Actual Price - Intended Price) / Intended Price. For buys, positive means you paid more than expected. For sells, positive means you received less.

Step 4: Analyze patterns. Break down slippage by:

  • Time of day
  • Volatility level (high vs. low VIX or ATR)
  • Order size
  • Asset (BTC vs. altcoins)
  • Exchange

You’ll likely find that certain conditions consistently produce worse slippage. Avoid those conditions when possible.

Compare to VWAP. Volume-Weighted Average Price (VWAP) over your execution window gives a benchmark. If you consistently fill worse than VWAP, your execution needs work.

Reducing Slippage

Split large orders. Instead of one 10 BTC market order, consider five 2 BTC orders spread over time. This reduces market impact and lets the order book replenish between fills. The tradeoff: you take on timing risk if prices move against you.

Trade during liquid hours. For crypto, liquidity peaks when US and European markets overlap. Asian overnight hours are typically thinnest. Check your specific exchange’s volume patterns.

Use limit orders when possible. If you don’t need immediate execution, a limit order avoids slippage entirely—at the cost of fill uncertainty. See Order Types: Choosing Your Weapon for when this tradeoff makes sense.

Choose liquid venues. The same trading pair can have vastly different liquidity across exchanges. Binance BTC/USDT is not the same as a small exchange’s BTC/USDT. Route orders to where liquidity is deepest.

Size positions to liquidity. If the order book only has $50K within 0.1% of the best price, don’t try to execute a $200K order at once. Match your size to available liquidity, not to your desired position.

Avoid volatile moments. Right after major news, during liquidation cascades, or when funding rates spike—these are high-slippage environments. Unless you have specific edge in chaos, wait for conditions to normalize.

Slippage in Backtesting

Most backtests assume perfect execution: you wanted to buy at the close, you bought at the close. Reality is never this clean.

Add a slippage model. At minimum, assume some fixed slippage per trade (0.05-0.1% for liquid pairs, more for illiquid ones). Better: model slippage as a function of order size and volatility.

Test slippage sensitivity. Run your backtest with 0.05%, 0.1%, and 0.2% slippage assumptions. If your strategy goes from profitable to unprofitable with realistic slippage, it doesn’t have enough edge.

Compare backtest to live. Once you’re trading live, compare actual slippage to what your backtest assumed. If reality is worse, adjust your model—and your expectations.

A strategy that only works with zero slippage doesn’t work.

Common Failure Modes

  • Treating slippage as “bad luck.” It’s not luck. It’s physics. Orders take time, liquidity is finite, and markets move. Plan for it.

  • Ignoring slippage in backtests. The strategy that made 50% per year with zero slippage might lose money with realistic execution. You won’t know until you model it.

  • Trading size without checking depth. Wanting a $100K position doesn’t mean the market can absorb it cleanly. Always check order book depth before sizing.

  • Market orders in volatile conditions. When prices are moving fast, market orders are at their worst. You’re guaranteeing a fill at whatever price the chaos delivers.

  • Chasing fills. Your limit order didn’t fill, so you switch to market and chase. Now you’ve paid slippage plus the adverse move. Sometimes the right answer is to not get filled.