We graded it · October 2026
The best of 90 Bitcoin crossovers ranked 74th on the next four years
We ran every simple moving-average crossover from 5/20 to 50/200 days on Bitcoin from 2017 to 2021 and kept the winner, the way most backtests get built. Then we tested it on 2022 to 2025, which it had never seen. Picking the backtest winner did worse than picking at random.
BTC-USD · daily · long or flat · 0.10% fee per side
Buy when the 10-day average crosses above the 40-day; sell when it crosses back
What we found
- The winner collapsed. Its Sharpe fell from 1.87 to 0.56 on the unseen years, keeping 30% of its edge. Its 2022–25 return was 14% a year, against 17% for simply holding Bitcoin.
- It ranked 74th of 90 out of sample. The median crossover in the grid scored 0.75 on 2022–25. The one we “picked” was well below average.
- Backtest rank pointed the wrong way. Across the 90 versions, the correlation between 2017–21 Sharpe and 2022–25 Sharpe was −0.4. The versions that looked best in the backtest tended to do worse afterwards.
- Overfitting test: 54%. Splitting 2017–21 into 16 blocks and re-picking the winner on every half, the winner landed below the median on the other half 54% of the time (probability of backtest overfitting, CSCV).
- Not fragile, just not an edge. At 2.5× the fees its out-of-sample Sharpe barely moved (0.51), and a Monte Carlo of its 21 out-of-sample trades gives a median drawdown of −42% and a bad case (5th percentile) of −58%.
Why the backtest looked so good
From the start of 2017 to the end of 2021 Bitcoin went from about $1,000 to $46,000. Almost any rule that stays long most of the time looks brilliant over that stretch: the median of all 90 crossovers had a 1.44 Sharpe. The crossover wasn’t finding an edge; it was riding the market, and the specific 10/40 pair happened to fit that market’s swings best.
A deflated Sharpe ratio, which corrects for trying 90 versions, still “passes” here (the luck bar was a Sharpe of 0.35). That’s the trap: it tells you the backtest beat zero, not that it beat holding the asset. That is why we grade on unseen data and against a simple benchmark, not on one statistic.
Method
- Data: Coinbase BTC-USD daily candles, Jan 2016 to Dec 2025, from Coinbase’s public market-data API.
- Rule: long when the fast simple moving average of closes is above the slow one, flat otherwise. The position is set from the previous day’s close, so there is no look-ahead.
- Costs: 0.10% per side on every position change, stressed at 2.5×.
- Grid: fast 5 to 50 days in steps of 5, slow 20 to 200 in steps of 20, slow > fast: 90 versions.
- Selection: highest 2017–21 Sharpe. Test: 2022–25, untouched during selection.
- Statistics: deflated Sharpe ratio (Bailey & López de Prado, 2014); probability of backtest overfitting by combinatorially symmetric cross-validation with 16 blocks; Monte Carlo of trade order, 10,000 runs.
- Code: the full script (Python, about 200 lines). Run it and check our numbers.
Want your own backtest graded?
Send us a TradingView, MT5 or NinjaTrader export, or any CSV of trades. We’ll email you a graded report like this one, free during early access.
Grade my backtestEducational analysis of historical data. Not investment advice. Past results do not guarantee future results.