You've got a trade log. Two hundred closed trades, a decent win rate, a Sharpe ratio that looks respectable. Before you trust any of it, ask one question: how many of those trades actually matter?
This is the return concentration problem, and it's one of the easier things to check in a backtest and one of the most commonly skipped. The idea is simple. Take your closed trades, sort them by profit, and ask what happens to the equity curve if you remove the best few. If removing five trades out of two hundred turns a profitable strategy into a flat or losing one, your two-hundred-trade backtest is actually a five-trade backtest wearing a costume.
The test itself
You don't need anything sophisticated to run this. Sort trades descending by PnL, then walk down the list removing the top 1, top 3, top 5, top 10, and recompute total return each time.
trades_sorted = sorted(trades, key=lambda t: t.pnl, reverse=True)
total = sum(t.pnl for t in trades)
for n in [1, 3, 5, 10]:
remaining = trades_sorted[n:]
new_total = sum(t.pnl for t in remaining)
print(n, new_total, new_total / total)
If new_total goes negative or near-zero after dropping the top 5, you're looking at a strategy where almost all the reported edge lives in a handful of trades. That's not automatically damning — more on that below — but it changes what question you should be asking next.
A useful companion number: what fraction of total profit comes from the top 10% of winning trades? For a strategy trading a mean-reverting, high-frequency pattern, healthy concentration might mean the top 10% of trades account for 20-30% of profit — the rest of the distribution is doing real work. For a trend-following system that holds through long drawdowns waiting for a few large moves, it's normal for the top 10% of trades to account for 60-80% of profit. Both can be fine. The number alone doesn't tell you which case you're in.
The trap: assuming concentration means broken
Here's where people get it wrong in both directions. The naive read is "concentrated returns are fragile, spread returns are robust." That's not true. Trend-following, breakout, and long-volatility strategies are supposed to look concentrated — they're structurally a long series of small losses funding a few large wins. If you ran the drop-top-N test on a well-known trend system's historical trade list, you'd likely find the same lottery-ticket-looking distribution, because that's the mechanism, not a flaw in it.
The actual question isn't "is it concentrated," it's "is the concentration structural or accidental." Structural concentration comes from a repeatable trigger: your strategy has a rule that lets winners run and cuts losers early, and the big trades share a common cause — a volatility regime, a trend-continuation pattern, a specific setup that recurs. Accidental concentration is a few trades that happened to catch a one-off event (a short squeeze, a flash crash reversal, an earnings gap you didn't intend to hold through) that has no mechanism tying it to the rest of your trades. Same table of numbers, very different implications.
A few ways to tell them apart without much tooling:
- Cluster the top trades by date and instrument. If your five biggest winners all fired in the same three-week window, or all on the same underlying, that's a concentration-in-time problem — you got one regime right, not an edge.
- Check the exit reason. If the big winners exited on the same rule as the rest of your trades (say, a trailing stop or a signal reversal), that's structural. If they exited because you happened to close the account before a reversal, or the backtest's fill logic let you ride a gap that wouldn't be tradeable live, that's a data artifact.
- Look at whether the same setup that produced the big winners also produced most of your losers. A strategy where the big-win trades and the many-small-loss trades share the identical entry logic is doing something coherent. If the big winners are a different distribution of setups than everything else, you may be looking at noise that got included in the same backtest by coincidence.
None of this is definitive from a spreadsheet alone. A trade log doesn't tell you about slippage on the entries that mattered, whether the position size on the big winners was realistic to fill, or whether the same setup will recur going forward — that requires separate checks on execution and forward behavior, not just the PnL column.
Disclosure: I build Tradevo Verify, which runs this kind of concentration check (along with execution, path-dependency, and regime tests) against a closed-trade CSV and produces a versioned record of the result — it doesn't tell you whether the strategy is good, and a concentrated result often comes back flagged as fragile evidence rather than a pass.
Either way, before you trust a backtest's headline number, spend the ten minutes sorting the trade list and dropping the top few. It won't tell you if your edge is real. It will tell you how many trades you're actually betting the conclusion on.
Top comments (0)