Slippage in Trading: Why Your Live Results Never Match

Slippage in Trading: Why Your Live Results Never Match


Slippage in Trading: Why Your Live Results Will Never Match Your Backtest (Unless You Fix This) – Table of Contents

Slippage in trading is the difference between the price you expected to get and the price you actually received when your trade was filled. It happens on entries and exits, and it costs real money on every single trade.

You ran a backtest. The results looked solid. You went live – and the numbers did not match. That gap is largely slippage. Your paper trades fill at the close, but your live trades fill at the open the next morning after an overnight gap. Your limit orders do not fill at touch. The small stocks you like to trade move against you the moment you try to buy size. This article explains what causes slippage, how to model it correctly in a backtest, how to choose the right order types, and how to build a system that still has a genuine edge after realistic costs are deducted.

What Is Slippage in Trading?

Slippage in trading is the difference between the expected fill price and the actual fill price – and it applies to both entries and exits on every trade you take.

When most people think about slippage, they picture paying more to buy or receiving less when they sell. That is negative slippage, and it is what you will experience the majority of the time. But positive slippage does exist. You can sometimes get filled at a better price than expected – especially if you are selling into a fast-moving rally or buying into a sharp gap down that reverses quickly. It is just less common.

In a backtest, slippage is a clean assumption you set in your software. You might say: “assume 0.25% slippage on every trade.” The software applies that number consistently across thousands of trades and returns a neat performance report. In live trading, slippage is messier. It varies trade by trade, stock by stock, and condition by condition.

There is also a type of slippage that many end-of-day traders overlook completely. Call it time-drift slippage. Your signal fires at the close of the day. Your backtest assumes you execute at that close price. But in reality, you are an end-of-day trader – you execute the next morning at the open. Overnight, the stock can gap up or gap down. That gap is a form of slippage that never shows up in backtests that assume close-to-close fills.

The true cost of a round trip is not just commission. It is slippage on entry, plus commission on entry, plus slippage on exit, plus commission on exit. Those four numbers together tell you your real execution cost. Ignore any one of them and your backtest is lying to you.

How Much Commission and Slippage Should You Allow When Backtesting a Trading System?

What Causes Slippage in Stocks?

The main causes of slippage in stocks are low liquidity, wide bid-ask spreads, large order sizes relative to daily volume, overnight price gaps, and the use of market orders in fast-moving conditions.

Low liquidity is the biggest culprit. When a stock has a thin order book, there are not enough shares available at the quoted price to fill your entire order. So your order walks up the order book, picking off progressively worse prices as it fills. You expected to buy at $1.00. You end up with a blended fill averaging $1.03 or $1.04.

Wide bid-ask spreads are essentially built-in slippage. If a stock has a bid of $0.98 and an ask of $1.02, the spread is 4 cents. A market order to buy executes at the ask. A market order to sell executes at the bid. That spread is a cost you pay before the stock moves a single cent in your favour or against you.

Large position size relative to daily volume is a problem that grows as your account grows. The rule of thumb is simple: if your order is 10% or more of the average daily dollar turnover of that stock, you are going to move the price. A stock trading $500,000 per day cannot absorb a $100,000 order without moving. You are the market. You are filling against yourself.

Overnight gaps are the hidden slippage that end-of-day systematic traders rarely account for correctly. Your backtest might assume you buy at the close on the signal day. But you do not execute until the next morning’s open. If the stock gaps up 3% overnight, you have paid 3% more than your backtest assumed – every single time. Over hundreds of trades, that is enormous.

Order type choice matters more than most traders realise. A market order says: fill me at whatever price is available right now. In a thin or fast-moving market, “whatever price is available” can be much worse than you expected. Stop orders become market orders once triggered, which means they face the same problem. Understanding order types for stocks is not optional if you want to control execution costs.

How Do You Measure Slippage in a Backtest?

To measure slippage in a backtest, track the difference between your assumed fill price and the actual fill price for every trade, broken down by system type, order type, and stock liquidity group – never as a single blended average.

