You had a great month. Net profit $3,200, win rate 58%, sharp entries. But here’s the uncomfortable question: was that skill, or could a coin flip have produced similar results?
This is the question Monte Carlo simulation answers. It’s one of the most powerful tools in quantitative trading — and one of the least understood by retail traders.
What Is Monte Carlo Simulation?
Monte Carlo simulation takes your actual trade results and runs them through thousands of random reorderings. Each run shuffles the sequence of your wins and losses, creating an alternate history. After 10,000 runs, you get a distribution of possible outcomes.
The key insight: if most random reorderings of your trades still produce profit, your edge is likely real. If many reorderings produce losses, your results may have been luck.
The Simple Version
Imagine you have 100 trades:
- 55 winners averaging +$120
- 45 losers averaging -$95
You made $2,325 in reality. But what if those same 100 trades had happened in a different order?
Monte Carlo shuffles them 10,000 times. For each shuffle, it calculates:
- Final P&L
- Maximum drawdown along the way
- Longest losing streak
- Peak-to-trough decline
The result is a probability distribution — not a single number, but a range of outcomes with confidence intervals.
Why Order Matters
You might think: “If the trades are the same, won’t the final P&L be the same regardless of order?” For final P&L, yes — if you’re trading fixed size. But for drawdown and risk of ruin, order matters enormously.
Consider two sequences with the same 10 trades:
Sequence A (losses clustered):
-$200, -$180, -$150, -$120, +$300, +$250, +$200, +$150, +$120, +$100
Max drawdown: -$650 (four losses in a row at the start)
Sequence B (alternating):
+$300, -$200, +$250, -$180, +$200, -$150, +$150, -$120, +$120, +$100
Max drawdown: -$200 (single loss after a win)
Same final P&L (+$470). But Sequence A would have felt like disaster — you’d have been down $650 before recovering. Many traders would have quit, changed their strategy, or gone on tilt during that drawdown.
Monte Carlo shows you how bad things could get with the same edge, just different luck in ordering.
How to Run a Monte Carlo Simulation
Step 1: Collect Your Trade Results
You need at least 30 trades — ideally 100+. For each trade, record the net P&L (after fees and slippage). The more trades, the more reliable the simulation.
Step 2: Define Your Parameters
- Number of simulations: 10,000 is standard. More is better but slower.
- Number of trades per simulation: Match your actual count, or project forward (e.g., “what would 200 trades look like?”)
- Sampling method: With replacement (bootstrap) or without replacement (permutation). Bootstrap is more common and allows for forward projection.
Step 3: Run the Simulation
For each of 10,000 runs:
1. Randomly sample trades from your history (with replacement)
2. Calculate cumulative P&L
3. Track maximum drawdown
4. Record final P&L
Step 4: Analyze the Distribution
After all runs, you have 10,000 final P&L values and 10,000 maximum drawdowns. From these:
- Median outcome: The P&L at the 50th percentile — your “expected” result
- 95th percentile drawdown: The worst drawdown you’d see 95% of the time
- Probability of profit: What percentage of simulations ended profitable
- Risk of ruin: Probability of hitting a predefined loss threshold
Interpreting Results
Scenario 1: Strong Edge
| Metric | Value |
|---|---|
| Median P&L | +$2,180 |
| 5th percentile P&L | +$820 |
| 95th percentile P&L | +$3,540 |
| Probability of profit | 99.2% |
| Median max drawdown | -$680 |
| 95th percentile max drawdown | -$1,450 |
Interpretation: Even in unlucky orderings, you’re profitable. Your edge is real. But prepare for drawdowns up to $1,450 — they’re within the normal range for your strategy.
Scenario 2: Weak Edge
| Metric | Value |
|---|---|
| Median P&L | +$450 |
| 5th percentile P&L | -$1,200 |
| 95th percentile P&L | +$2,100 |
| Probability of profit | 68.4% |
| Median max drawdown | -$1,800 |
| 95th percentile max drawdown | -$3,200 |
Interpretation: Your edge is marginal. About 1 in 3 random orderings loses money. Maximum drawdowns are severe relative to expected profit. This strategy needs improvement or tighter risk management.
See what your own trading mistakes actually cost
Drop your Binance, Bybit or TradingView export and get your own leaks ranked in dollars — no account, no card, file never stored.
Analyse My Trades Free →Or read a real report first · Start your free trial · See all features
Scenario 3: No Real Edge
| Metric | Value |
|---|---|
| Median P&L | -$120 |
| 5th percentile P&L | -$2,800 |
| 95th percentile P&L | +$2,500 |
| Probability of profit | 47.3% |
| Median max drawdown | -$2,400 |
Interpretation: Your profitable months were luck. The distribution is centered near zero with wide variance — essentially a coin flip with fees dragging you negative.
Common Mistakes in Monte Carlo Analysis
1. Too Few Trades
With only 20 trades, Monte Carlo results are unreliable. The distribution is too wide to draw conclusions. Aim for 100+ trades minimum before trusting the simulation.
2. Ignoring Correlation
Standard Monte Carlo assumes each trade is independent. But in reality, trades cluster — revenge trading creates correlated losses, trending markets create correlated wins. If your trades are highly correlated, Monte Carlo overstates your edge confidence.
This is why behavioral analytics matters alongside Monte Carlo. If you can identify and remove revenge clusters or tilt-driven trades before running the simulation, the results better reflect your actual skill.
3. Confusing Backtesting with Monte Carlo
Backtesting tests a strategy against historical data. Monte Carlo tests whether observed results are statistically significant. They answer different questions:
- Backtesting: “Would this strategy have worked in the past?”
- Monte Carlo: “Given my actual results, how confident am I that my edge is real?”
4. Not Using It for Position Sizing
Monte Carlo’s greatest practical application is position sizing. The 95th percentile drawdown tells you the worst-case scenario you should prepare for. If your account can’t survive that drawdown at your current position size, you’re over-leveraged.
Monte Carlo + Behavioral Analytics
Here’s where this gets powerful: combine Monte Carlo with behavioral leak detection.
Before removing leaks: Run Monte Carlo on your full trade history.
After removing leaks: Use the What-If Simulator to exclude revenge trades, worst hours, and symbol traps. Run Monte Carlo on the filtered set.
The difference reveals your true underlying edge — what your results would look like if you consistently avoided your worst behavioral patterns.
TraderDynamiq’s What-If Simulator does exactly this. It filters out specific behavioral patterns and recomputes your equity curve and statistics. Pair this with Monte Carlo analysis, and you know:
- Whether your current results are skill or luck
- What your results would look like without behavioral leaks
- How much improvement is available through discipline alone
Building Your Own Monte Carlo
For traders who want to run their own simulations, here’s a simple Python approach:
import random
import statistics
def monte_carlo(trades, num_simulations=10000):
results = []
drawdowns = []
for _ in range(num_simulations):
shuffled = random.choices(trades, k=len(trades))
cumulative = []
running = 0
peak = 0
max_dd = 0
for trade in shuffled:
running += trade
cumulative.append(running)
if running > peak:
peak = running
dd = peak - running
if dd > max_dd:
max_dd = dd
results.append(running)
drawdowns.append(max_dd)
results.sort()
drawdowns.sort()
return {
'median_pnl': statistics.median(results),
'p5_pnl': results[int(0.05 * len(results))],
'p95_pnl': results[int(0.95 * len(results))],
'prob_profit': sum(1 for r in results if r > 0) / len(results),
'median_dd': statistics.median(drawdowns),
'p95_dd': drawdowns[int(0.95 * len(drawdowns))],
}
The Bottom Line
Monte Carlo simulation answers the most important question in trading: is my edge real?
If you’ve had a good few months, run the simulation before assuming you’ve found your strategy. If you’ve had a bad stretch, run it before abandoning a potentially profitable approach.
Combined with behavioral analytics — removing your worst patterns and re-simulating — Monte Carlo reveals both your current statistical reality and your potential ceiling.
Related Articles
- What-If Simulator for Trading — run simulations on your actual trades
- Sharpe Ratio in Trading — measuring risk-adjusted performance
- Maximum Drawdown Explained — understanding worst-case scenarios
- Trading Risk Management Guide — comprehensive risk framework
- Backtesting Your Trading Strategy — testing before risking capital
Want to see the same analysis run on your own trade history? Analyse your trades free — drop your Binance, Bybit or TradingView export and get your own repeating patterns ranked by measured P&L. No account, no email, no card, and your file is never stored. Not ready to upload? Read a real report first.
Import your trade history and see your behavioral analytics with TraderDynamiq. Start your free 14-day trial.
Free tools: Position Size Calculator | Risk/Reward Calculator
See what your own trading mistakes actually cost
Drop your Binance, Bybit or TradingView export and get your own leaks ranked in dollars — no account, no card, file never stored.
Analyse My Trades Free →Or read a real report first · Start your free trial · See all features