VALYNOXSTRATEGY RESEARCH TECHNOLOGY
AlphaPrimeAlphaPrime
ACADEMY / Backtesting and validation

How many Monte Carlo simulations are enough? A thousand vs 10,000

About a thousand runs settle the median drawdown, about 10,000 settle the 95th and 99th percentile tails, and no number of runs repairs a trade list that is too short to shuffle. The trade count sets a floor on uncertainty that more runs cannot lower.

By · Published · updated · Editorial policy

Contents
  1. How many Monte Carlo simulations are enough?
  2. Why does the answer depend on the statistic you read?
  3. Is a thousand runs enough, or do you need 10,000?
  4. Does the trade count matter more than the number of runs?
  5. Why does Monte Carlo give a different result each time you run it?
  6. Frequently asked questions
  7. References

How many Monte Carlo simulations are enough?

How many Monte Carlo simulations are enough depends on the number you read: about a thousand runs settle the median drawdown, about 10,000 settle the 95th and 99th percentile tails, and no number of runs repairs a trade list that is too short to shuffle. The trade count, not the run count, sets the floor.

A Monte Carlo simulation of a trading strategy is a test that takes the trades a backtest produced, puts them in a new random order many times, and records the maximum drawdown of each new order. The result is a distribution of drawdowns instead of the single one the backtest showed. The method is explained from the start in what Monte Carlo simulation is, with a futures example, and you can try it on your own trade list with the free Monte Carlo simulator. The claim this article defends is simple: the run count is the cheap half of the question, and the trade count is the expensive half.

Why does the answer depend on the statistic you read?

The median max drawdown stops moving after a few hundred runs, while a tail percentile keeps moving until there are enough rare worst runs to count. A percentile is the value below which a given share of the runs fall: the 95th percentile drawdown is the level that 95 percent of the shuffled orders stayed under. The median is the 50th percentile.

Think of measuring the height of people in a town. The average height settles after you measure a few hundred people. The height of the tallest one percent settles only after you have measured enough people to have a handful of very tall ones in the sample. The median drawdown is built from every run, so each new run adds a little information. The 99th percentile is built from the worst one percent of runs, so at a thousand runs it rests on ten orders, and a single unusual order can move it a long way. That is why a Monte Carlo backtest shows that your real max drawdown is probably worse than the single backtest number: the tail is where the information is, and the tail is the slowest part to settle.

Hypothetical drawdown estimates against the number of runs on a log axis: the median line flattens by about a thousand runs, the 95th percentile near 10,000, and the 99th percentile still wobbles at 10,000 and flattens only near 100,000 The tail settles last Illustration: drawdown estimate vs runs 99th 95th Median 100 1k 10k 100k Deeper in the tail, more runs needed. So: match runs to the statistic.
Percentile estimates settle at different speeds. The farther into the tail you read, the more runs it takes before the line stops moving.

Is a thousand runs enough, or do you need 10,000?

A thousand runs is enough when you read the median or the 75th percentile, 10,000 is the practical floor for a 95th or 99th percentile drawdown estimate, and going higher mostly buys more decimal places. The one formula worth knowing counts the runs that actually define a tail:

runs that define the tail = total runs × (1 − percentile as a fraction)

Here total runs is how many shuffled orders you generated, and percentile as a fraction is 0.95 for the 95th percentile or 0.99 for the 99th. At a thousand runs the 95th percentile rests on 50 orders and the 99th on 10. At 10,000 runs those become 500 and 100. Fifty data points give a rough estimate; five hundred give a steady one. For a routine check, a thousand runs read at the median and the 75th percentile is a fair trade of time for information. For a decision about account size, where you want the 95th percentile, use 10,000.

A grid of drawdown statistics against run counts: the median and 75th percentile are settled from a thousand runs, the 95th percentile rests on only 50 orders at a thousand runs and settles at ten thousand, and the 99th percentile is still moving until a hundred thousand runs Which run count is enough? Settled Still moving 1k runs 10k runs 100k runs Median 75th 95th 99th 500 5k 50k 250 2.5k 25k 50 500 5k 10 100 1k At 1k runs, tails rest on few orders. So: use 10k runs for a 95th.
Which run count is enough for which statistic. The number in each cell is how many shuffled orders the estimate actually rests on.

If you build the test yourself, the step-by-step guide to a Monte Carlo simulation in Excel shows where the run count enters, and the overview of free Monte Carlo simulators for traders compares what the three tool types produce.

Does the trade count matter more than the number of runs?

Yes: the simulation reorders the trades the backtest produced, so a list of 109 trades leaves the drawdown estimate uncertain in a way that 100,000 runs cannot reduce, because every run reuses the same 109 results. Resampling a sample tells you about the sample; Efron (1979) built the bootstrap on exactly this idea, and its limit is the same. A new order of the same trades cannot invent a losing streak larger than the trades allow, and it cannot show what the strategy does in a market year it never traded.

The run below is from AlphaPrime (Valynox): a search on ES daily bars from 2019-01-02 to 2025-06-30, long and short, one contract, with commission and slippage charged on every trade. It is one candidate the search kept out of more than a thousand it tried, chosen for its return against its drawdown, and picking the kept one after the fact flatters it. The rule is a stand-in built from a standard Volume indicator, not the subject of this article.

Source: AlphaPrime product engine (CPU), run 2026-10-31. ES daily bars, 2019-01-02 to 2025-06-30, long and short, 1 contract, $20 commission and $25 slippage per trade.

