Trading Education

Monte Carlo simulation trading: what backtests hide

Monte Carlo simulation trading turns one backtest curve into a range of outcomes, so you can size for the bad ordering instead of the pretty one.

In this guide
  1. What is Monte Carlo simulation in trading?
  2. Why does one backtest curve mislead you?
  3. How do you run one on your own trade list?
  4. Which output should change your position size?
  5. What can Monte Carlo not tell you?
  6. Does your trade list describe trades you could have taken?
  7. Frequently asked questions

Your backtest dealt the trades in the order history happened to produce them. Shuffle that same set of trades into a different order and the win rate does not move, the average win does not move, but the worst drawdown can double. Same strategy. Different luck.

Monte Carlo simulation trading is the practice of re-running your own results in many randomised orders to see the full range of equity curves one strategy can produce. The curve in your report is a single draw from that range, and it is rarely the ugly one.

Here is what the test measures, how to run it on a trade list you already have, and which output should change your position size before your account does it for you.

Key Findings

  • One curve is one sample: a backtest shows the single ordering history dealt, not the range of orderings the same trades could have produced.
  • Drawdown is a clustering problem: losses spread out barely dent an account, and the identical losses arriving consecutively can end it.
  • Read the deep end, not the average: the simulated worst case is the number you size against, because surviving it is what keeps the edge in play.
  • It validates nothing: resampling an overfitted or repainted trade list produces a confident-looking distribution built on trades that never happened.

What is Monte Carlo simulation in trading?

It is a resampling test. You feed it the list of closed trades a strategy produced, it draws from that list repeatedly in random orders, and it rebuilds the equity curve for every draw. Run it enough times and you get a distribution of outcomes instead of a single line.

The method is old and borrowed. Nicholas Metropolis and Stanislaw Ulam described it in the Journal of the American Statistical Association in 1949 as a way to study problems where the arithmetic is hopeless but random sampling is cheap. Trading results fit that description well.

One backtest inside the fan of possible orderingsfirst tradelast tradeyour reportreshuffledworst orderingequity

Every line in that picture contains the identical trades. The dark one is the ordering you were sold on; the red one is the ordering that decides whether you are still trading when the edge finally shows up.

Quick testTake your last hundred closed trades, sort the list so every loser falls consecutively, and read the drawdown. That single sort is a crude Monte Carlo of one, and it tells you in a minute whether your size survives a bad run.

Why does one backtest curve mislead you?

Because it reports the outcome of a sequence rather than the quality of a strategy, and the sequence was luck. Two things get hidden by the single line: how deep the drawdown could have gone, and how much of the final balance came from the trades arriving in a flattering order.

Regulators have treated simulated results as a separate category from real ones for decades. CFTC Regulation 4.41 requires hypothetical performance to carry a disclaimer stating that it has inherent limitations and does not represent actual trading. That rule exists because a curve built after the fact is easy to make beautiful.

The academic version of the warning is blunter. In “Pseudo-Mathematics and Financial Charlatanism”, published in the Notices of the American Mathematical Society in May 2014, David Bailey, Jonathan Borwein, Marcos Lopez de Prado and Qiji Jim Zhu showed that testing enough rule variations against one price history will hand you a spectacular backtest by chance alone, with no edge underneath it.

What you getA single backtest runA Monte Carlo range
Final equityOne numberA spread from poor to strong
Worst drawdownThe one that happenedThe one that plausibly happens
Longest losing streakHistorical accidentA distribution with a nasty tail
Answer it supports“This worked”“This is how rough it can get”
Failure modeConfidence in one sampleConfidence in a bad input set
Final equity
A single backtest run
One number
A Monte Carlo range
A spread from poor to strong
Worst drawdown
A single backtest run
The one that happened
A Monte Carlo range
The one that plausibly happens
Longest losing streak
A single backtest run
Historical accident
A Monte Carlo range
A distribution with a nasty tail
Answer it supports
A single backtest run
“This worked”
A Monte Carlo range
“This is how rough it can get”
Failure mode
A single backtest run
Confidence in one sample
A Monte Carlo range
Confidence in a bad input set

The right-hand column is not more optimistic. It is more honest, and honesty is what sets your size.

How do you run one on your own trade list?

Export the closed trades, resample them, rebuild the curve, then read the tail. You need a trade list with entry, exit, and result per trade. Most platform reports and journals will give you that, and the rest is arithmetic your spreadsheet can do.

Four steps from a trade export to a sizing decision1export trades2reshuffle order3rebuild curves4read the tailsize for the tail

Step four is where most people stop too early. Reading the average outcome tells you nothing you did not already believe.

How you resample matters, and the three common methods answer different questions:

MethodWhat it doesWhat it testsBlind spot
ReshuffleSame trades, new orderSequence risk and drawdown clusteringCannot show a result worse than your worst trade
Resample with replacementDraws trades randomly, repeats allowedA longer or unluckier run of the same edgeOver-weights whichever trades you happened to record
Randomised start dateRe-runs the rules from different beginningsDependence on one lucky entry pointNeeds price data, not only a trade list
Reshuffle
What it does
Same trades, new order
What it tests
Sequence risk and drawdown clustering
Blind spot
Cannot show a result worse than your worst trade
Resample with replacement
What it does
Draws trades randomly, repeats allowed
What it tests
A longer or unluckier run of the same edge
Blind spot
Over-weights whichever trades you happened to record
Randomised start date
What it does
Re-runs the rules from different beginnings
What it tests
Dependence on one lucky entry point
Blind spot
Needs price data, not only a trade list