This is where most traders get it wrong. They lump all their slippage into one number and call it done. That single number might look harmless. But underneath that average, your trend following exits might be slipping badly during market panic while your mean reversion entries are being filled exactly as expected. Averaging them together hides both problems.

Averaging entry slippage with exit slippage is like saying the average temperature of your freezer and your oven is comfortable. Technically, the maths might work. Practically, it tells you nothing useful.

For every live trade, track these six things:

  • Expected price – the price your system assumed
  • Actual fill price – what you actually received
  • Slippage percentage – the difference expressed as a percentage of the trade value
  • Order type used – market, limit, stop, market-on-open, market-on-close
  • Stock liquidity group – ETF, large cap, mid cap, small cap, micro cap
  • Market conditions at time of fill – normal, high volatility, gap, panic

Track separately for entries and exits. Track separately by system type. A mean reversion system and a trend following system will have completely different slippage profiles, and treating them as one category is a shortcut that costs you accuracy.

One month of live data is enough to start calibrating your assumptions. After 50 to 100 trades, patterns begin to emerge. You might discover your slippage is fine overall but only a problem in small-cap stocks. You might find your position size is too large for certain instruments. You might find that market orders on exits during volatile sessions are costing you far more than your backtest assumed.

That is not just data. That is actionable information.

Compare live slippage to backtest assumptions by system, not across the whole portfolio. If your trend following system is beating its slippage assumptions but your mean reversion system is significantly worse, you need to fix the mean reversion assumptions – not average the two together and feel okay about it.

Reviewing your backtesting process with accurate slippage data is one of the highest-value activities a systematic trader can do.

How Much Slippage Should You Allow in Backtesting?

The slippage allowance you should use in backtesting depends on the liquidity of the stocks you are trading: as a starting point, allow 0.08-0.1% for ultra-liquid large-caps, 0.2-0.25% for stocks with $2M+ daily turnover, and 0.75-1% for lower-liquidity stocks around $250K daily turnover.

Those are total cost figures – commission plus slippage combined. Here is a more complete breakdown by liquidity tier:

  • Ultra-liquid US large-caps, S&P 500 ETFs, or futures: 0.08% to 0.1% total cost is a reasonable assumption. The markets are deep and spreads are tight.
  • Stocks with average daily dollar turnover above $2 million: 0.2% to 0.25% is a realistic starting point.
  • Stocks with average daily turnover around $250,000: 0.75% to 1% slippage plus commission is appropriate.
  • Australian small-cap stocks trading under 5-10 cents: several percent per side. Often 2% or more is not unreasonable. These stocks have wide spreads relative to price and minimal depth.

The principle is simple. The higher your liquidity requirement, the lower your expected slippage. The more you trade in thin, small-cap territory, the more you need to build in.

Always include slippage and commissions in every single backtest. A system tested without costs is not a real result – it is a fantasy. Short-term system publishers often exclude slippage because adding it makes most of those systems unprofitable. If you ever see a published system result with “results exclude slippage and commission” in the footnotes, treat that result as meaningless for real-world trading.

The slippage stress-test method is one of the most useful techniques in a systematic trader’s toolkit. Step your slippage assumption up gradually – try 0.1%, then 0.25%, then 0.5%, then 1%. Find the break-even point. If your system is still profitable well beyond what you would realistically pay in the market, you have genuine confidence in the edge. If the system breaks at 0.3% total cost, you do not have a system – you have a number generator that only works in ideal conditions.

This stress-test approach helps you separate systems that have real, durable edges from systems that only survive when everything goes perfectly.

How Is Slippage Different for Trend Following vs Mean Reversion Systems?

Slippage affects trend following and mean reversion systems in completely different ways, which is why they need separate measurement and separate assumptions in your backtesting.

In a trend following system, entries are typically buying strength – breakouts, new highs, momentum signals. There is often natural slippage at entry because the stock is already moving. That is expected and generally manageable because trend following systems aim to capture large moves. If your average winning trade returns 30% to 40%, paying 0.3% to get in is not a problem. The system has room to breathe.

