NQ · LIVE ENGINE Algomyth
Risk

Survivorship bias in trading: why you only ever see the winners

DEC 1, 2026 · 9 MIN READ

Start 1,024 people flipping coins. Ask each to keep flipping until they get a tail, then sit down. After ten rounds, on average one person is still standing, having flipped ten heads in a row. Put a microphone in front of that person and they will tell you about their process.

That is survivorship bias, and it is not a curiosity. It is the default state of almost every performance number you will ever be shown in trading, because the losers are not around to be counted.

What survivorship bias actually is

Survivorship bias is what happens when you measure only the things that lasted long enough to be measured. The sample you are looking at was not chosen at random. It was chosen by survival, and survival correlates with luck as much as with skill.

It is not the same as lying. Nobody has to fabricate anything. The failed funds closed, the blown accounts were deleted, the strategies that did not work were never posted. What remains is technically true and systematically unrepresentative.

The one thing to remember

Every performance number you see has a denominator you cannot see. Before you react to a result, ask how many attempts it was selected from. A great result out of five attempts is evidence. The same result out of five thousand is arithmetic.

Where it hides

Where you see itWhat you are shownWhat is missing
Fund performance tablesFunds that still existFunds that closed and were removed
Trading social mediaScreenshots of green accountsEvery account that was quietly closed
Signal and copy servicesThe lead trader with the best yearThe dozen leads who were dropped
Strategy optimizationThe best parameter setThe 4,999 that were tested and discarded
Prop firm marketingPayout screenshotsThe pass rate on evaluations
Stock index backtestsToday's index membersCompanies that were delisted along the way

Notice the shape they share. In each row, something failed and then left the dataset. The dataset is not neutral about who is in it.

The version that will cost you money

The rows above are mostly other people's marketing. The dangerous one is the version you can do to yourself, in your own testing, with no bad intent whatsoever.

You write a strategy. You test it. It loses. You change a filter, a session, a stop multiple, and test again. Forty variations later, one produces a beautiful equity curve. You have not found an edge. You have run a search across forty candidates and kept the survivor, and the survivor's headline number includes every bit of luck it needed to win the search.

This is the same disease as overfitting and curve fitting, viewed from the selection side rather than the parameter side. The more variations you try, the better your best result looks, whether or not anything real is there. A backtest that survived a large search is not a test. It is a winner drawn from a lottery you ran yourself, which is why what a backtest is matters more than what any single one says.

The number of things you tried is part of the result. Report it, or the result means nothing.

How big was the search?

Put a number on it and the problem stops being philosophical. Test 100 strategies that genuinely have no edge, judge each at the usual 5% significance threshold, and about five of them will still look significant. That is not a statement about markets. It is what a 5% threshold means.

Now scale it. An optimizer sweeping 5,000 parameter combinations over the same stretch of data will hand you something impressive at the end, whether or not there is anything real in the data. The impressive result is the expected output of the procedure, not evidence about the market.

Which is why the honest question to put to any automated approach, including this one, is not "what did it make" but "how many did you try before this one". The wider discipline around that question is in the algorithmic trading guide.

Why it inflates expectations so badly

Two effects stack. First, the visible results are drawn from the top of a distribution, so the typical outcome looks far better than it is. Second, the failures were not merely unreported, they were removed, so the variance looks smaller too. You end up with a world in which returns seem high and drawdowns seem shallow, and both halves are wrong in the same direction.

Then you fund an account with expectations set by that world. The first ordinary losing stretch feels like a malfunction rather than the middle of the distribution, and you switch things off at the worst possible time. That is a large part of why most traders lose, and it starts with a sample, not with a chart.

Look at a full record, losing months included

Each Algomyth backtest is published as one continuous run, not as a highlight reel. The drawdown and the losing trades are in it.