NumberResult
Net profit (closed trades)$108,520
Max drawdown$33,032.5
Trades109
Win rate61.47%
Profit factor1.659
Average trade$995.6
Time in market59.08%

The number that matters here is 109 trades. Shuffle them a thousand times or 100,000 times and the median drawdown will converge, but it converges on the median of orders of those 109 results, which is a small and flattering sample. Nothing in the run says the rule earned that result or that a reader should expect it; it is a kept candidate used to show what a short trade list does to a distribution.

The Monte Carlo distribution of max drawdown built from this run's 109 trades. Look at how wide the distribution is compared with the single backtest drawdown, and how much of that width comes from a short trade list rather than from too few runs.
The Monte Carlo distribution of max drawdown built from this run's 109 trades. Look at how wide the distribution is compared with the single backtest drawdown, and how much of that width comes from a short trade list rather than from too few runs. ES · daily · 2019-01-02 to 2025-06-30 · CPU engine backtest

Two sources of uncertainty sit on top of each other. Run noise is the wobble from generating a finite number of random orders; more runs shrink it. Trade-sample uncertainty is the gap between the 109 trades you have and the trades the strategy would produce over a longer history; only more trades shrink it, from a longer history or from walk-forward windows that add out-of-sample trades. Walk-forward analysis inside strategy validation is the step in AlphaPrime that adds those out-of-sample trades before a candidate reaches a drawdown test, and the method is laid out in walk-forward analysis: the one backtest number you could have traded.

Illustration of two stacked sources of drawdown uncertainty for the same trade list: the run noise part shrinks from a thousand to 10,000 to 100,000 runs, while the trade-sample part stays the same width; only more trades shrink it More runs can't add trades Illustration: the same trade list Trade sample Run noise 1k runs 10k runs 100k runs Runs shrink only the run noise. So: add trades via walk-forward.
Two sources of uncertainty, only one of which more runs can shrink.

Why does Monte Carlo give a different result each time you run it?

Each run draws a different random order of trades, so the percentiles move a little from run to run unless you fix the random seed, and the size of that movement is itself the sign of whether you have run enough simulations. A random seed is the starting number a computer uses to produce its sequence of random choices; the same seed gives the same sequence, and the same sequence gives the same shuffled orders. Metropolis and Ulam (1949) named the method after a casino for this reason: the answer is built from chance, and chance differs each time you draw.

Use this to your advantage. Run the test two or three times with different seeds and compare the percentile you care about. If the 95th percentile drawdown moves by a few percent between seeds, the run count is high enough for that statistic. If it moves by a quarter of its value, raise the run count until the spread closes. Then fix the seed so that a colleague, or you next month, can reproduce the exact figure.

Hypothetical example

Three runs of a thousand shuffles with different seeds give 95th percentile drawdowns of $14,100, $16,800 and $13,400, a spread of about a quarter. Three runs of 10,000 shuffles give $15,200, $15,500 and $15,300, a spread of about two percent. The second set is settled; the first was not.

Illustration: the same six trades shuffled with different seeds give two different 95th percentile drawdowns, while the same seed gives the same order and the same number; the spread between seeds is the convergence check Same seed, same number 95th pct drawdown, illustration Different seed Same seed $14.1k $16.8k $15.3k $15.3k Numbers differ Numbers match The spread between seeds is the test. So: check first, then fix the seed.
The seed decides whether two runs are identical. The spread between seeds is the convergence check.

A practical next step: take your own trade list, run it at a thousand shuffles with two different seeds, then at 10,000 with the same two seeds, and write down the 95th percentile drawdown each time. The run count at which the two seeds agree within a few percent is the one to use for that strategy. Then count the trades in the list, because that number tells you how much to trust the distribution at all.

Frequently asked questions

How many Monte Carlo runs until the result is stable?

It depends on which number you read. The median drawdown is usually stable after about a thousand runs, the 95th percentile after about 10,000, and the 99th percentile needs more. The test for stability is to repeat the simulation with a different random seed and check how much the statistic moves; when the movement is a few percent, you have enough runs.

Should I fix the random seed in a Monte Carlo simulation?

Fix it after you have checked convergence, not before. First run the simulation with two or three different seeds to see how much the percentiles move; that spread tells you whether the run count is high enough. Then set a fixed seed so the exact figure can be reproduced later and compared across strategies.

Can I run Monte Carlo on a strategy with only 30 trades?

You can run it, and it will produce a distribution, but the distribution only describes new orders of those 30 trades. It cannot show a losing streak the sample never contained or a market period the strategy never traded. Treat the result as a hint and look for ways to add trades, such as a longer history or walk-forward out-of-sample windows, before relying on the drawdown percentile.

Which matters more, trade count or number of simulations?

Trade count. More simulations shrink the noise in estimating the distribution, but the distribution itself is built from the trades you have, and no number of shuffles changes that. A strategy with several hundred trades and a thousand runs gives a more trustworthy drawdown range than a strategy with a hundred trades and 100,000 runs.

References

  • Metropolis, N., & Ulam, S. (1949). The Monte Carlo Method. Journal of the American Statistical Association, 44(247), 335–341.
  • Efron, B. (1979). Bootstrap Methods: Another Look at the Jackknife. The Annals of Statistics, 7(1), 1–26.
  • Magdon-Ismail, M., & Atiya, A. F. (2004). Maximum Drawdown. Risk, 17(10), 99–102.