Skip to main content
Risk-of-Ruin Math

Monte Carlo Analysis in Trading

Pomegra Learn

How Does Monte Carlo Analysis Reveal True Trading Risk?

Monte Carlo simulation is one of the most powerful tools in a trader's risk arsenal. Rather than assuming trades follow a predictable pattern, Monte Carlo runs thousands of randomized scenarios based on your actual trade history. Each scenario reshuffles the sequence of your wins and losses, testing whether your edge survives bad streaks, market shocks, and the unpredictable order in which profits and drawdowns arrive. This method exposes the real risk of ruin—not just the theoretical version, but the practical one your account faces when the worst happens at the worst time.

Quick definition: Monte Carlo simulation is a computational technique that generates thousands of randomized versions of your trading outcomes by reshuffling the sequence of your trades while keeping the win rate, average win, and average loss constant. Each scenario tests your account against a different possible ordering of market results, revealing the probability and magnitude of ruin across diverse conditions.

Key takeaways

  • Monte Carlo simulation reshuffles trade sequences to stress-test your strategy against thousands of realistic scenarios
  • The method uncovers hidden risks that fixed math (like Kelly Criterion alone) cannot detect
  • Running 10,000+ simulations produces a distribution of outcomes, showing best case, worst case, and statistical likelihood of ruin
  • Real traders use Monte Carlo to set position sizing, detect over-optimization, and validate edge before risking capital
  • The technique requires only three inputs: your historical trades, account size, and position sizing rules

Why Simple Math Isn't Enough

Most traders rely on a single formula—Kelly Criterion, risk-per-trade rules, or a fixed percentage—to size positions. But these assume your wins and losses arrive in a predictable rhythm. In reality, markets serve up streaks. You might hit five losing trades in a row, then six winners, then three more losses. The order matters enormously for account survival.

Consider a strategy with a 55% win rate, average win of $200, and average loss of $100. On average, you're profitable. But what if your first ten trades are losses? Your account shrinks 10 × $100 = $1,000 before your win rate stabilizes. If you started with $2,000, you've lost half your capital before the edge even has a chance to prove itself. A formula alone won't tell you whether your account can survive that scenario.

Monte Carlo answers the question: "Across all possible orderings of my trades, how often does my account get wiped out?"

The Core Mechanics: Randomization with Constraint

A Monte Carlo simulation in trading works like this:

  1. Extract your trade history. Gather your last 30–100 real trades (or more). Record the profit or loss of each trade.
  2. Reshuffle. Randomly rearrange the sequence of those trades. The wins stay the same, the losses stay the same, but their order changes.
  3. Simulate the account. Starting with your initial capital and a fixed position size, apply each reshuffled trade in order, recalculating the account balance after every trade.
  4. Record the outcome. Did the account survive to the end? What was the largest drawdown? Did the account ever drop to zero or below?
  5. Repeat thousands of times. Each iteration represents a plausible sequence of real trades.

After 10,000 iterations, you have a distribution of outcomes: some scenarios where the account thrives, others where it gets crushed, and most somewhere in between. This distribution is your real risk profile.

The Mathematics Behind the Simulation

The key formula for account balance after each trade is:

New Balance = Old Balance + (Trade Result × Position Size)

For example, if your account holds $10,000 and you risk $100 per trade:

If Trade Result = +$200 (win):
New Balance = $10,000 + ($200) = $10,200

If Trade Result = -$100 (loss):
New Balance = $10,000 + (-$100) = $9,900

Across a shuffled sequence, your account fluctuates. The simulation tracks the maximum drawdown—the largest peak-to-trough decline in the sequence—and the final balance after all trades.

The probability of ruin is calculated as:

Ruin Probability = (Number of scenarios where balance ≤ 0) / (Total number of scenarios)

If 50 out of 10,000 scenarios end in ruin, your ruin probability is 50 / 10,000 = 0.005 or 0.5%.

Building a Real Monte Carlo Scenario

Let's walk through a concrete example. Assume your last 20 trades produced these results:

Trade 1: +$150
Trade 2: -$100
Trade 3: +$200
Trade 4: -$50
Trade 5: +$180
Trade 6: -$120
Trade 7: +$160
Trade 8: -$80
Trade 9: +$190
Trade 10: -$90
Trade 11: +$170
Trade 12: -$110
Trade 13: +$210
Trade 14: -$60
Trade 15: +$140
Trade 16: -$130
Trade 17: +$220
Trade 18: -$70
Trade 19: +$185
Trade 20: -$105

