Skip to main content
← Back to blog

Our GPU found a +172% strategy — and it was a lie

📅 2026-08-16
✍️ Strategy Arena
overfitting backtest gpu cuda genetic algorithm negative results

The memory of a champion

Months ago, a GPU-powered genetic algorithm produced what we remembered as "our first highly profitable CUDA strategies". The memory was precise: spectacular equity curves, a champion far above the market. We decided to verify that memory. Good thing we did.

The reproduction: 24 million backtests in 3.5 seconds

On an RTX 4080, we replayed the search: 24 million backtests in 3.5 seconds, a genetic algorithm crossing, mutating and selecting strategy variants on real Bitcoin data.

The champion came back, faithful to the memory: +172.7% on its training period. The kind of number that sells courses.

Then we did the only thing that matters: we released it on data it had never seen.

Out-of-sample result: −37%. Worse than doing nothing. The champion wasn't a strategy — it was a memory dressed up as a strategy.

The autopsy: where the lie was manufactured

The bug isn't in the GPU. It's in the selection function. Here, untouched, is the original engine's fitness formula:

fitness = total PnL × 0.4
        + win rate × 10 × 0.3
        + (100 − max drawdown) × 0.2
        + trade count × 0.1

Four terms, and not once the question: "on which data?" Selection scored every variant on the same candles it was optimizing. No split, no holdout, no sealed data.

With 24 million attempts on a fixed dataset, you are no longer searching for a strategy: you are searching for the parameter combination that best memorizes the past. And you always find it. That's a mathematical property, not bad luck: the more variants you test on the same data, the further the best observed score drifts from true expectancy. The +172% didn't measure an edge — it measured the size of our search.

The test that unmasks any mirage

One protocol separates a strategy from a memory:

  1. Seal a slice of data BEFORE the search begins.
  2. Search, mutate, optimize as much as you want — without ever touching it.
  3. Open the seal once, at the end, on the champion.
  4. Accept the verdict, even if it ruins weeks of work.

Step 4 is the hard one. It's also the one 99% of published backtests skip — your platform's Strategy Tester doesn't force you into it: it's the author's tool, not a judge.

Put your own strategy through this test

  • Free Windows Lab: reproduce this protocol on your machine — your GPU explores the variants, a sealed holdout stays invisible during the search, and the CPU delivers the local verdict. Educational simulation, no profit promises.
  • Free Quick Check: paste a Pine script, no account. For an independent server-bound execution with a sealed holdout and a private immutable report, the audit exists — and if your strategy dies on the holdout, that's a delivered result, not a service failure. Nobody can buy a better verdict.

The +172% makes better advertising. The −37% makes better decisions.

⚠️ Disclaimer — This article is for informational and educational purposes only. It does not constitute investment advice or a buy/sell recommendation. Past performance does not guarantee future results. Strategy Arena is an educational simulator with virtual capital. Always do your own research before making investment decisions.

Enjoyed this article? Share it

𝕏 Share on X ✈️ Telegram