The maximum drawdown your backtest reports is the drawdown of one historical ordering — rarely the worst plausible drawdown the same trades could produce. Monte Carlo resampling of the trade list surfaces the deeper draws you should actually plan around. This is educational only and not financial advice; it concerns risk and robustness, never profitability.
Because your backtest reports the maximum drawdown of a single sequence: the one order in which history happened to deal your trades. Maximum drawdown is an extreme-value statistic — it records only the single deepest trough over the whole run. And a single ordering rarely contains the worst arrangement of your losers. Shuffle the same trades and, more often than not, you can find an ordering that digs a deeper hole than the one your backtest showed.
Think about what maximum drawdown is measuring. It is the worst peak-to-trough decline across the entire equity path, driven mostly by how your losing trades happen to cluster. Your realized history clustered them one particular way. There are enormous numbers of other ways they could have clustered, and a meaningful fraction of those produce a deeper worst-case. Your reported figure is, in expectation, on the optimistic side of the true distribution of possible max drawdowns.
This is why the single number is a poor planning input. It is not wrong — it genuinely happened — but it is one draw from a right-skewed distribution of possible worst cases, and you were shown a draw that was no worse than typical and quite possibly better. [Monte Carlo simulation](/learn/monte-carlo-simulation-backtests) of the trade list reveals the fuller distribution so you can plan against a plausible deep draw instead of a single flattering one. None of this measures profitability, and trading carries a substantial risk of loss.
Take your list of per-trade returns and rebuild the equity curve many thousands of times under different orderings, recording each run's maximum drawdown. Because drawdown depends on when losers cluster, the resulting distribution of maximum drawdowns is wide and skewed to the downside. Your single historical max drawdown lands somewhere in that distribution — usually not at the extreme, often near or below the median. The high percentiles of the distribution are the deep-but-plausible draws your single backtest hid.
Two flavors of resampling answer slightly different questions. Reshuffling without replacement keeps your exact trades and varies only order — it exposes how much deeper the worst case gets from unlucky sequencing alone. Bootstrapping with replacement (Efron's method) lets trades repeat or drop, adding the uncertainty of which trades you might have gotten — this typically widens the tail further. For drawdown planning, many practitioners report both.
import numpy as np
def drawdown_distribution(returns, n=20000, replace=True):
r = np.asarray(returns, float)
out = np.empty(n)
for i in range(n):
idx = (np.random.randint(0, len(r), len(r)) if replace
else np.random.permutation(len(r)))
eq = np.cumprod(1.0 + r[idx])
out[i] = (eq / np.maximum.accumulate(eq) - 1.0).min()
return np.percentile(out, [50, 90, 95, 99])Every equity path is accumulated strictly forward from the trades, so no future information leaks backward — the resampling itself introduces no [look-ahead bias](/learn/look-ahead-bias). Read the 95th or 99th percentile as the drawdown to provision for, not the single historical number your platform displayed.
Plan around a high percentile of the resampled distribution, not the single realized figure. A defensible default is the 95th percentile of the simulated maximum drawdowns — the depth that only about one ordering in twenty exceeds. If you are managing capital you genuinely cannot afford to lose, push to the 99th percentile. The exact percentile is a judgment about how much tail you must survive, but it should always be worse than the single number the backtest printed.
The gap between the two can be large, and it is where accounts quietly break. A strategy showing a 15% historical max drawdown might carry a 95th-percentile simulated drawdown well past that, simply because history dealt the losers kindly this once. If you sized against 15%, an ordinary re-draw of the same trades in a less kind sequence can take you somewhere you never planned for — no change in the edge required.
| Drawdown figure | How to treat it | | --- | --- | | Backtest's single reported max DD | A lower bound on plausible pain, not a plan | | Median simulated max DD | The typical case for these trades | | 95th-percentile simulated max DD | Reasonable provisioning target | | 99th-percentile simulated max DD | For capital you cannot afford to lose |
This feeds directly into risk of ruin and position sizing — see [Risk of Ruin: what Monte Carlo reveals](/learn/risk-of-ruin-explained). The whole exercise is about surviving a real edge's bad sequencing, not about expected return. Educational only; not financial advice.
When your trades are not exchangeable. Plain reshuffling assumes each trade is an independent draw whose order can be freely permuted. Real markets violate this: volatility clusters, losing trades correlate during regime breaks, and a strategy that pyramids or scales positions has structurally linked outcomes. Shuffling breaks those linkages and can produce a distribution that is too kind, understating the coordinated losses a real crisis delivers. If your losses clump in the real world, a naive shuffle will tell you they clump less than they do.
Resampling is also blind to anything outside your trade list. It cannot invent a drawdown driven by a regime your strategy never encountered — a rate-hike cycle it never traded, a liquidity event absent from the sample, correlations that held during the test and then broke. The deepest real drawdowns often come from conditions the backtest never saw at all. [Walk-forward analysis](/learn/walk-forward-analysis) exposes regime dependence that trade-list resampling cannot, by re-fitting and re-testing across rolling windows.
And it inherits every flaw in the trades. If the backtest was overfit, the drawdowns you are resampling are themselves fiction — flatteringly shallow because the strategy was tuned to dodge the historical losers. Resampling fiction yields precise fiction. Screen for that with the [Overfitting Check](/backtest/overfitting) and [overfitting and curve-fitting explained](/learn/overfitting-curve-fitting-explained) before you trust any drawdown percentile. The honest framing: resampling corrects the sequencing underestimate but cannot correct a sampling or overfitting one.
Establish the edge is real before you bother characterizing its drawdown. A drawdown distribution built from an overfit or under-sampled trade list is confident nonsense. So start with enough independent trades and honest out-of-sample confirmation — see [how many trades is enough](/learn/how-many-trades-is-enough) and [in-sample versus out-of-sample](/learn/in-sample-vs-out-of-sample) — and account for how many strategies you tried before this one survived, per Harvey and Liu's multiple-testing warnings and Bailey and Lopez de Prado's [Deflated Sharpe Ratio](/learn/deflated-sharpe-ratio).
Only then resample the trade list, read the 95th and 99th drawdown percentiles, and size so those plausible deep draws stay inside what you can survive. Cross-check against regime risk with walk-forward, because the worst real drawdown may come from conditions absent in every ordering of your trades. And treat the whole output as a floor on caution, not a ceiling on what can go wrong — the market is not obligated to stay inside your simulated distribution.
You can generate the resampled drawdown distribution for your own results with the free [Backtest Health Check](/backtest), which reports the percentiles rather than the single flattering number your platform showed, and screen the strategy for fragility with the [Overfitting Check](/backtest/overfitting). For the wider catalogue of ways a clean curve misleads, read [why most backtests fail](/learn/why-most-backtests-fail). The takeaway is narrow and honest: your reported max drawdown is one sample, usually optimistic; plan around the distribution. This measures risk, never profit — educational only, not financial advice, and trading involves a substantial risk of loss.
Educational only — not financial advice. Trading involves substantial risk of loss.