Your starting capital is $5,000.

One possible reshuffled sequence might be:

Trade 1 (reshuffled): -$130
Trade 2 (reshuffled): -$110
Trade 3 (reshuffled): -$100
Trade 4 (reshuffled): -$90
Trade 5 (reshuffled): -$80
Trade 6 (reshuffled): +$150
Trade 7 (reshuffled): +$200
Trade 8 (reshuffled): +$210
...

Now calculate the running balance:

Start: $5,000
After Trade 1 (−$130): $5,000 − $130 = $4,870
After Trade 2 (−$110): $4,870 − $110 = $4,760
After Trade 3 (−$100): $4,760 − $100 = $4,660
After Trade 4 (−$90): $4,660 − $90 = $4,570
After Trade 5 (−$80): $4,570 − $80 = $4,490
After Trade 6 (+$150): $4,490 + $150 = $4,640
After Trade 7 (+$200): $4,640 + $200 = $4,840
After Trade 8 (+$210): $4,840 + $210 = $5,050
...

In this particular shuffled scenario, the account dips to $4,490 (a drawdown of $510 or 10.2%) before recovering. The account survives.

But in another shuffled sequence, if all ten losses cluster at the start—a $100 + $100 + $100... streak—the account would lose $1,000 immediately and fall to $4,000. Whether it survives depends on whether subsequent wins can recover before capital runs out.

By running 10,000 such shuffles, you observe how often bad luck breaks the account.

Decision tree

Why Position Sizing Changes Everything

The same trade history with different position sizes produces radically different ruin probabilities. A trader risking $50 per trade on a $5,000 account has a much lower ruin probability than one risking $200 per trade on the same account.

Example comparison using the 20-trade sequence above:

  • Scenario A: Risk $50 per trade → Expected ruin probability: <1%
  • Scenario B: Risk $150 per trade → Expected ruin probability: 5–8%
  • Scenario C: Risk $300 per trade → Expected ruin probability: 25–40%

The relationship isn't linear. Doubling position size doesn't double ruin risk—it often triples or quadruples it. This is why Monte Carlo is so valuable: it reveals the non-linear threshold where your position sizing crosses from "acceptable" to "dangerous."

Detecting Over-Optimized Strategies

Monte Carlo also reveals over-optimization. A strategy that looks stellar in backtesting—say, 70% win rate with $500 average win—might have been curve-fitted to historical data. When you run Monte Carlo on such a strategy using unrealistic win/loss parameters, the real-world drawdowns look enormous.

A robust strategy shows:

  • Ruin probability under 5% at your chosen position size
  • Maximum drawdown in the 10th–90th percentile that you can emotionally tolerate
  • Consistency across multiple position sizes (if you halve the risk, ruin probability should fall below 1%)

A strategy where ruin probability jumps from 3% to 25% with a small position size increase is over-optimized and dangerous.

The Role of Sample Size

Your trade history must be large enough to run valid simulations. With only 10 trades, shuffling produces limited unique scenarios—some permutations repeat, and the sample is too small to represent your true edge. Most practitioners use at least 30 trades; 50–100 is ideal for forex or day traders who log many trades weekly.

If you have fewer than 20 trades, Monte Carlo still works, but interpret the results as "directional" rather than definitive. You need more live trading data before the probabilities stabilize.

Common Implementation Tools

Professional traders and prop firms use:

  • Custom Python scripts with numpy/scipy for complete control
  • Excel simulations with RAND() functions and data tables for quick estimates
  • Trading platforms (thinkorswim, TradeStation) with built-in Monte Carlo modules
  • Risk software (ORE, RMetrics, Matlab Financial Toolbox) for institutional analysis

Most beginners start with a spreadsheet or Python script using their raw trade data. The computational cost is trivial for 10,000 iterations.

Why the Industry Standard Is 10,000 Simulations

Why not 1,000 or 50,000? The answer is statistical precision. After 10,000 iterations, the percentiles of your distribution (5th, 25th, 50th, 75th, 95th) stabilize. Running more iterations produces diminishing returns—the distribution barely changes. Running fewer produces noise: one extra ruin scenario in 1,000 iterations changes ruin probability by 0.1%, but in 10,000 it's 0.01%.

10,000 is the practical sweet spot: statistically sound, computationally instant on modern machines, and easy to interpret.

Real-world examples

Example 1: Futures Day Trader A futures trader reviews her last 50 ES mini trades. Win rate: 52%, average win $45, average loss $50, starting capital $20,000. Monte Carlo with $100 position risk shows 3.2% ruin probability. She increases position to $150 risk and ruin probability jumps to 11.8%—too high. She stays at $100 and scales only after the next 50 trades if win rate holds.

Example 2: Options Seller An options trader expects 65% winning trades with $200 average win and $400 average loss. His capital is $50,000. Naive Kelly Criterion suggests he can risk $500 per trade. But Monte Carlo with 40 historical trades reveals 18% ruin probability—way too high. He cuts position sizing to $200 per trade, bringing ruin probability to 2.1%, which he considers acceptable.

Example 3: Swing Trader Testing a New Setup A swing trader develops a new chart pattern with 10 trades so far (6 wins, 4 losses). Before trading size, he Monte Carlo simulates 10,000 scenarios with his current position size. Results show maximum drawdown ranges from 5% to 48%, with a median of 16%. He decides to cut position size in half and re-simulate before trading live.

Common mistakes

  1. Running too few simulations. Fewer than 1,000 iterations produces unreliable percentiles. Always aim for 10,000+.

  2. Using trade results that aren't comparable. Mixing 5% risk trades with 1% risk trades, or different asset classes, corrupts the simulation. Ensure all trades in your history follow the same rules and position sizing logic.

  3. Ignoring the percentile distribution. Fixating on median outcome ignores tail risk. Always check the 95th percentile drawdown and worst-case scenario, not just the mean.

  4. Assuming past = future. Your historical win rate and average win/loss are estimates, not guarantees. A 55% win rate could drop to 48% in live trading. Always stress-test with lower win rates (drop it by 5%) to see how robust the strategy is.

  5. Forgetting transaction costs. If you included slippage and commissions in backtest results, the Monte Carlo will reflect them. If not, subtract them manually from average win/loss before simulation.

FAQ

What's the difference between Monte Carlo and just looking at historical maximum drawdown?

Historical maximum drawdown is the biggest peak-to-trough decline that actually happened. Monte Carlo shows the range of drawdowns that could happen under different trade orderings. A strategy might have a 12% historical drawdown but a 45% worst-case drawdown in Monte Carlo if bad luck clusters losses—which the historical sequence didn't.

How many trades do I need to run a valid Monte Carlo?

30–50 is the practical minimum; 100+ is ideal. With fewer than 20 trades, the simulation has high variance. If you have only 10 trades, run it anyway for directional insight, but wait for more data before making major position sizing decisions.

Can I use Monte Carlo on very short-term trades (scalping, high-frequency)?

Yes, but with caveats. If you execute 100+ trades per day, use 2–4 weeks of data (several thousand trades) to capture true variance. Shorter time horizons require larger sample sizes because daily streaks don't represent your true edge.

Should I use Monte Carlo before my strategy is profitable?

No. Monte Carlo assumes your historical trades reflect a real edge. If your backtest shows breaks-even or losses, Monte Carlo just confirms you'll blow up. Fix your strategy first, then use Monte Carlo to size it safely.

How does position sizing affect Monte Carlo results?

Position sizing scales the magnitude of every win and loss. If you halve position size, you halve all P&L per trade, making ruin less likely. The relationship is roughly linear for small changes but accelerates at extremes—this is why Monte Carlo reveals the "sweet spot" position size for your account.

What if my trades have different risk amounts?

You have two options: (1) normalize all trades to the same risk percentage and reweight profit/loss accordingly, or (2) run separate Monte Carlo simulations for each position sizing rule. Most traders choose option 1 for simplicity.

Summary

Monte Carlo simulation runs thousands of randomized orderings of your actual trades to measure the true probability and magnitude of account ruin. By reshuffling trade sequences while holding win rate, average win, and average loss constant, you expose hidden risks—particularly the danger of clustering drawdowns that simple math cannot predict. The technique requires only historical trade data and a position sizing rule, yet reveals whether your account can survive the worst realistic luck. Professional traders use Monte Carlo to calibrate position sizing, validate edge before risking capital, and detect over-optimized strategies that fail in live markets. With 10,000+ simulations, the resulting distribution of outcomes (drawdowns, final balances, ruin probability) becomes the ground truth for risk management.

Next

Using the Math to Trade Bigger