Survivorship bias is what happens when you only look at the things that survived. In backtesting, it usually means testing a strategy on assets that are still around and successful today, while ignoring the ones that went bankrupt, were delisted or faded away.
How it inflates results
Suppose you test a buy-the-dip strategy on today’s largest tech companies over the last ten years. Those companies are on the list because they went up. Many companies that looked similar a decade ago fell, were acquired cheaply or stopped trading, and they aren’t in your test. Of course buying their dips looks good: you picked the ones that recovered.
The same applies to:
- Index members: today’s index constituents are a list of past winners.
- Crypto: many coins that were popular a few years ago have little or no trading now.
- Funds: closed funds disappear from databases, leaving the better performers behind.
Why the data itself hides the problem
Most free price data, including the sources Backte.st uses, provides history for symbols that exist today. Delisted symbols are often simply missing. Backte.st can’t correct for that, so the choice of markets is up to you, and it is worth making deliberately.
Practical ways to reduce it
- Choose markets for reasons unrelated to their past returns. For example, broad index ETFs, major currency pairs or the largest crypto pairs, not the best performers you remember.
- Include markets that did badly. If a rule only works on winners, it may just be measuring hindsight.
- Prefer broad instruments. An index ETF already includes companies that were later removed, up to the point they were removed.
- Be suspicious of long lookbacks on hand-picked names.
- Test the same rules on several unrelated markets. Backte.st runs up to 10 at once, with a combined view.
Related biases
- Look-ahead bias: using information before it was available.
- Overfitting: tuning rules to the noise in one sample.
Try a mixed set of markets in the lab, including some you would not have chosen, and see whether your strategy still holds up.