Trading Glass
FeaturesPricingAcademyBlogChartJournal
Loading
All Courses
Biases in BacktestingEdge DegradationOutliers and Their Impact on MetricsSharpe Ratio & Sortino RatioSignal-to-Noise Ratio
Academy/Trading Intelligence/Advanced Statistical Thinking

Biases in Backtesting

Trading Intelligence

9 min read

Avoid survivorship bias, overfitting, and lookahead bias that make backtest results lie to you before you go live.

Loading

Related Lessons

Outliers and Their Impact on Metrics

12 min

Sharpe Ratio & Sortino Ratio

9 min

Signal-to-Noise Ratio

9 min

Nash Equilibrium and No Arbitrage

8 min

Previous Lesson

Law of Large Numbers & Confidence Intervals

Next Lesson

Edge Degradation

Trading Glass

Next-generation charting order flow platform with rotation view, cluster visualization, and real-time analytics for professional traders and quantitative analysts.

Product

  • Features
  • Pricing
  • Chart
  • Journal

Resources

  • Academy
  • Blog
  • Documentation
  • API Reference
  • Support

Company

  • About
  • Contact

Legal

  • Privacy Policy
  • Terms of Service
  • Cookie Policy

© 2026 Trading Glass. All rights reserved.

PrivacyTerms

Your backtest results might be lying to you — here’s how to spot it and fix it before going live.


Introduction

Backtesting is critical.

But bad backtesting?

It’s worse than no testing at all — because it gives you false confidence.

Most traders don’t lose because they’re lazy. They lose because they over-trusted a strategy that looked great in hindsight — but was built on invisible flaws.

This post exposes the most dangerous backtest biases and shows you how to eliminate them.


The 3 Most Common Backtest Biases


1. Lookahead Bias

Using future information that wasn’t actually available at the time of trade.

Examples:

  • Entering based on the close of a candle — before it’s actually closed
  • Calculating moving average crossovers based on confirmed data
  • Using signals from a candle that hasn’t fully formed

Why it's dangerous: Your entries and exits appear “accurate,” but they’re unrealistically perfect — because you’re cheating time.

How to fix it:

  • Only act on closed candles (use bar replay or time-based logic)
  • Avoid functions that reference “future bars” in code
  • Simulate entries realistically (e.g. next bar open, bid/ask spreads)

2. Overfitting

Creating a strategy that performs well only on past data — but fails in real-time.

Symptoms:

  • Too many filters (volume spike + RSI + MA + pattern + moon phase)
  • Perfect equity curve in one market — but breaks in others
  • Strategy only works on one pair, one timeframe, one year

Why it's dangerous: You’re not discovering an edge — you’re memorizing noise.

How to fix it:

  • Test across multiple instruments & time periods
  • Keep your rules simple and robust
  • Apply cross-validation: test on unseen out-of-sample data
  • Try walk-forward testing: adapt model in segments, simulate realistic re-optimization

3. Survivorship Bias

Only testing systems or assets that still exist — ignoring those that failed or changed drastically.

Examples:

  • Backtesting SPY or BTC without accounting for delisted stocks, forks, splits
  • Ignoring slippage, spread, delistings, or black swan blowups

Why it’s dangerous: You’re assuming the conditions that created your edge will always exist.

How to fix it:

  • Use complete historical datasets, not just what exists now
  • Include “dead” assets in portfolio-level testing
  • Simulate volatility regimes, liquidity drops, and spreads increasing

Other Biases to Watch For

Bias TypeDescriptionFix
Selection biasOnly testing your “favorite” tradesInclude every trade in your data sample
Cherry pickingManually excluding ugly outcomesLog every result, good or bad
Optimism biasAssuming you’ll always get filled at ideal pricesSimulate slippage and order book depth realistically
Anchoring biasRefusing to retest or abandon old systemsLet data guide decisions, not nostalgia

Best Practices for Honest Backtesting

1. Use realistic assumptions

  • Include fees, spread, and slippage
  • Account for execution delay (e.g. not entering at candle close)
  • Simulate partial fills for large size

2. Separate in-sample and out-of-sample periods

  • Train your strategy on one period
  • Validate it on a completely different one → If performance holds across both: more robust

3. Keep your strategy as simple as possible

“A system is only as good as its worst assumption.”

Fewer moving parts = less overfitting risk The simpler it is, the easier it is to test, improve, and trust


Final Thought

Most failed traders didn’t skip testing. They trusted flawed testing.

Your system’s performance is only as reliable as the integrity of your backtest.

Don’t fall in love with the curve. Fall in love with clean process, honest data, and stress-tested logic.