The Problem with Your Backtest
Your backtest produced one equity curve. One drawdown figure. One return. It ran your trades through in the exact order history delivered them โ January first, then February, through to December. That sequence felt inevitable because you lived it. It wasn't.
The same 80 trades could have arrived in hundreds of thousands of different orderings. An 8-trade losing streak that hit in month seven โ after you'd built up a cushion โ could just as easily have hit in month one, before you had any profit to absorb it. The entry size was the same. The sequence was different. The psychological and financial outcome would have been completely different.
This is sequence risk, and it's the dimension backtesting doesn't show you. Your historical equity curve is a single path through a very large space of possible paths. Monte Carlo simulation maps that space.
What Monte Carlo Simulation Actually Does
The mechanics are straightforward. Take your actual trade results โ your real R-multiples from your journal โ and randomly reshuffle their order. Run 1,000 versions of this reshuffled sequence. Each version has the exact same trades, just delivered in a different order. Plot the equity curve for all 1,000 runs.
What you end up with is a distribution of possible equity curves. Not what happened โ what could have happened. From that distribution you extract:
- The range of final account values across all 1,000 paths
- The range of max drawdowns each path produced
- The probability that any given path ended in profit
- The worst-case drawdown your system is capable of at various confidence levels
The key insight is that your actual backtest result sits somewhere in the middle of this distribution. It might be near the median โ roughly what the average path produces. Or it might sit unusually high, meaning your historical sequence was luckier than most orderings would have been. Monte Carlo tells you which.
"Your actual equity curve is just one possible path through your trades. Monte Carlo shows you the full range โ including the paths you could have been dealt but weren't."
Reading the Output: What the Percentiles Mean
Monte Carlo output is expressed as percentile equity curves. After 1,000 simulation runs, you sort all the final outcomes and all the max drawdowns by rank. The percentiles tell you what percentage of simulated paths ended at or below a given result.
| Percentile | What it means | How to read it |
|---|---|---|
| 95th | Near-best case | Only 5% of runs did better than this |
| 75th | Good case | 75% of runs did this well or worse |
| 50th | Median | The middle path โ half did better, half worse |
| 25th | Below-average case | 75% of runs outperformed this |
| 5th | Near-worst case | 95% of runs did better than this. This is your stress-test number. |
The number that matters most for risk management is the 5th percentile max drawdown. This is the drawdown figure that 950 out of 1,000 simulated paths stayed above โ only 50 paths out of 1,000 produced a worse sequence. If your system can't survive this drawdown psychologically or financially, your position size is too large. Period.
The Worked Example
Say your strategy has produced +40R total profit over 120 trades. Great backtest. You run Monte Carlo across 1,000 reshuffled orderings and get the following max drawdown distribution:
| Percentile | Max Drawdown (R) | At $1,000/R |
|---|---|---|
| Best 5% of paths | -4R | -$4,000 |
| 25th percentile | -7R | -$7,000 |
| Median (50th) | -11R | -$11,000 |
| 75th percentile | -14R | -$14,000 |
| 5th percentile (stress test) | -18R | -$18,000 |
Your actual backtest produced, say, a -9R max drawdown โ comfortably between the median and 25th percentile. Looks manageable. But the stress-test number is -18R. At $1,000 per R, that's an $18,000 drawdown on the way to $40,000 in total profit. Can you stay in the trade at -$18,000? Can you keep your position size? Can you stay solvent if this happens early, before profits have compounded?
If the honest answer is no โ you'd reduce size, switch systems, or quit โ then you've identified a real problem before the market exposed it. The fix is mechanical: cut your R-size until the 5th percentile drawdown is a number you can actually survive.
Sizing adjustment formula:
Why Your Historical Sequence Might Have Been Lucky
If your actual backtest drawdown sits well above the 5th percentile โ say, near the 25th percentile โ that's a signal your historical results were relatively fortunate in their ordering. The losses were distributed in a gentler pattern than most other orderings would have produced.
Markets don't care about historical ordering. The next 120 trades will arrive in whatever sequence they arrive. You cannot rely on the same benign distribution. This is why the 5th percentile drawdown is the planning number โ it represents a realistic bad-case scenario, not an extreme tail catastrophe. Nineteen out of 20 random orderings stayed inside it. That's not a black swan; that's a sequence you might encounter in an ordinary bad year.
"A backtest result near your 25th percentile means you got a favorable sequence. Position-size as if the next run delivers the 5th percentile."
Using Monte Carlo to Set Your Position Size
The practical workflow is three steps:
- Run Monte Carlo on your trade history. You need at least 30โ50 trades for the simulation to be meaningful. More trades produce a more reliable distribution.
- Identify your 5th percentile max drawdown. This is your stress-test number โ the drawdown 950 out of 1,000 orderings stayed above.
- Set your R-size so that drawdown is survivable. "Survivable" means both financially (you don't blow the account) and psychologically (you don't abandon the system before it recovers). If your 5th percentile drawdown at current sizing is -$18,000 and you'd fold at -$8,000, scale down until the numbers align.
This is how professional funds approach position sizing. They don't ask "what's the best-case return?" They ask "what's the worst-case drawdown we can sustain, and how much do we need to size down to ensure we stay inside it?" Retail traders almost never run this calculation. Monte Carlo makes it mechanical instead of a guess.
What Monte Carlo Can't Tell You
Monte Carlo reshuffles your existing trades. It assumes future trades will come from the same distribution as past trades โ same win rate, same average R, same distribution of outcomes. If your strategy's edge is degrading (your SQN score is falling, your rolling win rate is trending down), Monte Carlo based on old trade data will underestimate future drawdown risk.
It also can't model structural market changes, black swan events outside your historical sample, or the compounding effect of your own behavioral mistakes under drawdown pressure. Monte Carlo is a tool for stress-testing a known distribution โ not a forecast.
Run it regularly as your trade history grows. A Monte Carlo on 30 trades is a rough estimate. On 200 trades, it becomes a reliable planning input.
How SignalDeck Runs Monte Carlo on Your Backtest
SignalDeck's strategy backtester includes a 1,000-path block bootstrap Monte Carlo on every backtest result. After running your strategy against historical data, it reshuffles the trade sequence 1,000 times and returns 5th, 25th, 50th, 75th, and 95th percentile equity curves โ so you can see the full spread of outcomes your system is capable of producing, not just the one path history delivered.
The output includes worst-case drawdown at the 5th percentile and probability of profit across all 1,000 paths. If your strategy is profitable in 850 out of 1,000 randomly ordered runs, you have a real edge. If it's profitable in 520, the edge is fragile โ sequence-dependent rather than structurally robust.
Combined with Walk-Forward Analysis โ which tests whether your strategy's parameters hold up on out-of-sample data โ Monte Carlo gives you two independent stress tests before you put real capital on a system. Run Monte Carlo on your own trade history โ free during beta.
Frequently Asked Questions
What is Monte Carlo simulation in trading?
Monte Carlo simulation in trading takes your actual historical trade results and randomly reshuffles them thousands of times to generate a distribution of possible equity curves. Each simulation run contains the same trades but in a different sequence โ showing you the range of outcomes your system could produce, including worst-case drawdowns that your real trading history may have avoided simply due to lucky ordering.
What is a 5th percentile drawdown?
The 5th percentile drawdown is the maximum drawdown figure that only 5% of your Monte Carlo simulation runs stayed above. It represents a conservative stress-test: your system would need to encounter an unusually bad trade sequence โ worse than 95% of simulated orderings โ to breach it. If this number is larger than you can psychologically or financially tolerate, your position size is too large for your actual risk capacity.
Why does trade sequence matter in backtesting?
A backtest replays your trades in historical order โ but real markets don't deliver results in any guaranteed sequence. The same set of 100 trades could produce a brutal 8-trade losing streak early (before profits have accumulated) or distribute losses evenly across the year. The first scenario is psychologically and financially devastating; the second is manageable. Monte Carlo shows you the full range of sequences your system might encounter, not just the one sequence history happened to produce.
How many trades do I need for Monte Carlo to be meaningful?
A meaningful Monte Carlo simulation generally requires at least 30 trades, with 50โ100 trades giving more reliable results. Below 30 trades, the simulated distribution is too narrow to surface meaningful tail scenarios. The more trades in your history, the wider the range of sequence permutations the simulation can explore, and the more accurate the percentile estimates become.
How is Monte Carlo different from backtesting?
Backtesting runs your strategy against historical data in chronological order and produces a single result โ one equity curve, one max drawdown, one return figure. It tells you what actually happened with that strategy on that data. Monte Carlo takes the trades that backtesting produced and reshuffles them thousands of times to show you the distribution of what could have happened. Backtesting answers "what did my strategy do?" Monte Carlo answers "what is my strategy capable of?"
How SignalDeck Compares
No other trading journal includes Monte Carlo simulation in its backtesting workflow.
Related Articles
Run Monte Carlo on your own strategy.
SignalDeck runs 1,000-path Monte Carlo simulation on every backtest โ returning 5th through 95th percentile equity curves and your worst-case drawdown at the 5th percentile. Free during beta.
Join the Beta โ Free