The danger in trend following shows up at the exit. By the time a trend following trade exits, the position has often grown significantly in dollar terms because the stock has moved in your favour. If that exit is triggered during a sharp market decline, a gap down, or a broad panic, spreads widen and liquidity can dry up fast. Your trailing stop triggers at one price. Your actual fill comes in much worse. That is where trend following slippage can bite hard.

In a mean reversion system, the situation is reversed. Mean reversion on the long side typically means buying weakness – entering when a stock or market has fallen hard and fear is high. That is precisely the moment when spreads widen and liquidity thins. If you use a market order to enter a mean reversion long during a sharp selloff, you may get filled significantly worse than expected.

And that is a serious problem, because mean reversion systems typically have small average profits per trade. The edge is real but tight. An average profit of 2% per trade with 0.5% to 1% slippage on entry alone leaves you with almost nothing before commission. The system that looked solid in a backtest suddenly struggles in live trading.

This is why many systematic mean reversion traders use limit orders on entries. A limit order controls your entry price and stops you from chasing a falling stock with a market order. The trade-off is that you miss some trades when price does not reach your limit. Whether that trade-off improves or hurts the system overall is something you need to test – not assume.

Position sizing also plays a role here. Larger positions create more market impact, which means more slippage. For traders growing their accounts, this becomes increasingly important to monitor. See position sizing for a complete treatment of how position size affects execution.

How Do You Match Your Backtest Assumptions to Live Execution?

Matching your backtest assumptions to live execution requires tracking every trade, comparing expected fills to actual fills by system and order type, and adjusting your rules based on what the data tells you – not what feels comfortable.

The most common reason live results disappoint is that the backtest was built on assumptions that never reflected how the system would actually be traded. Here is how to close that gap.

Match your execution timing to your backtest timing. If your backtest assumes fills at the close, you need to execute at the close. If your backtest assumes fills at the next morning’s open, you need to execute at the open. The moment you execute at a different time than your backtest assumes, you have introduced a source of performance drift that will compound over time. This is especially important for mean reversion systems, where the entry price matters enormously.

Use the right order type for your system. A system backtested using market-on-open fills should use market orders or adaptive algo orders at the open. A system backtested using limit orders should use limit orders live – and the backtest should be conservative about fill assumptions. Backtests that assume a limit order fills whenever price touches the limit level are over-optimistic. In live trading, your order joins a queue. If price only touches your level and reverses, the orders ahead of you in that queue may consume all the available volume before yours is reached.

Use an adaptive algo order where your broker offers it. If you trade through Interactive Brokers, their adaptive algo order type attempts to get fills between the bid and ask rather than simply taking the worst available price. This can reduce slippage on entries and exits versus a straight market order.

If you want a systematic approach that accounts for slippage correctly – and builds that realistic framework into a complete, tested trading system – that is exactly what the Trader Success System teaches. It is the structured programme Adrian built after 20 years of trading systematically, specifically to help traders close the gap between backtest performance and live results.

Keep a live slippage log. Record expected entry price, actual fill, slippage percentage, order type, stock liquidity group, and market conditions for every trade. After one month of live data, you will have enough to compare against your backtest assumptions. If your live slippage is consistently higher than your backtest assumed, you have three choices: adjust your backtest to be more conservative, add stricter liquidity filters to reduce the source of the problem, or change your order type.

Review by system, not by portfolio. If your portfolio contains both a trend following system and a mean reversion system, averaging their slippage will mask problems. Trend following may be performing within assumptions while mean reversion is running hot. You will not see that unless you look at them separately.

What Liquidity Filter Should You Use to Minimise Slippage?

The best liquidity filter to minimise slippage is based on average daily dollar turnover, not just share volume – and the threshold should match both your account size and your position sizing rules.

