Backtesting is the foundation of crypto bot strategy validation — it tells you how your strategy would have performed on historical data. But historical backtesting has an inherent limitation: it shows exactly one sequence of events, the one that actually occurred. In reality, the future will not replay history in the same order. A backtest that shows a maximum drawdown of 8% assumes a specific sequence of wins and losses. If that sequence were randomized — the same trades in a different order — the maximum drawdown might be 15% or 20% in some permutations. Monte Carlo simulation addresses this by running thousands of randomized permutations of your strategy's trade history to generate a probability distribution for potential outcomes.
This guide covers the Monte Carlo methodology, how to interpret results, using simulation outputs to calibrate circuit breakers and position sizing, and DennTech's simulation tools. Related guides: backtesting, maximum drawdown, circuit breakers, position sizing.
What Monte Carlo Simulation Does
The basic Monte Carlo process for crypto bot strategy analysis:
- Collect the strategy's historical trade results: a series of individual trade outcomes (e.g., +1.5%, -1.2%, +2.3%, -0.8%, etc.) from backtesting
- Randomly shuffle this trade sequence and calculate the equity curve that would have resulted
- Record the maximum drawdown of this permuted sequence
- Repeat steps 2–3 ten thousand times
- Plot the distribution of maximum drawdowns across all 10,000 permutations
The resulting distribution answers: "Given your strategy's actual trade distribution, what is the 95th percentile maximum drawdown? What is the 99th percentile? How often would your strategy experience a 20% drawdown even if the average outcome is much better?"
Reading Monte Carlo Results
Key metrics to extract from a Monte Carlo simulation:
| Metric | Interpretation |
|---|---|
| Median MDD | The "typical" maximum drawdown — what you should expect on average |
| 90th percentile MDD | The drawdown exceeded by only 10% of simulations — conservative planning level |
| 95th percentile MDD | The drawdown exceeded by only 5% of simulations — stress-test level |
| 99th percentile MDD | Worst 1% of simulated outcomes — tail risk level |
| Probability of ruin | % of simulations that hit a catastrophic drawdown threshold (e.g., -50%) |
Example: A strategy with a historical maximum drawdown of 8% might show a Monte Carlo 95th percentile MDD of 18%. This means: with the same individual trade outcomes in a different sequence, 5% of simulated histories would have produced an 18% or worse drawdown. Your circuit breaker and risk controls should be calibrated to survive an 18% drawdown, not just 8%.
Why Crypto Strategies Need Monte Carlo More Than Equity Strategies
Crypto markets have fat-tailed return distributions — extreme moves (both positive and negative) occur more frequently than a normal distribution predicts. Standard backtest maximum drawdown calculations assume the historical sequence is the most informative guide to future drawdown. In fat-tailed environments, the actual worst-case drawdown may be significantly worse than historical MDD due to the heavier probability of sequential adverse outcomes. Monte Carlo simulation's trade-shuffling approach partially captures this by generating sequences where multiple losses cluster together — a scenario more likely in correlated, fat-tailed markets. See our maximum drawdown guide.
Using Monte Carlo to Calibrate Circuit Breakers
The practical application of Monte Carlo for DennTech users:
- Run the backtest to collect individual trade outcomes
- Run 10,000 Monte Carlo permutations (DennTech includes this in the backtesting suite)
- Find the 95th percentile MDD from the simulation results
- Set your circuit breaker trigger at approximately 70–80% of the 95th percentile MDD: if 95th percentile MDD = 18%, set circuit breaker at 13–14%
- This ensures the circuit breaker triggers before you reach a statistically rare but plausible worst-case drawdown, giving you time to review and adjust
See our circuit breaker guide for the full configuration process. See the position sizing guide to verify your position sizes are consistent with surviving the 95th percentile drawdown without catastrophic account impact.
Monte Carlo for Position Sizing Stress-Testing
Monte Carlo also validates whether your position sizing is safe under tail-risk scenarios. If the simulation shows a 5% probability of a 25% drawdown and your position sizing risks 2% per trade, that 25% drawdown = 12–13 consecutive maximum-loss trades in sequence. Ask: would 12–13 consecutive stop-losses break your psychological resolve to continue the strategy? If yes, reduce position size until the equivalent losing sequence at your risk level is manageable. The Kelly Criterion provides the mathematically optimal sizing — see our Kelly deep dive.
Frequently Asked Questions
- How many Monte Carlo simulations are needed for reliable results?
- A minimum of 1,000 simulations is needed for basic reliability; 10,000 provides stable percentile estimates; 100,000 is the professional standard for tail-risk analysis. The difference between 10,000 and 100,000 simulations primarily affects the precision of extreme tail estimates (99th, 99.9th percentile) rather than the 90th–95th percentile figures used for circuit breaker calibration. DennTech's Monte Carlo engine defaults to 10,000 simulations, which is sufficient for practical risk calibration purposes. See the DennTech docs for simulation configuration settings.
- Does Monte Carlo simulation account for correlations between consecutive trades?
- Standard Monte Carlo (simple trade shuffling) assumes each trade is independent — the outcome of trade N does not affect trade N+1. In reality, consecutive losses in crypto bots often occur during the same adverse market regime (e.g., a ranging market while running a trend-following strategy), creating serial correlation. More sophisticated Monte Carlo methods use bootstrapped blocks of trades (rather than individual trade shuffling) to preserve serial correlation. DennTech supports both approaches — the block bootstrap method is recommended for trend-following strategies where regime persistence is expected. See the backtesting guide for methodology details.
- If my Monte Carlo 95th percentile MDD is much worse than my historical MDD, should I abandon the strategy?
- Not necessarily — a large gap between historical MDD and Monte Carlo 95th percentile MDD indicates that your historical backtest sequence happened to have a favorable distribution of wins and losses. This is normal. The relevant question is whether the 95th percentile MDD is survivable given your position sizing and total capital. If 95th percentile MDD is 20% and your account can absorb a 20% drawdown without causing you to make panic decisions, the strategy is viable. Calibrate circuit breakers to trigger at 14–16% (before the tail scenario materializes) and ensure your position sizing is consistent with surviving the tail scenario. See the compounding guide for equity management context. Get started at the pricing page.
Risk analysis stack: backtesting, Monte Carlo (this guide), drawdown, circuit breakers. All strategies at the strategies page.