Research
Monte Carlo for Strategy Validation: Walk-Throughs and Traps
Monte Carlo simulation is a useful sanity check on strategy robustness — and a popular tool for fooling yourself if applied carelessly. Three legitimate uses, two common traps.
Monte Carlo simulation in strategy validation typically means: take the historical trade sequence, reshuffle it, and study the distribution of resulting equity curves. The intuition is that a strategy with real edge should produce broadly similar equity curves under reshuffling, while an overfit strategy is sensitive to the specific historical sequence.
It is genuinely useful. It is also frequently misapplied.
Three legitimate uses
1. Drawdown distribution estimation
Single-path historical maximum drawdown is one observation from a noisy distribution. Reshuffling the trade sequence produces a distribution of possible max drawdowns. The reported "worst-case" should reference the 95th percentile of the reshuffled distribution, not the historical single observation.
For a strategy with a 12% historical max drawdown, the 95th-percentile reshuffled drawdown might be 18%. That higher number is closer to "what should I plan capital for."
2. Edge-vs-luck decomposition
If shuffling the trade direction (or randomizing entries within the same instrument and period) produces equity curves comparable to the strategy's actual equity curve, the strategy has no detectable edge — it just got lucky with sequence. If randomization consistently underperforms, edge is plausibly real.
This test is most useful for strategies that look statistically marginal. It can confirm that something is working; it cannot confirm that the edge is large.
3. Robustness to entry timing
Re-run the strategy with entries shifted by 1, 2, ..., k days. If performance is robust to small entry shifts, the strategy is not relying on specific dates or events. If performance collapses with a 1-day shift, the strategy is fitting calendar artifacts.
Two common traps
Trap 1: IID assumption
The simplest Monte Carlo reshuffles trades independently. This assumes returns are independent across trades. They aren't — most strategies have meaningful autocorrelation in trade outcomes.
A strategy that wins after winning and loses after losing has autocorrelated trades. Independent reshuffling destroys the autocorrelation, making drawdowns look smaller than they actually are. Block-bootstrap (reshuffling blocks of consecutive trades rather than individual trades) preserves the autocorrelation and is the right approach for any strategy with persistent regime sensitivity.
Trap 2: Reshuffling instead of resampling
Reshuffling uses each historical trade exactly once, just in a different order. This bounds the analysis to the historical trade distribution. Real out-of-sample experience can include trade outcomes outside the historical envelope — extreme winners or losers that didn't happen in the sample.
Resampling with replacement (bootstrapping) is more honest because it permits some historically extreme outcomes to occur multiple times in a single simulated path. This produces wider distributions and more realistic worst-case estimates.
What Monte Carlo cannot do
- Detect overfitting. Reshuffling overfit trades produces overfit curves. Monte Carlo doesn't fix selection bias.
- Predict regime changes. The technique assumes the underlying return distribution is stable. Regime change violates that.
- Validate strategies with too few trades. With 30 trades, the resampled distribution is so noisy that almost nothing is detectable.
Practical takeaways
- Use block-bootstrap, not IID reshuffling, when trades are autocorrelated. Almost always.
- Use resampling with replacement, not in-sample permutation, for honest worst-case drawdowns.
- Monte Carlo is a sanity check, not a validation primitive. Pair it with WFO, held-out testing, and paper-trade.