Free Monte Carlo simulator for traders: 3 tool types, 3 outputs
A free Monte Carlo calculator comes in three forms: a spreadsheet, a short script or a function inside a backtesting platform. Each one resamples your closed-trade list thousands of times and reports the spread of drawdowns; what decides the quality is the trade list you feed in and whether the tool shows percentiles, a ruin share and where your backtest drawdown sits.
By Soren Huang · Published · updated · Editorial policy
Contents
- Where can I find a free Monte Carlo calculator for a trading strategy?
- Is a spreadsheet enough, or do I need a script or platform tool?
- What do I enter in a Monte Carlo calculator?
- Which outputs must a Monte Carlo simulator show?
- Which setup mistakes make the result meaningless?
- Frequently asked questions
- References
Where can I find a free Monte Carlo calculator for a trading strategy?
A search for "Monte Carlo simulation calculator free" turns up three kinds of tool: a spreadsheet, a short script, or a resampling function inside a backtesting platform. Each takes your closed-trade list, reshuffles or resamples it thousands of times and reports the spread of drawdowns. Quality depends on the inputs and outputs, not on the price.
A Monte Carlo simulation is a test that rebuilds a strategy's equity curve many times from its own trades, in a new order or with new draws, so you can see the range of drawdowns the same edge could have produced. Think of a deck of cards where each card is one trade. The total of the deck never changes, but the longest run of bad cards changes every time you shuffle. One backtest is one deal of that deck.
The three free sources, in order of setup effort:
- A spreadsheet. One column of trades, a random-number function, a running sum and a drawdown formula. The step-by-step build is in Monte Carlo simulation in Excel.
- A short script. Twenty to forty lines in any language that has a random function. It handles thousands of runs and position sizing per trade without slowing down.
- A platform function. Some backtesting and charting platforms include a Monte Carlo report next to the strategy report. It needs no setup, but the sampling method is fixed and not always documented.
A Monte Carlo simulator is a different tool from a practice simulator. Free day trading simulators replay a market so you can practise placing orders. A Monte Carlo simulator never looks at prices at all; it only rearranges your finished trade list. What the method can and cannot tell you is covered in Monte Carlo backtest: what it shows and what it doesn't. This article is about choosing the tool and setting it up so the result means something.
Is a spreadsheet enough, or do I need a script or platform tool?
A spreadsheet is enough for a few hundred trades and a thousand runs; a script is the better choice when you want 5,000 runs or more, or position sizing that changes with equity; a platform function saves setup time but hides how it samples. The choice comes down to three numbers: how many trades you have, how many runs you want, and how much you need to see inside the method.
Two terms decide the "see inside" part. The sampling method is the rule for how each run picks trades: either it reshuffles the order of the same trades, or it draws trades again with replacement. A seed is the starting number a random generator uses; the same seed produces the same sequence of draws, so a run can be repeated exactly and two people can check the same result.
| Spreadsheet | Script | Platform tool | |
|---|---|---|---|
| Setup time | One to two hours the first time | One hour if you can code, longer if not | Minutes |
| Practical trade count | Up to a few hundred | Any | Any |
| Practical number of runs | Up to about a thousand before it gets slow | Tens of thousands | Fixed by the tool |
| Position sizing per trade | Possible with an R column, awkward | Yes | Sometimes |
| Sampling method visible | Yes, you wrote it | Yes, you wrote it | Only if documented |
| Repeatable with the same seed | Rarely (sheet random functions re-roll) | Yes | Sometimes |
Trade count sets the limit for the spreadsheet because every run touches every trade. A few hundred trades and a thousand runs is a large sheet; 5,000 runs makes each recalculation slow and the random functions re-roll each time, so you cannot repeat a result. A script has neither problem, and adding percentage risk per trade is one extra line.
If you use a platform function, read its documentation for two facts: does it reshuffle or resample, and can you set a seed or the number of runs? When neither is stated, run it twice. If the 95th percentile drawdown moves by a large amount between the two runs, the tool uses too few runs to read the tail, and you should rebuild the test in a sheet or script.
What do I enter in a Monte Carlo calculator?
Three inputs decide the result: the closed-trade list after commission and slippage, the risk per trade or contract count you will actually trade, and the number of runs. Everything the simulator reports is a rearrangement of these three, so an hour spent on the inputs is worth more than an hour spent choosing the tool.
- The closed-trade list. A closed-trade list is the table of every finished trade with its net result, one row per trade, in the order the trades happened. Enter each result in money or in R. R is the amount risked on one trade, so a trade that returned twice its risk is +2R and a full loss is −1R. Use net results. A list before costs produces a drawdown range for a strategy you cannot trade.
- Risk per trade or contract count. With a fixed contract count, each trade keeps its money result and the drawdown comes out in money. With a percentage of equity, each trade's R result is scaled by the equity before the trade, so the path compounds. Use the sizing you will trade live; the position size calculator turns an account risk and a stop distance into a contract count you can enter here.
- The number of runs. A thousand runs for a first look. 5,000 or more when you want to read the 95th or 99th percentile. Each run builds one equity path, and the collection of paths is what the outputs are read from.
The box below shows what a usable input looks like. The run tested the one candidate that an automated search kept out of about a thousand it tried (the box gives the exact count), chosen for its return against its drawdown, on NQ daily bars from 2019-01-02 to 2025-06-30, long and short, one contract, with $20 commission and $10 slippage charged on every trade. The rule is a stand-in: an RSI rule as the only entry and exit, with no stop, no target and no filters, chosen because it produces a plain trade list, not because it is the subject of this article. The 328 trades came from the trades table of the Performance Report of AlphaPrime (Valynox), which lists every closed trade with its net result, the one column a simulator needs.
Source: AlphaPrime product engine (CPU), run 2026-10-31. NQ daily bars, 2019-01-02 to 2025-06-30, long and short, 1 contract, $20 commission and $10 slippage per trade.
| Number | Result |
|---|---|
| Net profit (closed trades) | $174,845 |
| Max drawdown | $75,475 |
| Trades | 328 |
| Win rate | 57.93% |
| Profit factor | 1.31 |
| Average trade | $533.06 |
| Time in market | 36.32% |
Read the box as an input, not as a verdict. Because this candidate was picked after the fact as the best of about a thousand, its backtest flatters it: among many variants tested on the same data, the best-looking one looks better than its true edge (Bailey, Borwein, López de Prado and Zhu, 2014). That is exactly why the $75,475 drawdown belongs in a simulator and not in an account-size decision. The 328 rows are a good size for the job: enough trades that resampling does not just repeat a handful of large winners, and every row already net of $30 in costs. The numbers describe one backtest of a stand-in rule, not what the rule or a reader would earn.
Which outputs must a Monte Carlo simulator show?
A useful simulator shows three things: the drawdown distribution as percentiles (median, 95th and worst), the share of runs that reached your ruin level, and where your single backtest drawdown sits inside that distribution. A backtest drawdown is one draw from a wide range, not the number to size an account on.
Three terms carry this section. Maximum drawdown is the largest fall from an equity peak to the following low before a new peak; the drawdown calculator computes it from any equity series. A percentile is the value that a given share of runs stayed under: the 95th percentile drawdown is the drawdown that 95 of every 100 runs did not exceed. A ruin level is the loss at which you would have to stop trading the strategy, for example the point where the account can no longer post margin, or a drawdown you decided in advance is too deep to keep trading through.
- Drawdown percentiles. Report at least the median, the 95th percentile and the worst run. The median tells you what a typical path looked like. The 95th tells you how deep a bad but ordinary path went. Use the 95th, not the worst, for sizing, because the worst run grows every time you add runs.
- Ruin share. Count the runs whose drawdown reached the ruin level and divide by the total runs. This turns the whole distribution into one number you can argue about with yourself: is one run in fifty acceptable, or one in five hundred?
- Backtest percentile. Mark where the single backtest drawdown falls. A backtest that lands near the 20th percentile had a kind sequence of trades; the same trades in another order would have hurt more. A backtest near the 90th had an unkind sequence.
Hypothetical example
A strategy has 300 net trades, an average trade of $400 and a backtest maximum drawdown of $18,000. You resample the list with replacement 5,000 times at one contract. The median maximum drawdown is $22,000, the 95th percentile is $36,000 and the worst run is $61,000. With a ruin level of $45,000, 100 runs out of 5,000 reach it, a ruin share of 2%. The backtest drawdown of $18,000 sits near the 30th percentile, so the historical sequence was kinder than most. An account sized for $18,000 plus margin would have been too small in about seven of every ten resampled paths; sizing for $36,000 plus margin covers nineteen in twenty.
Expect the drawdown range to widen as the trade list grows: the expected worst peak-to-trough fall of a series grows with its length even when the edge per trade stays the same (Magdon-Ismail and Atiya, 2004). That is a second reason to resample a long list rather than read the drawdown of a short one. When you trade several strategies in one account, run the simulation on the combined trade list from a portfolio backtest of combined strategies, because the drawdown of the whole is not the sum of the drawdowns of the parts.
Which setup mistakes make the result meaningless?
Most bad Monte Carlo results come from five setup errors: gross trades without costs, trusting a reshuffle as if it tested the mix of trades, resampling a tiny trade list, running a fixed money risk when live trading uses a percentage, and using too few runs to read the tail. Each has a fix that takes minutes.
- Gross trades without costs. Costs change every row, and on a strategy with many small trades they change the sign of the average trade. The simulation then describes a strategy that does not exist. Fix: enter net trades, or subtract the round-trip cost from every row before the first run.
- Reshuffling and over-trusting the result. Reshuffling is sampling without replacement: every trade appears exactly once in a new order, so the final equity is identical in every run and only the path changes. Resampling with replacement draws trades at random so a trade can appear twice or not at all; this is the bootstrap idea (Efron, 1979). Reshuffling answers one question only, how much the order could have hurt, and it cannot produce a worse mix of trades than the one you had. Treat its 95th percentile as a floor. Resample with replacement when you want the mix tested too.
- Resampling a tiny trade list. With a few dozen trades, every resample is built from the same few large winners and losers, so the distribution is a picture of those few trades rather than of the strategy. Fix: gather more trades first, from a longer history or from the same rule on related markets, before reading the percentiles.
- Fixed money risk when live trading uses a percentage. The two sizing methods produce different drawdown paths: percentage sizing shrinks positions in a losing streak and grows them in a winning one, so the money drawdown and the percentage drawdown move differently. Fix: run the sizing you will trade, and read the drawdown in percent of equity when the sizing compounds.
- Too few runs. With 200 runs, the 95th percentile is set by the ten worst runs and jumps each time you press recalculate. With 5,000 runs it rests on 250 runs and settles. Fix: use 5,000 runs or more for the 95th percentile and 10,000 for the 99th, and read the worst run only as a curiosity, since it keeps growing as runs are added.
The next step is a one-hour task. Export your closed-trade list net of costs, confirm the row count is in the hundreds, and resample it with replacement 5,000 times at the contract count you will trade. Then write down two numbers: the 95th percentile drawdown and the percentile where your backtest drawdown sits. If the backtest sits below the median, the account you had in mind was sized for a lucky deal of the deck; resize it from the 95th percentile and run the test again with double the slippage.
Frequently asked questions
How many runs do I need in a Monte Carlo simulator?
Use a thousand runs for a first look and 5,000 or more when you read the 95th percentile drawdown. The 95th percentile from 200 runs rests on only ten paths and changes each time you recalculate. The 99th percentile needs 10,000 runs for the same reason. More runs do not improve the input; they only make the tail readable.
Should I shuffle the trade order or resample with replacement?
Shuffling keeps every trade exactly once, so it only tests how the order could have hurt, and its drawdown spread is a floor. Resampling with replacement lets trades repeat or drop out, so it also tests whether a worse mix of the same kind of trades would have broken the account. Run both: the gap between them tells you how much of the risk sits in the mix rather than in the sequence.
Can a Monte Carlo simulation tell me whether my strategy will make money?
No. It rearranges the trades you already have, so it cannot find an edge the backtest did not contain, and it inherits any inflation from choosing the best candidate after the fact. It answers a narrower question: given these trades, how deep can the drawdown get in an ordinary unlucky sequence. Use walk-forward and out-of-sample tests for the question about edge, and the simulation for the question about account size.
What is a good Monte Carlo result?
A result you can act on, not a flattering one. The 95th percentile drawdown fits inside the account you plan to trade with margin to spare, the ruin share at your chosen level is one you would accept, and the backtest drawdown does not sit at the kind end of the distribution. If the backtest drawdown sits near the bottom percentiles, the historical sequence was lucky and the account should be sized from the simulation instead.
References
- Bailey, D. H., Borwein, J., López de Prado, M., & Zhu, Q. J. (2014). Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance. Notices of the American Mathematical Society, 61(5), 458–471.
- 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.

