What Is Monte Carlo Simulation In Trading (And Why Your Backtest Lies)
One backtest curve hides how bad the same trades could have felt. Monte Carlo simulation reshuffles them thousands of times and shows you the real range of pain.
You’ve got a beautiful backtest curve. Smooth climb, tiny drawdowns, perfect story. Then you run Monte Carlo simulation in trading and find a version of your own system that almost blows up.
This is a plain-English guide to monte carlo simulation trading.
Same trades. Different order. Completely different emotional experience.
Why the single backtest curve lies to you
Look at any performance report and you see one equity line. One path the trades happened to take through time. It feels like fate, but it’s just one random shuffle the market dealt you.
If your system has an edge, the set of trades matters more than the order, within reason. But the order dictates your maximum drawdown, your longest losing streak, and whether you stick with it or rage-quit on week three.
Your broker statement doesn’t show the alternate timelines where the same logic got kicked in the teeth early.
That’s the problem Monte Carlo is trying to fix.
What is Monte Carlo simulation in trading, in plain English?
Forget casinos for a moment. In trading, Monte Carlo simulation takes your list of historical trades and treats them like a deck of cards. Win, loss, win, win, loss, etc.
You then do one simple, slightly evil thing.
You reshuffle that deck thousands of times and play it through as if that had been the actual order of trades, each time tracking balance, drawdown, and whatever else you care about.
Same trades. Same win rate. Same average reward to risk. But now you see not just what did happen, you see what could reasonably have happened if randomness had arranged the sequence differently.
It’s like running a thousand alternate universes of your backtest to see how often your account lives, limps, or dies.
Monte Carlo simulation trading: the core maths (without the headache)
At its heart, Monte Carlo is just repeated sampling.
Say you have 400 historical trades from a system. Each trade is a number in R (return in % of equity, R-multiple, pips, whatever). Call them T1, T2, …, T400.
There are two common flavours:
- Reshuffle (permutation): randomly reorder the 400 trades without replacement and build an equity curve.
- Bootstrap (resample): randomly pick from those 400 trades with replacement to build a synthetic series, usually also 400 trades long.
The first asks “what if the same trades showed up in a different order?”.
The second asks “what if the future is like the past on average, but not identical?” and lets some trades repeat, some disappear.
Now do that 1,000 times, or 10,000 if you’re in a particularly masochistic mood.
For each run you track:
- Final return
- Maximum drawdown
- Longest losing streak
- Volatility of returns
When you’re done, you don’t have “the drawdown” any more. You have a distribution of drawdowns.
That’s the point: replacing a single story with a range.
Why traders keep getting this backwards
Most traders start from the curve. Then find risk that fits the curve. Then hope.
The sensible order is the other way round.
First: understand your edge and its distribution. Then: accept the worst-plausible run of luck. Then: size down until that worst case doesn’t end your account or your sleep.
Monte Carlo helps with the second bit.
Your backtest might show a maximum drawdown of 18%. Your Monte Carlo might show that in 5% of alternate paths, you’d have seen 35% instead. Still the same system. Still “working”. Just a more honest sample of pain.
If you’ve never done Monte Carlo, you are almost certainly underestimating how bad the bad could be.
Expectancy is not the issue. Sequence is.
Take a hypothetical system:
- Win rate: 50%
- Average winner: +2R
- Average loser: -1R
- Long-run expectancy: +0.5R per trade
On paper, solid.
Now look at sequences.
In one Monte Carlo run, you get a rhythm: WLWLWL… Drawdown is tiny. Equity looks like a staircase.
In another, you start with 12 losses in a row. That’s -12R before you win a penny. At 2% risk per trade, that’s about -21% after compounding. At 5% risk per trade, you’ve taken a 46% drawdown before the system “shows its edge”.
Same edge. Radical difference in whether you survive long enough to see it.
If you haven’t read it yet, this is the same argument behind sizing in /blog/how-much-to-risk-per-trade-without-blowing-up and why small percentages matter more than your ego.
What Monte Carlo actually tells you (and what it doesn’t)
Monte Carlo is very good at some things, and useless for others.
What it’s good for
- Range of drawdowns: “In 95% of runs, maximum drawdown was between 18–34%.”
- Losing streaks: “Over 1,000 runs, the longest losing streak was usually 7–12 trades, sometimes 15.”
- Risk of ruin estimates: “At 3% risk per trade, X% of runs lost more than 50% of equity.”
- Position sizing sanity checks: “If I halve my risk per trade, the nasty tails shrink dramatically.”
This is where Monte Carlo and risk of ruin theory meet: it translates the maths into pictures your brain can’t easily ignore.
What it’s useless at
- Predicting the future shape of markets – it only sees what you feed it.
- Fixing overfitting – if your backtest is curve-fit rubbish, Monte Carlo just gives you beautifully resampled rubbish; see /blog/what-is-overfitting-in-trading-and-how-to-spot-it-explained.
- Making a bad edge good – if your average trade is negative after costs and slippage, no amount of shuffling will save it.
Monte Carlo is a risk microscope. Not a magic wand.
Risk of ruin: how Monte Carlo makes it visible
Risk of ruin trading formulas exist. You can plug in win rate, payoff ratio, and position size and get a neat probability that you hit a certain drawdown threshold.
The problem: most people don’t actually believe the formula until they see a curve crash.
Monte Carlo lets you define “ruin” — say, -40% or -60% balance — and then literally count how many of your 10,000 runs hit that point.
Example, purely hypothetical numbers:
- System: 55% win rate, average winner 1.5R, loser -1R.
- Risk: 2% per trade.
- Monte Carlo over 1,000 trades, 10,000 runs.
You might see something like:
| Metric | Median | Worst 5% |
|---|---|---|
| Max drawdown | 22% | 41% |
| Longest losing streak | 11 | 17 |
| Final return | +180% | -5% |
Nothing here is a forecast.
What it tells you is: “If the future behaves statistically like the past, it is not weird to have a 40% drawdown at this sizing, even with a decent edge.”
Once you see that, aggressive sizing suddenly looks less like courage and more like a slow-motion margin call.
How Monte Carlo changes position sizing decisions
Position sizing is where traders quietly ruin good systems. They see a nice equity curve and then decide 4–5% per trade “is fine this time”.
If you haven’t already, read /blog/fixed-fractional-vs-fixed-lot-which-sizing-really-compounds – it walks through why compounding interacts with risk in ways your intuition doesn’t like.
Monte Carlo gives you a practical workflow:
- Take your trade list (preferably out-of-sample; see /blog/in-sample-vs-out-of-sample-testing-the-test-most-backtests-skip).
- Run Monte Carlo at 1% risk per trade. Record the distribution of drawdowns.
- Repeat at 2%, 3%, maybe 4% if you’re fond of drama.
You will usually see something like this pattern (conceptually, not as a rule):
- Going from 1% to 2% doubles your median return but more than doubles worst-case drawdown.
- Going to 3% spikes the tail risk hard – the worst 5% of paths look brutal.
- At 4–5%, the risk of 50%+ drawdowns becomes unpleasantly non-trivial.
Monte Carlo makes it very clear that “just a bit more risk” is rarely linear on the downside.
And yes, this is the same boring drum as /blog/how-much-to-risk-per-trade-without-blowing-up – it’s just hitting it with prettier charts.
Monte Carlo and automated trading: what changes, what doesn’t
Automating a strategy fixes execution errors. It does not fix your psychology when the system hits the left-tail sequence.
In fact, automation makes Monte Carlo more important, not less.
If you’re going to let a machine fire off trades in FX, gold, indices or whatever else while you sleep, you need to be comfortable not just with the average path, but with the ugly ones that are still statistically normal.
Examples where it matters:
- A gold (XAUUSD) system with a minimum 0.01 lot size on a small balance will show bigger percentage equity swings than a micro-sized FX system.
- Running multiple systems at once can smooth the equity line if their drawdowns are lowly correlated; Monte Carlo can be extended to simulate portfolio-level sequences.
- No martingale, no grid doesn’t mean “safe” – it just removes a couple of famous ways to accelerate disaster.
The key question with automation isn’t “does it win?”.
It’s “can I sit through the Monte Carlo worst 5–10% paths without pulling the plug at exactly the wrong time?”.
How to run a sensible Monte Carlo test on your system
There are many ways to overcomplicate this. You don’t need most of them to get 90% of the benefit.
Step 1: Get a clean trade history
At least a couple of hundred trades. Ideally more. Mixed market conditions. Out-of-sample, not the same data you used to design the system.
If you only have 30 trades, Monte Carlo will mostly show you creative ways those 30 can hurt you. Useful for humility, not for statistics.
Step 2: Normalise results
Express each trade as R (multiple of risk) or percentage of equity. That way sizing effects are built in, and you’re not confusing big trades with big edges.
If your risk per trade varies wildly, consider first converting to R-multiples, then overlay the position sizing logic inside the simulation.
Step 3: Choose your flavour
Permutation reshuffle is easier to reason about if you just want “different orders of the same history”. Bootstrap (sampling with replacement) is better if you want to imagine longer future series built from the same distribution.
Both are fine as long as you remember what question you’re asking.
Step 4: Run enough simulations
A few hundred runs will give you a vague idea. A few thousand gives you a decent sense of the tails. Past that, you’re mainly improving your charts, not the decision.
Stop when the distributions stop changing meaningfully with more runs.
Step 5: Look past the average line
Everyone stares at the median equity curve. That’s the one that almost certainly won’t happen.
Pay more attention to:
- The worst 5–10% of drawdowns.
- The 90th–95th percentile of losing streak length.
- How often you hit a preset ruin line at your current risk per trade.
Then adjust sizing, not the chart scale.
Common mistakes when using Monte Carlo in trading
Done badly, Monte Carlo becomes another comfort blanket.
- Using optimised, in-sample trades – if you overfit your system first, then Monte Carlo the optimised curve, you’re just resampling the fluke; see /blog/what-is-walk-forward-testing-and-why-backtests-lie and /blog/how-to-build-a-trading-system-that-actually-wins-long-term.
- Ignoring transaction costs and slippage – those must be baked into the original trades; resampling pre-cost trades is fantasy football.
- Assuming independence – many Monte Carlo tools assume trades are independent; if your system clusters losses in trends or regimes, you should reflect that, or your tails will look kinder than reality.
- Believing low drawdown percentiles are a promise – a 5% probability event is still very real; the market doesn’t know your spreadsheet.
If your Monte Carlo output makes you feel wonderfully safe, you’ve probably left something uncomfortable out.
Where Monte Carlo sits in the bigger process
Monte Carlo is one step in a chain, not a green light on its own.
A sane development lifecycle looks roughly like:
- Define the idea and logic.
- Test on in-sample data.
- Check for overfitting and validate out-of-sample.
- Run Monte Carlo on the out-of-sample trade list to understand risk distribution.
- Size positions conservatively based on worst-plausible outcomes.
- Then, and only then, consider live or automated deployment.
Notice the order: Monte Carlo is a risk filter for systems that have already survived the basic statistical tests.
If a system only looks acceptable when you ignore Monte Carlo, it isn’t acceptable.
Trading and investing carry a high risk of loss. Never risk money you cannot afford to lose.
So what do you actually do with this?
Next time you have a backtest you’re proud of, don’t ask “how fast can this grow?”.
Ask “what does Monte Carlo say about the paths where this hurts the most, and can I survive those without panic and without blowing the account?”.
If the honest answer is “no”, the problem isn’t the simulation.
Related reading
- Fixed Fractional vs Fixed Lot: Which Sizing Really Compounds?
- How Much To Risk Per Trade Without Blowing Up
- Win Rate vs Risk-Reward: Why Your 80% System Still Bleeds
Start your free 14-day ArcisTrade demo →
P.S. Run your own numbers, stare at your own worst-case paths, then watch how you actually feel when real trades start filling the equity curve.
Common questions
What is Monte Carlo simulation in trading?
Monte Carlo simulation in trading takes your historical trade results and repeatedly shuffles or resamples them to generate thousands of alternative equity curves. By analysing these curves, you can estimate the likely range of drawdowns, losing streaks and final balances your system could experience, instead of relying on a single historical backtest. It’s mainly a risk and robustness tool, not a forecast of future profits.
How many trades do I need for a Monte Carlo trading simulation?
You generally want at least a couple of hundred trades before Monte Carlo results start to become meaningful. With very small samples, say 30–50 trades, the simulation still highlights sequencing risk, but the statistical picture is weak and highly sensitive to each trade. More trades across varied market conditions give a more reliable estimate of drawdowns and losing streaks.
Does Monte Carlo simulation improve my trading strategy edge?
No. Monte Carlo simulation does not improve the edge of your strategy. It assumes your trade list is representative and simply explores different possible sequences of those results. If your original system has poor expectancy after costs, Monte Carlo will just reveal different ways that poor edge can play out. Its main value is showing you risk distribution and helping set safer position sizes.
Is Monte Carlo simulation better than a normal backtest?
Monte Carlo simulation doesn’t replace a standard backtest; it sits on top of it. A backtest shows how your system would have performed along one historical path. Monte Carlo takes those same trades and explores thousands of alternative paths, exposing ranges of drawdowns and losing streaks that a single curve can hide. You still need a solid, properly tested system before Monte Carlo is useful.