Backtest Sharpe Is High but Live Trading Drops: Is Slippage the Only Reason?

 / 
2

Bro, your backtest Sharpe looks insanely high, but the moment you go live, it falls apart—this is way too common, and it hurts every time I see it.

OKX Exchange
A leading global cryptocurrency platform,suitable for both beginners and experienced traders.
New user benefit: 20% off trading fees upon registration!!

Don't just blame slippage. Slippage is definitely one of the main culprits, but it is far from the whole story. Today let's break down these "hidden killers" one by one. Check your own strategy against them and you should be able to locate the problem.

The real traps are hidden in the "ideal assumptions" of your backtest

The gap between backtest and live trading is not simply "the market changed." It is that your backtest contains a bunch of unreasonable default settings you may not even notice. These are not intentional—they come from coding defaults that are simply too ideal.

A backtest assumes your orders always fill. Live trading has to pass many more hurdles.

Check 1: Using the closing price to fill orders (you can't actually buy at that price)

The most common unreasonable setting in backtests: the strategy calculates a signal before the close, then fills the order at today's closing price.

The problem is—by the time you see the closing price, that price is already the last trade of the day. You cannot buy at it anymore. A backtest that fills you at the same day's close is basically letting you trade with "future data."

How to fix it: Delay the signal by one day and fill at the next day's open or close. This single fix alone can shrink returns by 20%–40%.

Check 2: Ignoring trading costs (fees and slippage)

A backtest defaults to zero slippage, but in live trading every order is being eaten away by extra costs.

There are two types of slippage:

  • Delay slippage: Between the time the signal is generated and the order actually fills, the price has already moved.

  • Price impact: Your own order pushes the price against you. Large orders can "eat through" the order book, and your average fill price ends up much worse than the price you saw.

How to fix it: Add a fixed slippage model to every trade. Use about 0.02% for major coins and 0.05%–0.1% for altcoins. High-frequency strategies must be modeled with order book data, otherwise the backtest results are basically meaningless.

Check 3: Overfitting (treating noise as a real pattern)

You spent three days tuning your parameters from (20,60) to (17,43), and backtest returns jumped from 15% to 28%. Congratulations—you did not discover a better pattern. You overfitted to historical data.

The essence of overfitting is using an overly complex model to explain a world full of randomness. An AI-generated strategy with a backtest Sharpe of 2.0 can drop below 0.8 in live trading because the model memorized historical noise instead of learning generalizable patterns.

How to fix it: Do out-of-sample testing. Use one part of the data for training and another part for validation. If it looks great on the training set but collapses on the test set, your strategy only happened to fit a specific period of history.

Check 4: Survivorship bias (your backtest assets are the ones that "survived")

You backtest using today's index constituents, but the constituents five years ago were different. The bad assets that got removed or delisted never appeared in your backtest—but at that time, they could have been selected.

This is like going back to an exam while holding the answer key and thinking you know everything, but in the real exam you only have the questions.

How to fix it: Use the full market universe that existed at the start of the backtest period, not today's list projected backward into history.

Check 5: DeFi-specific traps—MEV and the mempool

If you run on-chain strategies, there is an even nastier problem: MEV.

A backtest assumes your trades fill as expected, but in reality every DEX trade can be sandwiched—front-running bots buy before you and sell after you, pushing your fill price higher and taking the difference. On Ethereum alone, MEV extractors have taken 180,000 ETH.

Your backtest does not include this, but in live trading every trade is being farmed.

Self-check list: high backtest Sharpe but live trading collapses—go through these one by one

Check itemBacktest assumptionLive realityHow to fix
Fill priceFills at current price after signalPrice has already moved during the delayFill at next candle's open price
SlippageZero slippageDelay slippage + price impactAdd fixed slippage to every trade
FeesIgnored or fixed rateDynamic, huge for high-frequency tradingUse a realistic fee model
OverfittingParameters tuned to look goodPatterns do not repeat in live tradingOut-of-sample testing + cross-validation
Survivorship biasUses current constituents on historyPast available assets were differentUse the full market universe at that time
MEV (on-chain)NoneSandwiched and front-runUse private RPC or CoW protocol

FAQ

Q: How much slippage should I add?A: Add about 0.02% per trade for major coins and 0.05%–0.1% for altcoins. If your strategy trades very frequently, such as dozens of times per day, slippage and fees may eat up all your profits.

Q: My strategy is daily-level. Do these traps still matter?A: They matter less than for high-frequency strategies, but they still exist. The closing price problem, survivorship bias, and overfitting all affect daily strategies. After fixing with next candle's open price, the 20%–40% return shrinkage applies to daily strategies too.

OKX Exchange
A leading global cryptocurrency platform,suitable for both beginners and experienced traders.
New user benefit: 20% off trading fees upon registration!!

Next steps

Open your backtest code and check each item on the list:

  1. Is the fill price using a "delayed by one day" version?

  2. Does every trade include slippage and fees?

  3. Have the parameters been tuned repeatedly, which creates overfitting risk?

  4. Does the backtest use the full market universe that existed at that time?

Fix these four things and rerun the backtest. If the Sharpe can still stay above 1.2, then consider going live—otherwise you are just giving money to exchanges and MEV bots.