FxRobotEasy Tools ยท Last reviewed
Risk of Ruin Calculator โ Monte Carlo Forex EA Survival
How risk of ruin is calculated
Risk of Ruin โ Monte Carlo simulation of N iterations of M trades each. Each trade: outcome = win (probability p) or loss (probability 1โp) equity = equity ร (1 + r ร winLossRatio) if win equity = equity ร (1 โ r) if loss Ruin = equity โค (1 โ ruinThreshold/100) ร starting_equity RoR = (ruined_runs รท total_runs) ร 100 Where: p = win rate (0-1) r = risk per trade (decimal, e.g. 0.01 for 1%) winLossRatio = average_winning_trade รท average_losing_trade ruinThreshold = % drawdown that counts as ruin (e.g. 50)
Closed-form formulas for risk of ruin exist but they assume symmetric R:R (every winner equals every loser in size) and unlimited time. Real trading has asymmetric R:R and finite time horizons, so Monte Carlo gives a more credible answer. The simulation rolls a virtual coin weighted by your win rate; on a win, equity grows by r ร winLossRatio; on a loss, equity shrinks by r. After M trades the run is either 'survived' (equity above ruin threshold) or 'ruined' (equity below). Repeating N times gives a probability distribution. Limitations: (1) the model assumes independent trades, but real EAs have correlated streaks (winning runs cluster, losing runs cluster) which the model under-estimates. (2) The model assumes constant edge, but real edges degrade over time as markets adapt. (3) The model uses fixed-fractional sizing โ fixed-lot sizing has different risk dynamics. Use the result as a lower bound for risk; reality is usually worse.
Worked example
Inputs
- Win rate: 55%
- Average Win/Loss ratio: 1.5 R:R
- Risk per trade: 1.0%
- Ruin threshold: 50% drawdown
- Simulation parameters: 10,000 iterations ร 1,000 trades
Calculation
- Initialize each simulation run with equity = 1.0 (normalized).
- For each of 1,000 trades: random number < 0.55 โ win, otherwise loss.
- On a win: equity ร (1 + 0.01 ร 1.5) = equity ร 1.015.
- On a loss: equity ร (1 โ 0.01) = equity ร 0.99.
- If at any point equity โค 0.50, count the run as ruined and abort.
- After all 10,000 iterations: 5 ruined รท 10,000 total = 0.05% risk of ruin.
Result: Risk of Ruin โ 0.05% at 1% risk-per-trade ยท negligible for retail-grade EA
Edge cases & special pairs
- Symmetric R:R (1.0 win/loss ratio)Closed-form: RoR = ((1 โ edge) รท (1 + edge))^(account_units), where edge = 2p โ 1 and account_units = ruin_threshold / risk_per_trade. For 55% win rate, 1:1 R:R, 1% risk, 50% threshold: edge = 0.10, units = 50, RoR โ 0.20^50 โ 10^-35 (zero). The simulation can confirm the closed form for symmetric cases.
- Negative expectancy (loses on average)Win rate ร winLossRatio < (1 โ win rate) means the strategy has negative expectancy. Risk of ruin approaches 100% regardless of risk-per-trade โ given enough time, the account always blows up. The simulation correctly shows 95-100% RoR for negative expectancy strategies.
- Very high risk-per-trade (>10%)Risk-per-trade above 10% produces ruin probabilities above 50% even for high-edge strategies. The math: at 10% risk, a single 10-trade losing streak takes equity below 35% (= 0.9^10), past most ruin thresholds. Practical maximum for retail trading is 2-3% per trade.
- Trend-following strategy with low win rateTrend-followers often have 30-40% win rates with 2.5-4.0 R:R. Plug those numbers and the calculator typically shows 1-5% risk of ruin at 1% risk per trade โ slightly higher than scalpers because winning streaks are less reliable. Compensate with smaller risk-per-trade if the EA's edge isn't comfortable.
- Multiple correlated EAsThe calculator simulates a single EA. For N correlated EAs running together, treat them as one effective EA with combined effective risk-per-trade โ sqrt(N ร correlation_factor) ร individual_risk. For 5 EAs at 1% each with 0.5 correlation: effective risk โ sqrt(5 ร 0.5) ร 1% = 1.58%. Plug 1.58% into the single-EA simulator.
- Streaky losing periodsReal EAs have correlated losing streaks during regime changes (winning streaks too, but those don't hurt). The IID assumption underestimates ruin risk. A useful adjustment: add 0.5-1% to the effective risk-per-trade to account for streakiness, then run the simulation.
- Short trading horizons (< 100 trades)Risk of ruin is a long-run statistic. Sample-size below ~100 trades produces noisy results. For prop firm challenges that complete in 20-30 trades, the math is dominated by sequencing rather than statistical expectancy. The calculator's 1,000-trade horizon captures the long-run behaviour; for short horizons, use a more conservative interpretation.
When to use this calculator
Use this calculator BEFORE deploying any EA to confirm the strategy is mathematically sustainable. The procedure: pull the EA's backtest report, extract Win Rate and Avg Win/Loss ratio, plug them into the calculator with your intended risk-per-trade. If risk of ruin is below 1%, the strategy is robust. If 1-5%, acceptable but consider reducing risk-per-trade. If above 5%, the strategy will eventually blow up โ either reduce risk-per-trade until RoR drops below 1%, or accept the strategy is not deployable at the proposed sizing. The calculator is particularly valuable for new EAs without long live track records โ backtest metrics give you Win Rate and R:R, but they don't tell you how those metrics interact with your risk budget over thousands of trades. Risk of Ruin is the bridge between backtest stats and live survivability.
Related guide: How to calculate risk per trade โ
Frequently asked questions
What's an acceptable risk of ruin?
The 1% threshold maps roughly to the 'four sigma' professional standard for institutional risk management. The intuition: 100 traders running the same strategy means roughly 1 of them will hit the ruin threshold over the simulated horizon. For your own account, you want to be among the 99 โ pick risk parameters that put you in that majority. Conservative traders target 0.1% or lower; this requires either tighter risk-per-trade or higher edge (better win rate / R:R).
How does Kelly Criterion relate to risk of ruin?
Kelly assumes you know your edge precisely; you don't. Full-Kelly is mathematically optimal under perfect-knowledge assumptions; reality has estimation error. The Half-/Quarter-Kelly fractional sizing protects against that error. Risk-of-ruin simulation is essentially a numerical validation of fractional-Kelly's safety properties: plug in different multipliers of Kelly and observe how ruin probability changes.
Why does my 80% win rate strategy show high risk of ruin?
The 'scalper trap': martingale and grid strategies often show 90%+ win rate because they hold losers until they recover, while taking quick small wins. The Avg Win/Loss ratio reveals the truth โ a strategy with 95% win rate and 0.1 R:R (winners 1/10th the size of losers) is breakeven at best and ruined at worst. Always pair win rate with R:R for an honest picture. This is what the calculator tests.
Why use Monte Carlo when a closed-form formula exists?
There is a closed-form solution for symmetric Bernoulli trials: RoR = ((1โedge) รท (1+edge))^N, where N = ruin_threshold รท risk_per_trade in standardized units. For symmetric R:R this is exact and faster than Monte Carlo. For the more general asymmetric case, the Monte Carlo simulator gives an honest answer at the cost of compute time. Both approaches converge in their domains of validity; the calculator uses Monte Carlo for generality.
Does it matter how many trades per day my EA places?
Higher frequency exposes you to ruin faster simply because you take more trades per unit time. But the mathematical fact is that any strategy with positive expectancy converges away from ruin given enough trades โ high frequency means more trades, which means more convergence too. So high-frequency EAs are not inherently more dangerous; they just resolve the math faster, for better or worse. The risk-of-ruin INPUT (your specific strategy parameters) determines the outcome, not the trade frequency.
How realistic is the IID assumption (independent trades)?
True IID is rare. Real-world adjustment: if your backtest shows 5+ consecutive losing trades in 1,000 total trades (common), the IID model under-estimates ruin probability by 20-50%. The mitigation: run the Monte Carlo with slightly higher risk-per-trade than your actual setting (e.g. simulate at 1.5% if you actually use 1%) to account for cluster-effect amplification. If the inflated simulation still shows <1% RoR, you have comfortable headroom.