Share volume alone is a poor measure of liquidity. A stock trading 2 million shares per day at 3 cents has traded $60,000 of value. A stock trading 20,000 shares per day at $500 has traded $10 million of value. Share volume says the first stock is far more liquid. Dollar turnover says the opposite. You need to know how much money is actually changing hands, not just how many shares.

Use price times volume – stock price multiplied by shares traded – averaged over a meaningful lookback period. That is your daily dollar turnover figure. Set your minimum based on your expected position size.

The practical rule is this: your position size should be no more than 10% of the stock’s average daily dollar turnover. If you are placing $50,000 orders, your minimum liquidity filter should be $500,000 per day. If you are placing $200,000 orders, your minimum should be $2 million per day. Breach that 10% threshold and you are likely moving the market against yourself on every entry and exit.

As your account grows, your liquidity filter needs to grow with it. A system that worked smoothly at $100,000 may need its filter adjusted at $500,000, and adjusted again at $2 million. This is not a flaw in the system – it is a practical reality of trading larger capital.

One additional refinement worth testing for small-cap and resource stocks: use median daily dollar turnover rather than average. A single announcement day can spike volume 10x to 50x, which distorts the average for weeks and makes a stock look more liquid than it normally is. The median is not affected by those spikes. It gives you a more honest picture of what you will face on a normal trading day.

Test your liquidity filter thresholds. Compare $500K minimum, $1M minimum, $2M minimum, and $5M minimum. Look at how each threshold affects the number of trades, the backtest return, and – most importantly – the realistic slippage assumptions that apply. A slightly lower backtest return from a stricter liquidity filter is often a good trade-off if it means your live fills are closer to what your backtest assumed.

How Do Limit Orders Affect Slippage?

Limit orders can reduce slippage by giving you price control on entries, but they introduce their own risk of missed trades and can become dangerous on exits if not designed carefully.

A limit order says: fill me at this price or better. It sets a ceiling on what you will pay to enter and a floor on what you will accept to exit. That control is valuable, especially in mean reversion systems where the entry price matters to profitability.

But there are two important limitations.

First: a limit order is not guaranteed to fill. When price touches your limit level, your order joins a queue of other orders at that same price. If there is more volume on your side of the market than the available supply, your order may not get reached before price moves away. This is especially common at exact round-number prices where many orders cluster. Your backtest may show excellent performance because it assumed a fill every time price touched the limit level. In live trading, many of those fills never happen. The result is that your live trading captures fewer trades than the backtest assumed – often the trades that would have been most profitable.

The conservative approach in backtesting is to assume a fill only when price penetrates your limit level, not just touches it. For a buy limit at $10.00, only assume a fill if price trades to $9.99 or below. That makes the backtest less optimistic and more realistic.

Second: limit orders on exits can leave you trapped in a trade your system wanted you out of. Consider a trend following system that triggers a sell signal based on a moving average crossover. That crossover happens once. If you place a sell limit order and it does not fill, the crossover has already happened. Your system may not generate another sell signal. You are still holding the position while your system considers the trade closed. That misalignment between your system’s logic and your actual position is a serious problem.

For exit orders, particularly on discrete signals that fire once, a market order is often the better choice. You accept slippage to guarantee the exit. Getting out cleanly at a slightly worse price is almost always preferable to staying in a position you intended to close.

The practical rule: use limit orders on entries where you need price control and where missing some trades is acceptable. Use market orders on exits where getting out is more important than getting the best price. Test everything before changing your live trading.

How Does Slippage Change as Your Account Grows?

As your account grows, slippage becomes a more serious problem because your order sizes grow with it – and larger orders have more market impact, especially in less liquid stocks.

When your account is small, your orders represent a tiny fraction of the daily volume in most stocks. You are invisible to the market. Your fills are close to the quoted price and close to what your backtest assumed.

As your capital grows, that changes. A position that was $10,000 at a $200,000 account becomes $50,000 at a $1 million account. The same liquidity filter that worked fine at smaller size starts showing its limits. Your entries push prices up slightly before you are fully filled. Your exits push prices down. The backtest looks the same. The live results diverge.