Start with the reshuffle. It is the cheapest, it needs nothing but your journal, and it usually produces the number that changes your mind.

Which output should change your position size?

The deep end of the drawdown range. Not the median, not the average final balance, and certainly not the best run in the set. Take the harsh percentile of simulated worst drawdowns, hold it next to the loss you can genuinely absorb, and cut risk per trade until the first number fits inside the second.

Where the backtest sits in the simulated drawdown bandshallowtypicaldeep tailyour backtestsize against thissimulated worst drawdowns

The gap between those two markers is the room your account needs and your sizing spreadsheet never gave it.

Two other outputs earn their place. The longest simulated losing streak tells you what you will have to sit through without abandoning the rules, which is a psychological number more than a mathematical one. And if you trade a funded account, the share of runs that breach the firm’s drawdown limit is the only figure that matters, because a breach ends the account regardless of where the curve finished. Our guide to prop firm drawdown traps covers how those limits are measured.

Where this costs youSizing against the backtest drawdown feels conservative and is not. It sets your risk against the friendliest ordering in the set, so the first ordinary losing cluster arrives as a shock rather than a scenario you had already priced.

What can Monte Carlo not tell you?

Whether the edge is real. The simulation only rearranges results you handed it, so every distortion in the input survives into the output wearing statistical clothing.

Three limits are worth holding onto:

  • Independence. Standard resampling assumes each trade is unrelated to the last, which markets contradict in trends, news bursts, and correlated positions.
  • Nothing new gets invented. The simulation cannot produce an outcome worse than your worst recorded trade, so a gap or a slippage event beyond the sample stays invisible.
  • Sample size still rules. A short trade list stays a short trade list no matter how many runs you pile on top of it.

Use it alongside walk-forward analysis and a properly constructed backtest, not instead of them. One tests whether the edge holds on data the rules have not seen; the other tests how rough the ride gets if it does.

Does your trade list describe trades you could have taken?

This is the question underneath the whole exercise, and it decides whether any of the output means anything. A simulation of trades you could never have entered is a well-drawn fiction.

Repainting is the usual culprit. An indicator that keeps adjusting its signal until the candle closes produces a backtest full of entries that appeared only in hindsight, and resampling those trades gives you a confident-looking drawdown range for a strategy nobody could have traded. Note where a signal printed live, reload the chart an hour later, and check whether it sits in the same place. Our walkthrough of how repainting indicators fake backtests shows what that looks like bar by bar.

RelicusRoad Pro is built to pass that reload test. Its signals lock when the candle closes and stay where they printed, so the trade list you export records what was on the chart at the moment you would have clicked. That is not a promise about results. It is the minimum condition for a simulation of those results to be worth reading.

Frequently asked questions

What is Monte Carlo simulation in trading? It is a way of re-running your own trade history in many random orders to see how else it could have turned out. You take the list of closed trades a strategy produced, draw from that list again and again in a different sequence, and rebuild the equity curve each time. After many runs you have a spread of outcomes rather than a single line: a range of final balances, a range of worst drawdowns, and a range of longest losing streaks. The backtest you were shown is one member of that spread.

Why does the order of trades matter if the trades are the same? Because drawdown depends on clustering, and clustering is random. Ten losses spread evenly through a year barely register on the equity curve. The same ten losses arriving back to back produce a drawdown deep enough to breach a prop firm limit, trip a risk rule, or end your confidence in the system. Your account balance also changes as you go, so with percentage-based sizing the trade that lands after a losing run is a smaller trade in cash terms. Order changes the arithmetic, not only the mood.

How many simulation runs do you need? Enough that the answer stops moving. A few hundred runs already show the shape of the distribution, and a few thousand settle the deeper percentile readings that matter for sizing. The more useful question is how many trades the simulation is drawing from. Resampling a list of thirty trades tells you about thirty trades, however many runs you do, and a thin sample dressed up in a thousand simulations is still a thin sample.

Does Monte Carlo analysis prove a strategy works? No. It measures the variability of results you already have, so it inherits every flaw in them. If the rules were tuned until the backtest looked good, the simulation reshuffles trades that owe their existence to that tuning. If the signals redrew themselves after the fact, the trade list contains entries you could never have taken live. Monte Carlo answers how rough the ride can get given these results. Walk-forward testing and live forward testing are what tell you whether the results are real.

What does Monte Carlo say about position size? It gives you a drawdown figure to size against that is harsher than the one in the backtest, which is the point. Take the deep end of the simulated drawdown range, compare it with the loss you can take without changing your behaviour or breaching an account rule, and scale risk per trade down until the two meet. Most traders discover their size was set against the friendliest ordering in the set rather than a realistic bad one.

Run the reshuffle on your own journal this week, then check whether your signals would survive the reload test with RelicusRoad Pro.

Written for RelicusRoad by RelicusDigital.com.

Share:
Risk Management

Keep going on this topic

Start with the main guide

Position Sizing: The Boring Math That Keeps Traders Alive

A plain-English guide to position sizing forex with worked examples: turn a fixed percentage of risk into a lot size on any pair, and keep your losses uniform.

Tools to try

Single RelicusRoad indicators for MT4 and MT5, each one standalone.

All tools