Tim Edge
Build Your Edge.

Backtesting Honestly: Why Most Backtests Lie to You – Spotting Biases and Fake Fills

Mon Aug 31 2026 · Tim Edge Team · 5 min read
Backtesting Honestly: Why Most Backtests Lie to You – Spotting Biases and Fake Fills

Backtesting Honestly: Why Most Backtests Lie to You

Most retail traders run a backtest, see a rosy equity curve, and assume the strategy will work in live markets – but the truth is that many backtests contain hidden flaws that inflate performance. The most common culprits are lookahead bias, phantom fills, midpoint fills and improper spread handling. Understanding these pitfalls is the first step to building a trustworthy performance record.

What is lookahead bias and how does it creep into a backtest?

Lookahead bias occurs when a test uses information that would not have been available at the moment a trade was executed. In practice this means the algorithm “cheats” by seeing future price data, order‑book depth or indicator values before they actually occur.

To avoid lookahead bias, always align the timestamp of every data point with the exact moment the market would have provided it. In code, this typically means using the previous bar’s values for any decision made on the current bar.

Market State — Tim Edge reads structure before you click.
Market State — Tim Edge reads structure before you click.

Phantom fills: When your backtest thinks you were filled but you weren’t

A phantom fill is a simulated trade that would never have been executed because the price never actually reached the order level. This happens when a backtester assumes market orders fill at the bar’s closing price regardless of the spread or volatility within the bar.

  1. Identify the bar’s high‑low range.
  2. Check whether the order price lies inside that range.
  3. If it does, assume a fill; if not, discard the trade.

Many simple backtest engines skip step 2, treating every market order as a guaranteed fill. The result is an inflated win rate and a misleading profit factor. A more honest approach is to simulate order execution at the exact price where the market first touched the order level, or to reject the trade if the level was never touched.

Midpoint fills and why they mask real execution costs

Midpoint fills assume that every trade occurs at the exact middle of the bid‑ask spread. While convenient for quick calculations, this assumption hides two important realities:

To model execution more realistically, use the actual bid or ask price that would have been hit based on order type:

Order typeTypical fill price
Market buyCurrent ask
Market sellCurrent bid
Limit buyPrice ≤ bid when order hits
Limit sellPrice ≥ ask when order hits

Applying these rules forces the backtest to respect the true cost of crossing the spread and reduces the illusion of a perfect fill.

Spread handling: The silent profit killer

Every market has a bid‑ask spread – the difference between the price at which you can sell (bid) and the price at which you can buy (ask). Ignoring the spread is equivalent to assuming you can buy and sell at the same price, which is impossible.

Two common mistakes are:

Honest backtesting should:

  1. Store separate bid and ask series (or derive them from a known spread).
  2. Apply the appropriate side of the spread for each trade (ask for buys, bid for sells).
  3. Update the spread dynamically if your data source provides it, or use a volatility‑based proxy.

When you factor in realistic spreads, many strategies that looked profitable on paper become marginal or even unprofitable, revealing the true edge – or lack thereof.

Putting it all together: A checklist for an honest backtest

Below is a practical checklist you can run before trusting any backtest result. Each item targets one of the biases discussed above.

Following this checklist forces the backtest to behave like a live trading engine, exposing the true risk‑adjusted return.

The bottom line

Backtests that ignore lookahead bias, phantom fills, midpoint fills and realistic spread handling give a false sense of security. By aligning data timestamps, validating fill conditions, using true bid/ask prices and dynamically modelling spreads, you can turn a deceptive backtest into a reliable decision‑making tool. Honest backtesting is the only path to discovering whether a strategy truly has an edge before you risk real capital.

See it live, not in screenshots
Tim Edge puts the journal, behavioural analytics, algo backtesting and the live order-flow terminal in one place.
Explore Tim Edge

Tim Edge — Build Your Edge.

Home  ·  Flow  ·  Blog  ·  Pricing