There are several practical responses when this happens.

Increase your liquidity filter. Move your minimum daily dollar turnover threshold up to ensure your orders remain a small fraction of available volume. You will trade fewer stocks, but the stocks you do trade will absorb your orders more cleanly.

Reduce your allocation to that system. Allocating less capital means smaller individual orders. Your edge per trade stays intact. Your total exposure decreases slightly, but so does the execution friction.

Increase your position count. If a system currently holds 10 positions, moving to 15 or 20 positions reduces the size of each individual order. Each trade becomes easier to fill close to your expected price. This needs to be tested – more positions changes the system’s risk and return profile – but it is often a productive place to start.

Add a second system. Instead of scaling one system up to uncomfortable size, add a different system with different logic and different stock universe. Each system operates at a manageable size. You gain diversification and keep execution friction low. This is the approach Adrian used as his own account grew – adding systems rather than growing individual system size past the point of practical execution.

Consider longer-term systems. Short-term mean reversion systems with holding periods of one or two days pay slippage on every single trade. Switching part of your capital to longer-term trend following systems reduces the number of entries and exits, so slippage compounds less. A trend following system holding trades for weeks or months pays slippage far less frequently.

How Do You Calculate Whether Slippage Is Killing Your Trading Edge?

To calculate whether slippage is damaging your edge, compare your live slippage percentage to your average profit per trade – if slippage represents more than 20-25% of your average trade profit, you have a problem worth fixing.

The context matters more than the raw number. A 0.5% slippage figure means something very different depending on the system:

  • In a long-term trend following system with an average winning trade of 30%, 0.5% slippage on a round trip is roughly 1.7% of the average profit. That is manageable. The system has a wide margin.
  • In a short-term mean reversion system with an average profit per trade of 2%, 0.5% round-trip slippage consumes 25% of the average trade before you have even paid commission. That is a serious problem.

The stress-test process quantifies this precisely. Take your current backtest. Step your total cost assumption (slippage plus commission) up gradually:

  • Run the backtest at your current assumed cost (e.g. 0.25%)
  • Run it at 0.5%
  • Run it at 0.75%
  • Run it at 1.0%
  • Run it at 1.5%

Find the point where the system stops being profitable. If the system breaks at 0.4% and your realistic live costs are 0.3%, you have almost no margin for error. If the system stays profitable at 1.0% and your realistic live costs are 0.3%, you have genuine confidence in the edge.

Use the trading expectancy calculator to model how changes in average trade profit affect overall system expectancy. A system with healthy expectancy at current costs but marginal expectancy at slightly higher costs is fragile. You want your system to have enough edge that normal variations in slippage do not flip it from profitable to unprofitable.

One bad fill is not the signal to panic. One trade tells you almost nothing. But if you track 50 to 100 trades and your average slippage consistently exceeds what your backtest assumed, that is a pattern worth investigating – by system, by order type, and by stock liquidity tier.

Practical Steps to Reduce Slippage in Your Trading System

You cannot eliminate slippage. But you can reduce it to a level where your system’s edge survives contact with the real market.

Here are the most effective actions, in order of impact:

  • Set a meaningful liquidity filter. Use minimum daily dollar turnover, not share volume. Set the threshold so your position size is no more than 10% of average daily turnover. Raise the threshold as your account grows.
  • Include realistic slippage in every backtest. Never backtest without costs. Use the tiered figures from the “how much slippage” section above as a starting point. Stress-test your system by stepping costs up to find the break-even point.
  • Match your execution to your backtest assumptions. If your system assumes open fills, execute at the open. If it assumes close fills, execute at the close. Never introduce time drift between your signal and your execution without testing whether that drift changes the system’s performance.
  • Choose order types that fit the system. Mean reversion entries often benefit from limit orders to control entry price. Trend following exits often benefit from market orders to guarantee execution. Test the choice – do not assume.
  • Track slippage separately for entries and exits, and by system type. A single blended average hides problems. Separate tracking gives you the diagnostic data to find and fix the specific issues.
  • Review your position sizing. If your live slippage is consistently higher than your backtest assumed, check whether your order size is exceeding 10% of average daily turnover in the stocks you are trading.
  • Consider splitting systems across execution times. Running one version of a system at the open and another at the close spreads your order flow across two execution windows. This can reduce concentration of orders at one point in the trading day, particularly useful when trading a larger portfolio of positions.

