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.