How to guard against it

  • Ask for the denominator. How many strategies, parameter sets or lead traders were tried before this one was shown to you? A seller who cannot answer has answered.
  • Insist on a continuous period. One unbroken run, start to finish, beats any set of selected windows. Selected windows are survivorship at the calendar level.
  • Reserve data you never touched. A result on data used during development is a description of that data, not a test. See in-sample versus out-of-sample.
  • Check the sample size. Forty trades is a story. Thousands of trades is a distribution. How many trades a backtest needs covers the arithmetic.
  • Look for the ugly numbers. Drawdown, losing streaks, worst month. Their absence is itself the tell, and it heads the list in trading bot red flags.

What we do about it here

The Algomyth engine backtest is published as one continuous run from January 2022 to September 2026 on a mid-size account, not as a set of chosen months. It reports 1,164 trades, a 1.46 profit factor, a $5,273 worst drawdown, and $87,359 net of the commission and a tick of slippage on every trade.

Two of those numbers are there specifically because survivorship is easy to fake. The $5,273 worst drawdown says what the bad stretch looked like. The 1.46 profit factor says the margin is ordinary rather than miraculous. A curated record would carry neither. The result is also broken out year by year, including a partial 2026, precisely because a single flattering stretch is what a marketer would lead with, and exactly why none of them should be extrapolated.

Hypothetical performance. The figures above come from a backtest of the Algomyth engine over historical data, not from a live account. Simulated results are prepared with the benefit of hindsight, carry no financial risk, and cannot fully reflect real execution, slippage or liquidity. Past performance, real or simulated, does not guarantee future results.

Frequently asked questions

What is survivorship bias in trading?

Survivorship bias is the error of drawing conclusions from only the participants that lasted. Failed funds close, blown accounts vanish, and losing strategies are never published, so the sample you can see is filtered by survival rather than chosen at random. Because survival depends partly on luck, the remaining results look better and steadier than the full population ever was.

How does survivorship bias affect backtests?

It affects them in two ways. The data itself can be biased if it excludes instruments that were delisted or contracts that stopped trading. More often the bias comes from selection: you test many variations and keep the best one, so the winning backtest carries all the luck it needed to win that search. Reporting how many variations were tried is what turns the result back into evidence.

Is survivorship bias the same as overfitting?

They are close relatives. Overfitting is a model tuned so tightly to past data that it captures noise instead of signal. Survivorship bias is selecting the survivor from a population of attempts. Running a large parameter search produces both at once, which is why the size of the search matters as much as the settings you ended up with.

How can I tell if a track record is filtered?

Look for the pieces a filtered record cannot supply: a continuous period with no gaps, the maximum drawdown, the win rate, the losing months, and the number of attempts behind the result. Ask whether you can reproduce it yourself on your own platform. A record that only exists as screenshots, or that starts on a conveniently good date, is telling you what was left out.

Does survivorship bias apply to funded accounts?

Yes, and openly. Payout screenshots are the traders who passed and stayed inside the rules, while the far larger group who failed an evaluation or hit a trailing drawdown produces no screenshots at all. The honest way to read that marketing is to assume you are seeing the tail of a distribution, and to treat evaluation fees as money you can lose. How the model actually works is in funded accounts explained.

In short: survivorship bias means the sample you can see was chosen by survival, not at random, so returns look higher and drawdowns look shallower than the full population ever was. It shows up in fund tables, social media, signal services and, most expensively, in your own testing when you keep the best of forty variations. The defense is boring and effective: ask how many attempts a result was selected from, demand one continuous period, hold back data you never touched, and treat any record with no drawdown figure as incomplete.
Sources and further reading
  • Stephen J. Brown, William Goetzmann, Roger G. Ibbotson and Stephen A. Ross, "Survivorship Bias in Performance Studies," The Review of Financial Studies, 1992.
  • Mark M. Carhart, "On Persistence in Mutual Fund Performance," The Journal of Finance, 1997.
  • David H. Bailey, Jonathan M. Borwein, Marcos Lopez de Prado and Qiji Jim Zhu, "Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance," Notices of the American Mathematical Society, 2014.
  • CFTC, "Customer Advisory: Be Cautious of Trading Systems and Robots."

Watch the engine, not the promises

Everything we write comes back to one idea: verify, then decide. The live terminal exists for exactly that.

Unlock Algomyth Live