Monte Carlo Tools
Drawdown Distribution Explorer
Investment Education, Research & Tools for Smarter Decisions.
Simulate the full distribution of maximum drawdowns across thousands of Monte Carlo paths. Enter your strategy's average daily return and daily volatility to see the worst-case, median, and best-case drawdown scenarios, the inputs you need to set realistic drawdown limits and size positions correctly.
Direct Answer
A drawdown distribution explorer runs a Monte Carlo simulation across thousands of synthetic equity-curve paths, built from a strategy's average daily return and daily volatility, to estimate the range of maximum drawdowns it could realistically produce. Enter those two inputs below to see the worst-case, median, and 5th-percentile drawdown figures used to set position sizing and drawdown limits, rather than relying on the single deepest drawdown a backtest happened to show.
Tool
Enter daily return statistics above and click Run Simulation to see the drawdown distribution.
Uses synthetic Gaussian return paths. Real return distributions are non-Gaussian; true drawdowns may differ significantly.
How to Use This Tool
Enter your strategy's average daily return as a percentage (e.g., 0.06 for approximately 15% annualized). Enter the daily return standard deviation (e.g., 1.2 for approximately 19% annualized volatility). These two parameters describe a log-normal daily return distribution. Set the number of trading days (252 = one year, 504 = two years, 1260 = five years). Choose simulation paths, 3,000 gives stable percentile estimates for the 5th and 95th percentiles.
To find your strategy's average daily return and daily standard deviation from historical backtest data, compute the daily PnL as a percentage of starting capital for each day your strategy was active. The mean of that series is your daily return; the standard deviation is your daily volatility. Tools like pandas provide these directly: returns.mean() and returns.std().
The annualized equivalents are: Annual return ≈ daily_mean × 252 (simple) or (1 + daily_mean)^252 − 1 (compound). Annualized volatility ≈ daily_std × sqrt(252). A daily return of 0.05% and daily std of 1.0% corresponds to approximately 12.6% annual return and 15.9% annual volatility.
Understanding the Outputs
Worst-case max drawdown (1st percentile): Only 1% of simulated paths experienced a drawdown worse than this level. Use this as the extreme stress-test figure, not for day-to-day position sizing, but for understanding the tail risk that exists even in a profitable strategy over a long trading period.
5th percentile max drawdown: The drawdown level that 95% of simulated paths stayed better than. This is the standard conservative input for position sizing: allocate capital such that a drawdown of this magnitude does not force you to stop trading. The formula: max position size = max tolerable capital loss / abs(5th percentile drawdown).
Median max drawdown (50th percentile): The typical drawdown over the simulated period. Half of paths had worse max drawdowns and half had better. This is the "normal" worst outcome for a strategy with these parameters, not the expected mean, and not the worst case.
95th percentile max drawdown: The best-case drawdown, only 5% of paths had a max drawdown shallower than this. Paths in this range were lucky in timing and sequence. Relying on this figure for position sizing would lead to catastrophic undercapitalization when the unlucky sequence inevitably arrives.
Mean max drawdown: The arithmetic average drawdown across all paths. Note that this is pulled toward the deeper (more negative) paths, making it more negative than the median. It provides a rough sense of the "central" drawdown but is less informative than the percentile distribution for position sizing.
The bar chart visualizes the relative severity of each percentile by showing their absolute values normalized to the worst-case bar. Bars represent depth of drawdown, longer bars indicate more severe drawdowns.
Assumptions and Limitations
- Gaussian returns assumed: Each daily return is drawn from a normal distribution parameterized by the inputs. Real financial returns have fatter tails (kurtosis > 3) and negative skew. The actual worst-case drawdown for a real strategy will typically be worse than simulated, especially over multi-year horizons. Apply a safety factor of 20-40% to the simulated 5th percentile drawdown when sizing real positions.
- No autocorrelation: Returns are drawn independently each day. Real returns exhibit mild autocorrelation and volatility clustering (GARCH effects). Ignoring this understates drawdown depth during volatile regimes.
- Constant parameters: The daily return mean and standard deviation are held constant across all trading days. Real strategy parameters shift with market regimes. Parameter instability is a major source of drawdowns not captured here.
- No transaction costs or slippage: Each day's return is applied directly. Real strategies have execution friction that reduces the effective daily return and widens the drawdown distribution.
Two Inputs Carrying the Entire Answer
Two inputs carry this whole calculation, which is worth remembering when the output looks precise. An average return and a measure of variability define the entire simulated population, and both are estimates taken from a finite history. A small change in either moves the distribution of results substantially, so the sensible use is to run the tool across a range of plausible inputs rather than one pair.
What the output supports is a question about tolerance rather than a forecast. If declines of the size shown in the unfavourable part of the distribution would force a change in behaviour, the position size or the approach needs revisiting, and that conclusion holds regardless of how likely any particular figure turns out to be.
The model treats each period as independent and drawn from an unchanging distribution. Real return series cluster, so genuine declines can run deeper and last longer than a simulation built on that assumption suggests.
Costs, taxes, changing market conditions and the possibility that the inputs themselves drift over time all sit outside the calculation entirely.
Frequently Asked Questions
Why does the median drawdown not equal the worst single-day loss?
Max drawdown measures the peak-to-trough decline of the cumulative equity curve, not a single day's loss. A strategy can lose 1% per day for 10 consecutive days and show a max drawdown of approximately 10% even though no single daily return was worse than 1%. The drawdown accumulates across sequences of negative (or below-average) returns before a new equity high is set. Long sequences of below-average days, not extreme individual days, drive the typical max drawdown.
How do I convert annualized return and volatility to daily inputs?
Daily mean ≈ annual_return / 252 (simple approximation). More precisely: daily_mean = (1 + annual_return)^(1/252) − 1. Daily std = annual_volatility / sqrt(252). For example, a strategy with 20% annual return and 18% annual volatility has a daily mean of approximately 0.072% and daily std of approximately 1.13%. These are the values to enter in the tool.
What safety factor should I apply to the simulated 5th percentile drawdown?
Apply a factor of 1.25 to 1.5 for stock strategies (to account for fat tails and regime shifts) and 1.5 to 2.0 for crypto strategies (which exhibit more severe tail risk and higher kurtosis). For example, if the simulated 5th percentile drawdown is 22%, plan your position size assuming a real worst-case drawdown of 28-33% for a stock strategy or 33-44% for a crypto strategy. This conservatism is asymmetric: being over-prepared for drawdowns costs some return; being under-prepared forces you to stop trading at exactly the wrong time.
Why does the 1st percentile drawdown change noticeably between runs?
Extreme percentile estimates (1st, 99th) have high sampling variance. With 3,000 paths, the 30th-order statistic (the 1st percentile) is estimated from very few paths, so random variation in those few extreme paths moves the estimate materially. To stabilize the 1st percentile, use 10,000+ paths. For position sizing, the 5th percentile, estimated from 150 paths out of 3,000, is far more stable and is the recommended input.
Can this tool estimate drawdown for a long-short strategy?
Yes, with care. A long-short strategy's daily return series (long PnL + short PnL) can be summarized into a daily mean and daily standard deviation just like a long-only strategy. Enter those values. The drawdown calculation is identical, it operates on the combined equity curve, not on the individual legs. If one leg is typically up when the other is down, the combined daily volatility will be lower than either leg alone, producing shallower simulated drawdowns.
Does this tool assume returns follow a normal distribution?
It generates paths from an average daily return and a daily volatility, which is the standard parametric setup and does carry a normality assumption. Real return series tend to have fatter tails than that assumption produces, meaning genuinely extreme sequences occur somewhat more often than the model implies. The practical consequence is that the simulated worst cases should be read as a floor on plausible severity rather than a ceiling, which is part of why a safety margin is applied on top.
What time horizon do the simulated drawdowns cover?
Each simulated path spans a fixed number of trading periods, and the maximum drawdown reported is the worst peak-to-trough decline observed anywhere within that span. Lengthening the horizon gives every path more opportunities to produce a deep decline, so the distribution shifts worse simply from having more observations. Comparing drawdown figures across different horizons is therefore not meaningful unless the path length is held constant and stated.
How should the output change if the strategy runs with leverage?
Leverage scales both the average return and the volatility input, and drawdown scales with it in a way that is not proportional, because losses compound against a smaller remaining base. Doubling exposure does not simply double the simulated decline. The workable approach is to enter the levered return and volatility figures directly rather than adjusting the output afterwards, and to include financing cost in the return input so the drawdown reflects what the account would actually carry.
Can these results be compared against a drawdown a live account actually experienced?
A single realized drawdown is one observation from the distribution, so it can be located within the simulated range but not used to confirm or refute the model. Finding the live figure well beyond the simulated tail is the informative case: it suggests the volatility input was too low, the return series had dependence the model ignores, or the strategy changed. Matching the median is not evidence the model is right.
References
- Magdon-Ismail, M., & Atiya, A. F. (2004). Maximum Drawdown. Risk Magazine. Provides closed-form approximations for maximum drawdown distributions under geometric Brownian motion, useful for comparing simulation outputs against analytical expectations.
- Pardo, R. (2008). The Evaluation and Optimization of Trading Strategies, 2nd ed. Wiley. Chapter 9 covers Monte Carlo simulation for drawdown analysis in practical backtesting contexts.
- Harvey, C. R., & Liu, Y. (2015). Backtesting. Journal of Portfolio Management. Discusses drawdown distributions and their use in assessing strategy robustness.
Educational Disclaimer
This tool is for educational purposes only. Results are based on a simplified Gaussian return model using user-entered parameters. Real strategy drawdowns may differ materially due to fat tails, regime shifts, and autocorrelation not captured by this model. This is not financial advice. Consult a qualified financial professional before making trading or investment decisions.