Monte Carlo simulation for trading systems, in plain English
Monte Carlo simulation reshuffles the order of your trades thousands of times to reveal a range of drawdowns and returns, not one single lucky equity curve.
Your backtest produced one equity curve. That curve is a single ordering of the trades, the exact sequence in which the wins and losses happened to fall. Shuffle that same set of trades into a different order and you get a different curve, a different worst drawdown, sometimes a dramatically different one, from identical trades. Monte Carlo simulation is how you look at all those orderings at once, instead of trusting the one accident of history you happened to test.
The name sounds like a casino, and that is roughly the idea: run the experiment thousands of times with the luck reshuffled, then read the range of outcomes rather than a single result. Here is what it does, why it beats staring at one curve, and how to read what it tells you, in plain English.
What a single backtest curve hides
A backtest gives you one number for maximum drawdown: the deepest the equity fell from a peak, in that one historical order. It feels definitive. It is not. That worst drawdown depended on the losses clustering the way they happened to cluster. If three losing trades that were spread across two years had instead landed back to back, the drawdown would have been deeper, and nothing about the strategy would have changed.
So the single curve answers a slightly useless question: "what happened in this exact order?" The question you actually care about is "how bad could a run of these same trades plausibly get?" One ordering cannot answer that. You need many.
Your backtest's worst drawdown is one sample, not the limit. Monte Carlo exists to show you that the deepest drawdown you have seen is almost certainly not the deepest you will see, and to put a number on how much worse it can plausibly get. Plan around that range, not around the single figure the report happened to print.
What Monte Carlo actually does
The common version is simple enough to picture. Take the list of trade results from the backtest, every win and every loss as a dollar figure. Then:
- Shuffle the order of those trades at random.
- Build the equity curve for that shuffled order and record its total return and its worst drawdown.
- Do it again. And again. A few thousand times, or tens of thousands.
Variations exist. Some resample with replacement, some randomize position sizing or drop a percentage of trades to test robustness. The core idea is constant: replace one lucky ordering with the whole range of orderings.
Reading the output
Monte Carlo does not give you a single answer. It gives you percentiles, which is a more honest kind of answer. The output usually reads like this:
Why it beats a single drawdown number
Two systems can show the same historical drawdown and have completely different risk. One might be robust, with most orderings clustering near that figure. The other might have gotten lucky, with a long tail of far worse orderings that simply did not happen in the tested sequence. The single number cannot tell them apart. The distribution can. This is closely related to the risk of ruin, which asks the same question from the account's side: given this edge and this bet size, what is the chance a losing streak ends you before the edge pays off?
What Monte Carlo cannot tell you
It is a powerful tool with real blind spots, and pretending otherwise is its own trap.
- It reuses the same trades. Reshuffling assumes the future draws winners and losers from the same pot as the past. If the market regime changes and the edge decays, no amount of reshuffling will warn you. That failure mode belongs to why strategies stop working, not to Monte Carlo.
- It usually assumes trades are independent. If your losses genuinely cluster in certain conditions, plain reshuffling can understate the real-world streaks.
- It cannot fix a bad sample. Feed it an overfit strategy or too few trades and you get a beautifully detailed distribution of a meaningless result. Garbage in, distributed garbage out.
This is why Monte Carlo sits alongside, not instead of, honest out-of-sample testing. The order-shuffling shows you the luck inside a fixed set of trades. In-sample versus out-of-sample testing shows you whether the trades themselves generalize. You want both, and you want enough trades for either to mean anything, a threshold discussed in how many trades a backtest needs.
How to use it before you fund an account
Practically, Monte Carlo turns into two decisions. First, capital: fund around the 95th-percentile drawdown, not the single backtest figure, so an ordinary unlucky ordering does not breach your account's limit. Second, expectations: look at the spread of returns, not just the median, so a below-average year does not read as a broken system when it is simply a lower draw from a distribution you already knew was wide. Both are the same discipline the honest treatment of the headline number asks for, laid out on the performance page and framed inside the wider algorithmic trading guide.
Frequently asked questions
What is a Monte Carlo simulation in trading?
It is a technique that takes the results of a backtest and reshuffles the order of the trades thousands of times to produce a range of possible equity curves. Instead of one historical drawdown and one return, you get a distribution of them, which shows how much the outcome depended on the lucky order the trades happened to fall in. It is used to estimate a realistic worst case rather than trusting a single sequence.
Why not just trust the backtest's drawdown?
Because that drawdown is one sample from a wide range of possibilities, produced by the specific order the losses clustered in. Reorder the same trades and the worst drawdown often gets deeper. Monte Carlo shows you how much deeper it can plausibly get, so you fund and size around a realistic bad case instead of the friendliest ordering that history happened to hand you.
How many simulations are enough?
Most practitioners run at least a few thousand iterations, and tens of thousands is common and cheap on a modern computer. The exact count matters less than having enough trades feeding it. A few thousand runs over a strategy with only fifty trades produces a confident-looking distribution of a sample too small to trust, so fix the trade count first, then run plenty of iterations.
Does a good Monte Carlo result mean the system will work?
No. Monte Carlo only tells you about the luck inside a fixed set of trades. It says nothing about whether those trades will keep occurring. If the market regime changes or the strategy was overfit, the future will not draw from the same pot, and the distribution will have been describing a world that no longer exists. It is a test of order-luck, not of whether the edge is real or durable.
Does NinjaTrader run Monte Carlo?
NinjaTrader 8's Strategy Analyzer produces the trade-by-trade report that a Monte Carlo analysis needs, and traders commonly export that trade list into a dedicated Monte Carlo tool or a spreadsheet to run the reshuffling. Whichever tool you use, the input is the same list of individual trade results, so the quality of the analysis still depends entirely on the quality and size of that underlying sample.
- Perry J. Kaufman, "Trading Systems and Methods" (Monte Carlo analysis of system results).
- David Aronson, "Evidence-Based Technical Analysis" (sampling variability and out-of-sample testing).
- CFTC, "Customer Advisory: Be Cautious of Trading Systems and Robots."
Educational content, not investment advice. Trading futures involves substantial risk of loss and is not suitable for every investor. Any reference to Algomyth results is hypothetical, simulated over historical data, and shown in full on the performance page; past performance does not guarantee future results.
Twenty years, drawdowns included
Every engine publishes its full history repriced at today's values, with the losing years and the deepest drawdowns printed as plainly as the profits. Verify first, decide later.

