Almost every Monte Carlo tool in retail trading reshuffles the order of your trades. That method has a specific blind spot, and it sits exactly where your risk lives.
Run a backtest through a Monte Carlo simulator and you will usually get the same procedure: take the list of trade results, shuffle it thousands of times, rebuild the equity curve for each ordering, and report the distribution of drawdowns. It is a reasonable thing to do. It answers a real question, and it answers it correctly.
The question it answers is narrower than most traders assume.
What reshuffling actually assumes
Shuffling a list treats the entries as exchangeable. Any ordering is considered as likely as any other, which is another way of saying the method assumes your trade results are independent of each other.
For the sign and size of individual trades, that assumption is often defensible. Whether trade 400 wins is usually close to independent of whether trade 399 won.
But independence of returns is not the same thing as independence of risk.
Markets cluster volatility. Quiet periods are followed by quiet periods, and violent periods by violent periods. A strategy trading through a volatile stretch produces a run of larger results, winners and losers alike, packed close together in time. That clustering is the mechanism that turns an ordinary losing streak into a drawdown that ends an account.
Reshuffling destroys it. Every shuffle scatters those clustered losses randomly across the whole history, spacing them out. The simulation reports what would have happened if your bad trades had politely queued up one at a time, separated by good ones.
They do not arrive that way.
A controlled demonstration
To isolate the effect, here is a series where the dependence structure is known because it was specified rather than discovered: 800 trades generated from a GARCH(1,1) process with omega 0.05, alpha 0.12, beta 0.85, and a small positive edge. GARCH is the standard model for volatility clustering, so this is a series that behaves the way return series behave, with a property that can be checked.
Measured on that series:
| statistic | value | reading |
|---|---|---|
| Lag-1 autocorrelation of P&L | +0.074 | near zero, returns look independent |
| Lag-1 autocorrelation of squared P&L | +0.179 | positive, volatility clusters |
| Lag-5 autocorrelation of squared P&L | +0.088 | clustering persists over several trades |
This is the trap in one table. Test the returns for autocorrelation and you find almost nothing, which invites the conclusion that reshuffling is safe. Test the squared returns and the dependence is plainly there. Magnitudes cluster even when directions do not.
Now run the same 800 trades through two methods, 5,000 simulations each. The first reshuffles trade order. The second uses a stationary block bootstrap, which resamples contiguous blocks of trades so that whatever clustering exists inside a block survives into the simulated path.
| percentile | trade reshuffling | block bootstrap | understated by |
|---|---|---|---|
| Median | 25.3% | 25.0% | −0.3 points |
| p90 | 35.6% | 44.2% | +8.6 points |
| p95 | 39.4% | 51.7% | +12.3 points |
| p99 | 46.4% | 68.0% | +21.7 points |
| Worst of 5,000 | 68.1% | 94.2% | +26.1 points |
The shape of the answer matters more than the size
Look at the first row before the others. At the median, the two methods agree to within a third of a percentage point.
That is not a rounding artifact, it is the whole point. Reshuffling gets the typical case right. If you only ever compare median outcomes, the two methods look interchangeable, and you would reasonably conclude the extra machinery buys nothing.
The divergence appears entirely in the tail, and it grows as you go further out. At p95 the reshuffled estimate understates drawdown by 12.3 points. At p99 it understates by nearly 22.
The tail is not a technicality. It is the part of the distribution that decides whether an account survives, whether a prop firm evaluation ends on a rule breach, and whether a trader keeps executing the system when it hurts. A method that is accurate in the middle and optimistic at the edges is optimistic precisely where being wrong is expensive.
What a block bootstrap does differently
The stationary block bootstrap comes from Politis and Romano (1994). Rather than drawing individual trades, it draws runs of consecutive trades. Block lengths are geometrically distributed with a chosen mean, and sampling wraps circularly around the series.
Because each block preserves the original ordering inside itself, local structure survives. A cluster of large losses that occurred together can be drawn together. The simulation can then produce the kind of concentrated damage that reshuffling averages away.
The mean block length is a real parameter, not a detail to gloss over. Too short and the method collapses toward reshuffling. Too long and you resample a handful of near-identical paths and lose the variety that makes simulation useful. The Politis-Romano heuristic scales it as the cube root of the sample size, which for 800 trades gives about 9.
The word “stationary” refers to the geometric block length, which makes the resampled series stationary in a way that fixed-length blocks do not achieve.
Being clear about our own tools
The free Monte Carlo simulator on this site reshuffles trade order. It is the standard method, it is honest about the question it answers, and for judging sequence risk it is the right tool.
The block bootstrap is used in Edge Matrix for the prop firm challenge simulation, where the entire question is how often a rule gets breached, and rule breaches are tail events. Using an iid method there would have produced pass rates that were too generous, in a place where an optimistic number could cost someone a challenge fee.
Different questions, different methods. We would rather say that plainly than imply one tool does everything.
What this does not fix
A block bootstrap corrects one specific failure. It does not correct the others, and it is worth being exact about that.
It cannot detect overfitting. Every simulation still draws from the trade list your optimisation produced. If the parameters were tuned to that history, resampling that history will not reveal it. That requires data the parameters never saw, and measures that account for how many configurations were tested before one was chosen.
It cannot represent regimes the strategy never traded. If the backtest never saw a liquidity crisis, no resampling of it will manufacture one.
It cannot recover costs the report did not record. Slippage, spread widening, and requotes are absent from the file, so they are absent from every simulation built on it.
And the effect size shown above belongs to that specific controlled series. A strategy whose results carry little serial dependence will show the two methods converging. One that trades a strongly clustering instrument may show a wider gap. The direction of the bias follows the sign of the dependence, so the honest instruction is to measure it on your own data rather than to assume a number from an article.
The practical version
If you are using Monte Carlo output to size positions or to judge whether a strategy fits a drawdown limit, the median is the wrong number to plan against, and a reshuffled p95 may be the second wrong number.
Check the autocorrelation of your squared trade results. If it is meaningfully positive, your trades cluster, and any method assuming independence is describing a gentler history than the one you traded.
Method notes. All figures come from 5,000 simulations per method on a single 800-trade GARCH(1,1) series, seed fixed for reproducibility. Block length set by the Politis-Romano cube-root heuristic. Drawdown is measured peak to trough on the simulated equity curve. These figures describe simulated outcomes on historical and synthetic data. They are not forecasts, and nothing here is financial advice.
Reference: Politis, D. N., and Romano, J. P. (1994). The Stationary Bootstrap. Journal of the American Statistical Association, 89(428), 1303-1313.