Slippage is not exciting to manage. There is no dramatic moment where you “beat” it. It is a cost you reduce through disciplined system design, realistic backtesting assumptions, and consistent live tracking.

But here is the thing about small improvements in execution. Across hundreds and thousands of trades, they compound in your favour. A 0.1% reduction in average round-trip slippage, applied across 200 trades per year, is 20% of annual capital returned to you rather than given to the market. That is the kind of number that changes long-term results.

Frequently Asked Questions About Slippage in Trading

Does slippage affect end-of-day traders differently than intraday traders?

Yes, significantly. End-of-day traders face a specific type of slippage from overnight gaps – the difference between the closing price when the signal fires and the opening price when the order executes the next morning. Intraday traders execute in real-time and avoid this gap risk, but face slippage from fast-moving intraday conditions and wider spreads during volatile sessions.

Why does my live trading performance differ from my backtest results?

The most common reasons are: slippage assumptions in the backtest were too optimistic, the backtest assumed close fills but live execution happens at the next open, position sizes are too large relative to daily stock volume, or limit order fills were assumed at touch rather than requiring price penetration. Track your live fills against backtest assumptions trade by trade to find the specific cause.

Is a 0.25% slippage assumption realistic?

For stocks with daily dollar turnover above $2 million and position sizes well within the 10% of daily turnover rule, 0.2% to 0.25% total cost (commission plus slippage) is reasonable. For smaller or less liquid stocks, 0.5% to 1% or more is more realistic. The assumption needs to match the specific liquidity tier you are trading.

The Bottom Line on Slippage in Trading

Slippage is not a reason to stop trading. It is not a reason to throw out your system. It is not evidence that your broker is cheating you or that the market is rigged against you.

It is a cost that every systematic trader pays. The difference between traders who manage it well and traders who do not is this: measurement.

If you track slippage properly – by system, by entry and exit, by order type, by liquidity tier – you have the data to diagnose problems and fix them. If you lump it all into one number or ignore it entirely, you are flying blind.

Build your systems with realistic slippage assumptions from the start. Stress-test every system to find its break-even cost level. Set your liquidity filters to match your account size. Choose your order types to match your system’s logic. And track your live fills against your assumptions so you always know whether your system is performing as expected or whether something needs attention.

That is how systematic traders build real confidence in their results – not by hoping the backtest holds up in live trading, but by building the system in a way that accounts for the real world from day one.

If you want to learn this process from scratch, with a complete framework for building, testing, and trading rules-based systems that account for realistic costs, the Trader Success System is where to start.

Remember – You are only one trading system away!

Adrian
Founder – Enlightened Stock Trading

author avatar

Adrian is a full-time private trader based in Australia and also the Founder and Trading Coach at Enlightened Stock Trading, which focuses on educating and supporting traders on their journey to profitable systems trading. Following his successful adoption of systematic trading which generated him hundreds of thousands of dollars a year using just 30 minutes a day to manage his system trading workflow, Adrian made the easy decision to leave his professional work in the corporate world in 2012. Adrian trades long/short across US, Australian and international stock markets and the cryptocurrency markets.

His trading systems are now fully automated and have consistently outperformed international share markets with dramatically reduced risk over the past 20+ years.

Adrian focuses on building portfolios of profitable, stable and robust long term trading systems to beat market returns with high risk adjusted returns. Adrian teaches traders from all over the world how to get profitable, confident and consistent by trading systematically and backtesting their own trading systems. He helps profitable traders grow and smooth returns by implementing a portfolio of trading systems to make money from different markets and market conditions.



Source link

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *