Your backtest shows consistent profits. Your win rate is solid, your expectancy is positive, and you're ready to trade real money. But here's a question that should keep you up at night: what's the worst that could happen?
Not the average outcome. Not the expected path. The worst realistic outcome.
Monte Carlo simulation answers this question by running your strategy through thousands of different possible sequences of trades. It shows you the full range of outcomes your system might produce-including drawdowns that would test your psychological limits and scenarios that could blow up your account.
If you've never Monte Carlo'd your strategy, you're trading blind to tail risks. You know your expected return, but you don't know your worst-case return. And in trading, it's the worst cases that destroy accounts.
This guide will teach you what Monte Carlo simulation is, how to run one on your trading data, and how to interpret the results to make better risk decisions.
Monte Carlo simulation is a technique that uses random sampling to explore the range of possible outcomes from a system. Named after the famous casino (because it involves repeated random trials), it's one of the most powerful tools for understanding risk.
In trading, a Monte Carlo simulation takes your actual trade results and reshuffles them many times-usually thousands or tens of thousands-to see what different sequences would have produced.
Why does sequence matter? Because even with identical trades, different orderings produce wildly different equity curves.
Sequence A: W, W, W, W, W, L, L, L, L, L Your account goes: +200, +400, +600, +800, +1000, +900, +800, +700, +600, +500
Sequence B: L, L, L, L, L, W, W, W, W, W Your account goes: -100, -200, -300, -400, -500, -300, -100, +100, +300, +500
Both sequences end at the same place (+$500), but the journeys are completely different. Sequence A has no drawdown until the end. Sequence B starts with a 50% drawdown that might have caused you to quit.
Monte Carlo shows you all possible sequences-and crucially, how often the scary ones occur.
Traditional backtesting shows you what happened. Monte Carlo shows you what could happen. This distinction matters enormously.
Your backtest gives you one path through history. But that path was just one realization of many possible paths. If you could rewind and let the market play out again with the same trades but different timing and sequencing, you'd get a different equity curve.
Monte Carlo simulates thousands of these alternative paths, revealing:
Most traders dramatically underestimate potential drawdowns. Your backtest might show a maximum drawdown of 15%, and you think "I can handle 15%." But that's just one path.
Monte Carlo might reveal that with your trades, the 95th percentile drawdown is 35%. That means there's a 5% chance you'll experience a 35% drawdown-not "once in a lifetime" rare, but "probably within a few years" likely.
If you can't handle 35%, you need to reduce position size.
A great backtest might reflect genuine edge or lucky sequencing. Monte Carlo helps distinguish:
| Scenario | What Monte Carlo Reveals |
|---|---|
| Strong edge | Most paths profitable, tight distribution |
| Weak edge | Many paths unprofitable, wide distribution |
| Lucky backtest | Original path is an outlier |
| Robust system | Results consistent across sequences |
Let's get into the mechanics. Understanding how Monte Carlo works helps you interpret and trust the results.
You start with a list of your historical trade results-ideally expressed as R-multiples (return per unit of risk) to normalize across different position sizes.
Example trade data (in R-multiples):
+2.5R, -1.0R, +1.2R, +0.8R, -1.0R, -1.0R, +3.1R, +0.5R, -1.0R, +1.8R
The simulation randomly samples from your trades with replacement. "With replacement" means each trade can be selected multiple times (simulating that similar setups might repeat).
One random sequence might produce:
-1.0R, +1.8R, +1.2R, -1.0R, +2.5R, -1.0R, +0.8R, +3.1R, -1.0R, +0.5R
Starting from your initial capital, walk through the sequence calculating running equity:
| Trade | Result | Running Equity |
|---|---|---|
| 1 | -1.0R | -1.0R |
| 2 | +1.8R | +0.8R |
| 3 | +1.2R | +2.0R |
| 4 | -1.0R | +1.0R |
| 5 | +2.5R | +3.5R |
| ... | ... | ... |
Record key metrics: ending equity, maximum drawdown, largest winning streak, largest losing streak.
Run this process 10,000 times (or more). Each run produces a different random sequence, a different equity curve, and different metrics.
Now you have 10,000 different outcomes. You can analyze:
The distribution tells you what to expect-not just the average, but the full range.
Let's walk through a practical Monte Carlo analysis step by step.
Pull your complete trade history with R-multiples. You need at least 30 trades for meaningful analysis, ideally 100+.
If you don't have R-multiples, calculate them: R-multiple = Actual P&L / Initial Risk
| Trade | P&L | Risk | R-Multiple |
|---|---|---|---|
| 1 | +$450 | $200 | +2.25R |
| 2 | -$200 | $200 | -1.00R |
| 3 | +$180 | $180 | +1.00R |
| 4 | -$150 | $150 | -1.00R |
Here's how to perform a basic Monte Carlo (can be done in Excel, Python, or specialized tools):
Parameters:
For each simulation:
After all simulations:
Equity Distribution:
Drawdown Distribution:
Example Results:
| Metric | 5th %ile | Median | 95th %ile |
|---|---|---|---|
| Final Equity | $8,200 | $12,400 | $18,100 |
| Max Drawdown | -8% | -15% | -28% |
| Max Losing Streak | 4 trades | 7 trades | 12 trades |
These results tell you: expect to end around $12,400, but you might end as low as $8,200 or as high as $18,100. Plan for drawdowns up to 28% and losing streaks up to 12 trades.
Raw Monte Carlo output is just numbers. The value comes from interpretation and action.
A robust system shows:
A fragile system shows:
Look at the 95th percentile drawdown. Ask yourself:
If the answer to any is "no," you're trading too large. Reduce position size until the 95th percentile drawdown is survivable.
Compare your actual backtest to the Monte Carlo distribution:
A backtest that produced exceptional results should be viewed skeptically if Monte Carlo shows it's an outlier.
This probabilistic framing keeps you grounded when results inevitably vary from expectations.
One of the most practical applications of Monte Carlo is determining appropriate position size.
Set a "ruin threshold"-the drawdown level that would force you to stop trading, either financially or psychologically. For many traders, this is 30-50%.
Run Monte Carlo simulations at different position sizes and find the size where the 95th (or 99th) percentile drawdown just hits your ruin threshold.
Example Analysis:
| Position Size | Median Drawdown | 95th %ile Drawdown | Acceptable? |
|---|---|---|---|
| 3% risk/trade | -18% | -42% | No |
| 2% risk/trade | -12% | -28% | Borderline |
| 1.5% risk/trade | -9% | -21% | Yes |
| 1% risk/trade | -6% | -14% | Yes |
If your ruin threshold is 25%, position sizing at 2% or below keeps you safe from 95th percentile scenarios.
The Kelly Criterion gives a mathematically optimal position size based on edge and variance:
Kelly % = (Win Rate × Avg Win / Avg Loss - Loss Rate) / (Avg Win / Avg Loss)
But full Kelly produces extreme volatility that most traders can't stomach. Monte Carlo helps calibrate:
With limited trade history, Monte Carlo results are uncertain. Be conservative:
| Trade Sample | Confidence Level | Kelly Fraction |
|---|---|---|
| 30-50 trades | Low | 10-20% Kelly |
| 50-100 trades | Medium | 20-35% Kelly |
| 100-200 trades | Good | 35-50% Kelly |
| 200+ trades | High | 50%+ Kelly |
As you accumulate data and Monte Carlo results stabilize, you can increase position size.
When choosing between trading systems, Monte Carlo provides better comparison than simple backtest metrics.
System B:
System A is clearly superior. Its median is closer to its mean (less skew), and its worst-case is much better. System B's high mean is driven by occasional huge wins, but most paths underperform.
Use Monte Carlo to calculate risk-adjusted metrics:
Monte Carlo Sharpe Ratio = Median Return / Standard Deviation of Returns Monte Carlo Sortino Ratio = Median Return / Downside Deviation
These capture both expected return and the variability of that return across different paths.
Drawdown characteristics matter as much as returns:
| Metric | System A | System B |
|---|---|---|
| Median Max Drawdown | -12% | -18% |
| 95th %ile Drawdown | -22% | -38% |
| Avg Recovery Time | 14 trades | 31 trades |
| Longest Drawdown | 42 trades | 87 trades |
System A has both smaller and shorter drawdowns, making it easier to trade psychologically even if raw returns are similar.
Monte Carlo is powerful but can be misused. Avoid these errors.
Running only 100 or 1,000 simulations provides unreliable results. Percentile estimates, especially in the tails, need large samples to stabilize.
Minimum: 10,000 simulations Better: 50,000+ simulations
More simulations just take more computer time-there's no downside.
Standard Monte Carlo assumes trades are independent-that the outcome of trade 1 doesn't affect trade 2. In reality, market conditions create dependencies:
For more accuracy, use block resampling (keeping consecutive trades together) or regime-aware simulation.
If your trade sample excludes periods where you stopped trading (because of drawdowns), you're feeding Monte Carlo biased data. Include your worst periods, not just the good ones.
Monte Carlo works best for moderate projection periods. Projecting 100 trades forward is reasonable. Projecting 1,000 trades assumes your edge persists unchanged, which may not hold.
Markets evolve. Edges decay. Use Monte Carlo for near-to-medium term scenarios, not long-term forecasts.
Monte Carlo produces distributions, not point estimates. Don't reduce rich output to a single number:
Wrong: "Monte Carlo says I'll make 28%" Right: "Monte Carlo shows a distribution from 12% to 48%, with median 28% and significant variance"
The distribution is the information. Reducing it loses the value.
You don't need to build Monte Carlo from scratch. Several approaches are available.
For basic Monte Carlo, Excel or Google Sheets works:
Python with Num Py makes Monte Carlo fast and flexible:
import numpy as np
# Your trade results in R-multiples
trades = np.array([2.5, -1.0, 1.2, 0.8, -1.0, -1.0, 3.1, 0.5, -1.0, 1.8])
# Monte Carlo parameters
n_simulations = 10000
n_trades = 100
# Run simulations
results = []
for _ in range(n_simulations):
sequence = np.random.choice(trades, size=n_trades, replace=True)
equity_curve = np.cumsum(sequence)
final_equity = equity_curve[-1]
max_drawdown = np.min(equity_curve - np.maximum.accumulate(equity_curve))
results.append((final_equity, max_drawdown))
# Analyze results
final_equities = [r[0] for r in results]
print(f"Median: {np.percentile(final_equities, 50):.2f}R")
print(f"5th percentile: {np.percentile(final_equities, 5):.2f}R")
print(f"95th percentile: {np.percentile(final_equities, 95):.2f}R")
Several platforms offer built-in Monte Carlo:
The advantage of dedicated tools: automated data connection, visualization, and pre-built analysis.
Monte Carlo produces lots of data. Visualization helps:
Good visualization makes Monte Carlo output actionable rather than abstract.
At minimum, 10,000. For stable percentile estimates, especially in the tails, 50,000 or more is better. More simulations just take more computation time; there's no statistical downside.
Monte Carlo tells you the range of outcomes your system might produce given its historical trades. If most simulated paths are unprofitable, your system probably doesn't have edge. But Monte Carlo can't distinguish edge from luck-it can only show what your historical trades might produce.
Compare your actual backtest results to the Monte Carlo distribution. If your backtest is at or above the 90th percentile of simulated outcomes, you may have experienced favorable trade sequencing. Be skeptical and expect regression toward the median.
No. Monte Carlo shows what could happen if future trades are similar to historical trades. It cannot account for changes in market conditions, edge decay, or regime shifts. Use it for risk assessment, not prediction.
Backtesting shows what happened with a specific sequence of events. Monte Carlo shows what could happen with many possible sequences derived from the same underlying trades. Backtesting is one path; Monte Carlo is many paths.
Absolutely. Monte Carlo shows potential drawdowns, and position size should be set so that even worst-case drawdowns are survivable. This is one of the most practical applications of Monte Carlo analysis.
Most traders live in a world of averages. Average win rate. Average return. Average drawdown. These averages feel safe and manageable.
But averages hide enormous variation. The average drawdown might be 12%, but the bad-luck drawdown is 28%. The average return might be 25%, but the bad-luck return is -5%. Knowing only averages leaves you unprepared for the non-average scenarios that will inevitably occur.
Monte Carlo simulation reveals the full picture. It shows you all the paths your trading might take-the good ones, the bad ones, and the catastrophic ones. It forces you to confront worst-case scenarios before they happen, so you can prepare accordingly.
The traders who survive long-term aren't the ones with the highest average returns. They're the ones who sized their risk so that even the worst realistic outcomes didn't destroy them.
Monte Carlo helps you become that trader.
Running Monte Carlo simulations requires data, tools, and expertise. Most traders never do it because the friction is too high. Thrive eliminates that friction.
✅ Automatic Monte Carlo Analysis - Import your trades and Thrive runs thousands of simulations instantly, showing you the full distribution of possible outcomes.
✅ Drawdown Probability Curves - See exactly what drawdowns you should prepare for at different confidence levels. No surprises.
✅ Position Size Recommendations - Based on your trade history and risk tolerance, Thrive recommends appropriate position sizing to survive worst-case scenarios.
✅ Visual Equity Curve Fans - See your potential paths visualized, from best-case to worst-case, all derived from your actual trading data.
✅ Strategy Comparison - Compare multiple strategies using Monte Carlo-derived risk-adjusted metrics, not just simple backtest returns.
✅ Weekly AI Coach - Get insights about what Monte Carlo reveals about your trading and specific recommendations for managing the risks it surfaces.
You wouldn't drive a car without knowing how fast it can stop. Why trade without knowing how bad your drawdowns could get?
Know your worst-case. Plan for it. Survive it.
Free calculators and tool roundups that convert soft intent.
Professional-grade charting with 100+ indicators, drawing tools, and multi-timeframe analysis. The free tier has some limitations but covers all beginner needs.
Risk-based sizing
Discover the best crypto trading tools for 2025. From charting platforms to portfolio trackers, signals, and analytics.