The five-month detour

Why your backtest lied to you.

A strategy that looks flawless on historical data and falls apart the moment it's live isn't unlucky. It's one of four mechanisms, and you can test for every one of them before you risk a cent. Here's each, in plain English, with the proof.

1Survivorship

You only saw the winners.

The backtest quietly drops everything that died: delisted coins, blown-up accounts, callers who went quiet. What's left looks like skill. Survivorship bias alone inflates apparent returns by 1–4% a year, compounding.

The check
Include the dead. Test on the full universe as it existed then, not the survivors that exist now.

Source: Survivorship bias in backtesting (LuxAlgo).

2Overfitting & look-ahead

It secretly used the future.

Tune enough knobs and any curve fits the past perfectly. Worse, a single accidental peek at future data turns noise into a flawless equity line. Under realistic conditions, over-tuned strategies have negative expected returns out-of-sample, not zero. The bar for a believable signal is a t-stat above ~3.0, not the textbook 2.0; and even genuine anomalies earn 26% less out-of-sample, 58% less once published.

The check
Walk-forward, or true out-of-sample. Decide on data up to now, apply to the next slice you never touched. If the edge evaporates, it was a fit, not a find.

Source: Bailey/Borwein/López de Prado/Zhu (AMS); Harvey/Liu/Zhu (NBER); McLean & Pontiff (J. Finance).

3The cost floor

Fees ate the edge before you did.

Backtests show gross returns. Live, every round trip pays the spread, fees, and slippage. Retail round-trip costs run about 7–13 bps; most “edges” sit underneath that. In one study of 4,879 “risk-free” triangular-arbitrage opportunities on Binance, none survived fees.

The check
Multiply your spread-plus-fees by your trade count before you celebrate the win rate. If the edge per trade is smaller than the cost per trade, you're paying to lose.

Source: Triangular arbitrage exploitability (ScienceDirect).

4Tail risk & ruin

One bad day owns the whole book.

A 90% win rate feels safe and hides a fat-tailed loss that eventually arrives. Win rate isn't profit, expectancy is. Grid and martingale “set-and-forget” bots are the purest version: they win small for months, then a single fat-tailed move detonates the whole ladder. Crypto's tails make that move a when, not an if.

The check
Expectancy = (win-rate × avg-win) − (loss-rate × avg-loss). Size for the worst day in the data, not the average one.

Source: Gambler's ruin; BTC/ETH tail behaviour (arXiv).

Our own receipt

We didn't read this in a book.

Our own HYPE-long bot won most of its trades and still lost money: −31.9% versus −11.5% from simply holding. Win rate is vanity. We ran into all four mechanisms, 33 times, and every one is in the graveyard, dated.