I Ran 1,000 Monte Carlo Simulations on 9 Crypto Trading Strategies. Here's What I Found.
Most backtesting articles show you one chart, one period, one result, and call it a day. The problem? A single backtest is just one roll of the dice. Your strategy might look amazing simply because you happened to start in January 2020 — right before BTC went from $7k to $69k.
To get a real picture, I ran 1,000 Monte Carlo simulations on 9 different trading strategies across BTC and ETH, using 5 years of 1-minute candle data. Each simulation picks a random 365-day window and runs the strategy from scratch. The result is a distribution of outcomes that tells you what to actually expect.
The Setup
- Data: 3.15 million 1-minute candles per symbol (2020-01-01 → 2025-12-31)
- Interval: 1h candles (aggregated from 1m)
- Starting capital: $10,000
- Leverage: 1x (no leverage)
- Order execution: Deferred — orders are queued and filled at the next candle's open price, simulating real-world network delay
- Monte Carlo: 1,000 runs, each on a random 365-day window
- Engine: Custom Rust backtester with multi-threaded simulation pool
The Strategies
| Strategy | Type | Logic |
|---|---|---|
| HODL | Passive | Buy once, hold forever |
| DCA | Passive | 12 equal buys over 12 months |
| EMA Cross | Trend | Long on EMA 20/200 golden cross, close on death cross |
| SMA-HODL | Trend | Long above SMA 200, close below — trend-filtered HODL |
| Bollinger | Mean reversion | Long when close ≤ lower band, close when close ≥ upper band |
| RSI | Mean reversion | Long when RSI < 30, close when RSI > 70 |
| MACD | Momentum | Flip long/short on MACD histogram zero-cross (12/26/9) |
| Renko | Trend | Flip long/short on brick direction change |
| Trailing Stop | Trend | Flip long/short on 4% trailing stop trigger |
BTC Results
Full-Period Backtest
Over the entire 5-year period:
| Strategy | Trades | Win Rate | P&L |
|---|---|---|---|
| EMA Cross | 989 | 13.8% | +1,950% |
| HODL | 0 | - | +1,121% |
| SMA-HODL | 859 | 14.3% | +895% |
| DCA | 0 | - | +750% |
| MACD | 3,991 | 34.4% | +43% |
| Renko | 23,069 | 33.9% | -97% |
| Bollinger | 268 | 39.2% | -99% |
| RSI | 236 | 44.1% | -99% |
| Trailing Stop | 1,084 | 38.7% | -99% |
EMA Cross dominates — nearly doubling HODL. But this is just one timeline. What if you didn't start in January 2020?
Monte Carlo Distribution
| Strategy | p5 (worst 5%) | Median | Mean | p95 (best 5%) | Std Dev |
|---|---|---|---|---|---|
| HODL | -64.4% | +69.6% | +104.1% | +420.4% | 171.7% |
| EMA Cross | -30.0% | +67.3% | +92.0% | +306.6% | 99.0% |
| SMA-HODL | -46.5% | +24.3% | +74.1% | +344.3% | 126.5% |
| DCA | -49.6% | +22.9% | +29.4% | +168.5% | 63.2% |
| MACD | -49.4% | -2.3% | +9.1% | +113.7% | 49.9% |
| Renko | -69.3% | -33.7% | -25.0% | +39.3% | 35.9% |
| RSI | -79.4% | -47.3% | -52.0% | -27.4% | 18.2% |
| Bollinger | -96.1% | -86.2% | -86.4% | -73.9% | 7.6% |
| Trailing Stop | -99.0% | -99.0% | -94.9% | -80.8% | 6.4% |
Now the story gets interesting:
- EMA Cross has the best risk-adjusted profile on BTC: a p5 of only -30% (best worst-case scenario of any strategy), a median of +67.3%, and far less variance than HODL (99% vs 172% std dev). It captures most of the upside while limiting the downside.
- HODL still has the highest mean (+104%) but also the highest variance. In the bottom 5% of windows, you'd lose 64%. It's a high-risk, high-reward bet.
- SMA-HODL splits the difference — close to DCA in downside protection but with a much higher ceiling (+344% at p95).
- Mean-reversion strategies (Bollinger, RSI) are destroyed by realistic execution timing. When you can't fill at the exact bounce price, you enter late and the edge disappears. Bollinger's median is -86%.
- Trailing Stop is -99% everywhere. Consistently, reliably terrible.
ETH Results
Full-Period Backtest
| Strategy | Trades | Win Rate | P&L |
|---|---|---|---|
| EMA Cross | 1,085 | 14.2% | +14,697% |
| HODL | 0 | - | +2,206% |
| SMA-HODL | 866 | 14.9% | +1,974% |
| DCA | 0 | - | +968% |
| MACD | 4,053 | 35.4% | +418% |
| Renko | 25,495 | 33.5% | -76% |
| Bollinger | 197 | 42.1% | -99% |
| RSI | 131 | 46.6% | -99% |
| Trailing Stop | 431 | 27.4% | -99% |
EMA Cross on ETH returns 147x the starting capital over 5 years. ETH's bigger swings amplify trend-following strategies dramatically.
Monte Carlo Distribution
| Strategy | p5 (worst 5%) | Median | Mean | p95 (best 5%) | Std Dev |
|---|---|---|---|---|---|
| HODL | -60.4% | +53.3% | +201.0% | +1,001.8% | 372.9% |
| EMA Cross | -3.7% | +77.2% | +189.4% | +765.2% | 254.9% |
| SMA-HODL | -20.1% | +37.4% | +112.8% | +507.7% | 174.7% |
| DCA | -47.8% | +14.5% | +42.2% | +275.3% | 93.5% |
| MACD | -17.0% | +32.2% | +34.9% | +95.9% | 35.9% |
| Renko | -57.3% | +10.4% | +23.6% | +151.1% | 66.1% |
| RSI | -87.6% | -69.0% | -66.3% | -38.8% | 15.4% |
| Bollinger | -98.4% | -94.3% | -92.5% | -79.9% | 5.9% |
| Trailing Stop | -99.0% | -99.0% | -98.1% | -91.4% | 2.5% |
This is where it gets remarkable. EMA Cross on ETH has a p5 of -3.7% — in the worst 5% of random years, you barely lose anything. The median is +77%, and it nearly matches HODL's mean while having 1.5x less variance.
MACD remains the most consistent active strategy on ETH: best p5 among active strategies (-17%), lowest std dev (36%), and a solid +32% median.
The Big Takeaways
1. EMA Cross is the clear winner
| BTC EMA Cross | BTC HODL | ETH EMA Cross | ETH HODL | |
|---|---|---|---|---|
| Median | +67.3% | +69.6% | +77.2% | +53.3% |
| p5 | -30.0% | -64.4% | -3.7% | -60.4% |
| Std Dev | 99.0% | 171.7% | 254.9% | 372.9% |
On BTC, EMA Cross matches HODL's median with half the downside risk. On ETH, it beats HODL on every metric — higher median, better p5, lower variance. A simple golden/death cross on EMA 20/200 is surprisingly hard to beat.
2. Execution timing kills mean-reversion
The engine fills orders at the next candle's open rather than the current candle's close. This 1-minute delay is realistic (you can't trade at the exact price that triggered your signal), but it devastates mean-reversion strategies like Bollinger and RSI. They depend on entering at the bounce — by the time your order fills, the bounce has already happened.
3. Strategy-asset fit matters more than strategy quality
MACD is mediocre on BTC (median -2.3%) but solid on ETH (median +32%). Why? ETH trends more cleanly than BTC on sub-yearly timeframes. Momentum strategies capture these trends. The same strategy can be a winner or a loser depending on which asset you trade.
4. SMA-HODL is the quiet achiever
SMA-HODL (long above SMA 200, flat below) doesn't appear in most strategy comparisons, but it delivers strong results with moderate risk. On ETH, its p5 is -20% vs HODL's -60% — it avoids the worst drawdowns by stepping aside during downtrends, then re-enters when the trend resumes.
5. Don't trust a single backtest
The full-period backtest shows EMA Cross at +1,950% on BTC. The Monte Carlo shows the median is +67% and the p5 is -30%. These are wildly different conclusions. Any strategy evaluation without randomized window testing is incomplete.
Technical Notes
The backtester is written in Rust, streams 1-minute candles from PostgreSQL, aggregates to the target interval on the fly, and distributes Monte Carlo simulations across a thread pool. Processing 1,000 simulations × 3.15M candles takes about 30 seconds on 7 threads.
The engine uses deferred order execution: bot decisions are queued and filled at the next candle's open price, simulating real-world latency. It handles position flipping (long → short), circuit breakers (stops trading below 1% of initial capital), trailing stops, liquidation orders, and limit orders. All strategies are self-contained bots that receive candles and emit orders — they have no knowledge of the engine's portfolio state.