Risk of Ruin in Trading: Stress-Test Your Position Size With Journal Data
Risk of ruin is the probability that a run of losses takes your account down to a level you’ve defined as ruin before your edge has time to work. Three things set it: the edge in your trades, the share of the account you risk on each one, and how far the account can fall before you have to stop. Position size is the only one of the three you choose before the next trade.
Most risk of ruin guides plug a win rate and a reward-to-risk ratio into a formula. That’s a reasonable first estimate, but it hides two problems. Your trades don’t come in two neat sizes, and the win rate from your last 150 trades is an estimate with a wide margin of error. Your trading journal can fix both.
This guide walks through a full stress test on a hypothetical 150-trade journal. In the as-recorded numbers, risking 1% per trade looks safe. Once the inputs are stressed, the same journal supports half that.
The short version:
- Define ruin as your own number: a prop firm’s maximum loss, a drawdown that would make you stop, or a total loss.
- Resample your own closed trades in R-multiples instead of feeding a formula two averages.
- Re-run the test with a lower win rate, without your best trades, and with higher costs.
- Use the largest risk per trade that still passes every stressed version.
What risk of ruin measures
Risk of ruin measures one thing: the share of possible futures that hit your ruin level, assuming you keep trading this strategy at this size for a set number of trades.
You have to supply three definitions before the number means anything.
The ruin level comes first. For a funded account it’s usually the firm’s maximum loss. For a personal account it’s the drawdown at which you’d stop trading the strategy, such as 20% or 30% below the starting balance. Total loss of the account is the textbook case, but few traders keep trading that far down.
The horizon is next. Ruin within 100 trades and ruin within 1,000 trades are different numbers, because a longer run gives a bad streak more chances to show up.
Then there’s the sizing method. With fixed-fractional sizing you risk a percentage of the current balance, so your dollar risk shrinks after losses. With fixed-dollar sizing it doesn’t. Most formulas assume the second. Most traders use the first.
The answer is a probability across simulated futures. It doesn’t forecast your next 250 trades.
The classic risk of ruin formula, and where it breaks
The formula most guides use comes from the gambler’s ruin problem in probability theory. For a bet that wins and loses the same amount, with win probability p and loss probability q = 1 − p, the chance of eventually losing U betting units is:
Risk of ruin = (q ÷ p)^U
This assumes your win rate is above 50% and you can keep betting for as long as you like. Columbia University’s lecture notes on gambler’s ruin derive it in full.
Take a trader who wins 55% of trades at 1:1, risks 2% per trade, and treats a 20% drawdown as ruin. That’s 10 units of risk, so:
(0.45 ÷ 0.55)^10 = 13.4%
A simulation with the same inputs and percentage sizing gives 10.9% over 250 trades and 12.8% over 2,000. Close enough. The formula holds up here because the example fits its assumptions.
Trading journals usually break at least two of them:
- Wins and losses are not one fixed size. You’ll have scratched trades at −0.5R, slipped stops at −1.2R, small winners and a few large ones.
- Trades aren’t always independent. Correlated positions and regime changes make losses cluster.
- The win rate you feed in is treated as exact, even though it comes from a limited sample.
Versions of the formula that use average win and average loss fix the first problem only partly. The method below handles all three, as far as the data allows.
Why position size dominates risk of ruin
Here is the hypothetical journal used for the rest of this guide. It holds 150 closed trades from one strategy, with each result recorded in R after fees. R is the profit or loss divided by the amount you planned to risk at entry.
| Result | Trades |
|---|---|
| −1.2R (stop slipped) | 6 |
| −1.0R (full stop) | 70 |
| −0.5R (cut early) | 8 |
| +0.8R | 20 |
| +1.5R | 22 |
| +2.0R | 16 |
| +3.0R | 6 |
| +5.0R | 2 |
That gives a 44% win rate, an average win of 1.65R, an average loss of 0.97R and an expectancy of +0.185R per trade. It’s a decent edge.
Now simulate 10,000 futures of 250 trades each. Every simulated trade draws one result at random from the journal, and ruin is a 20% drawdown from the starting balance:
| Risk per trade | Risk of ruin (20% drawdown within 250 trades) | Worst drawdown in 1 of 20 runs |
|---|---|---|
| 0.5% | 0.01% | 11.2% |
| 0.75% | 0.25% | 16.5% |
| 1% | 1.1% | 21.2% |
| 1.5% | 5.7% | 29.3% |
| 2% | 11.7% | 36.7% |
| 3% | 25.4% | 48.7% |
At 0.5% per trade, about 1 run in 10,000 hit the ruin level. At 1.5%, about 1 run in 17 did. Size went up three times. The risk of ruin went up several hundred times.
Losing streaks explain most of the gap. In this journal the median longest run of losing or scratched trades over 250 trades is 8, and 1 run in 20 sees 12 or 13 in a row. That streak length is the same at every position size. Size decides what it costs:
- 13 losses in a row at 0.5% each: a 6.3% drawdown
- 13 losses in a row at 1% each: 12.2%
- 13 losses in a row at 3% each: 32.7%
Cutting position size is the one lever that changes those numbers without touching the strategy.
How to stress-test position size with journal data
The test has five steps. You can run it in a spreadsheet with a macro, a short script, or a Monte Carlo tool that accepts a list of trade results.
Step 1: Pull one strategy’s closed trades in R
Export closed trades for a single strategy version. If you changed the entry rules, stop placement or markets traded, start a new sample from that change. Mixing versions gives you an edge that no longer exists.
Convert each trade to an R-multiple:
R = net profit or loss after fees ÷ planned risk at entry
Planned risk is the distance from entry to the initial stop, times position size. If you didn’t record a stop when you entered, those trades can’t give you an honest R. Leave them out and say so in your notes. The risk-to-reward ratio guide covers how planned and realized R differ.
Keep the losses that came out bigger than −1R. Slippage through a stop, gaps and fees all belong in the sample. A journal that rounds every loss to −1R will understate the risk.
Step 2: Check how much your sample can tell you
A 44% win rate from 150 trades doesn’t mean the strategy’s true win rate is 44%. Using the Wilson score interval described in the NIST engineering statistics handbook, the 95% range for 66 wins in 150 trades runs from 36.3% to 52.0%.
That range is almost 16 percentage points wide. A swing of a few points inside it changes the edge a lot, which is why Step 4 tests a lower win rate.
More trades narrow the range. With fewer than about 100 trades in one strategy version, treat any risk of ruin result as provisional and size conservatively until the sample grows.
Step 3: Resample your own trades
Bootstrapping means building simulated futures from the trades you already have. Each simulated trade picks one recorded result from the journal at random, with replacement. Your mix of scratches, slipped stops and outsized winners carries straight into the simulation.
The loop for one simulated future:
- Start the balance at 100%.
- Draw a random trade result in R from the journal.
- Change the balance by risk per trade × R. At 1% risk, a −1.2R trade costs 1.2% of the current balance.
- Stop the run if the balance falls to the ruin level, and count it as ruined.
- Repeat until the horizon, such as 250 trades.
Run that 10,000 times and divide the ruined runs by 10,000. Here is the same loop in Python:
import random
def risk_of_ruin(r_multiples, risk_pct, ruin_pct=20, trades=250, runs=10_000, seed=7):
rnd = random.Random(seed)
risk, floor = risk_pct / 100, 1 - ruin_pct / 100
ruined = 0
for _ in range(runs):
balance = 1.0
for _ in range(trades):
balance *= 1 + risk * rnd.choice(r_multiples)
if balance <= floor:
ruined += 1
break
return 100 * ruined / runs
A simpler version feeds the simulation only the win rate and average reward-to-risk. Those two averages turn every win into the same win and every loss into the same loss. For this journal, the two-number version gives a risk of ruin of 0.73% at 1% risk and 9.1% at 2%. Resampling the recorded trades gives 1.1% and 11.7%. The averages remove the spread between results, from −1.2R losses to +5R winners. Less spread means smaller swings, so the two-number version understates the risk.
Step 4: Stress the inputs
The as-recorded journal is the optimistic case. Re-run the simulation with versions of it that are plausibly worse:
- Remove the two best trades. If two +5R outliers carry the edge, you want to know how the strategy looks without them.
- Lower the win rate by about 5 points. Five points sits well inside the 36% to 52% range from Step 2. Here, eight +1.5R winners become −1R losers, which takes the win rate from 44% to 38.7%.
- Add 0.05R of cost to every trade. Wider spreads, higher commissions or worse fills chip at each result.
- Apply all three at once, as in a bad but plausible quarter.
Results for a 20% ruin level over 250 trades:
| Scenario | Edge per trade | 0.5% risk | 0.75% risk | 1% risk | 1.5% risk |
|---|---|---|---|---|---|
| As recorded | +0.185R | 0.01% | 0.25% | 1.1% | 5.7% |
| Without the two best trades | +0.120R | 0.09% | 1.0% | 3.5% | 11.8% |
| Win rate 5 points lower | +0.052R | 1.1% | 7.2% | 16.3% | 33.5% |
| Costs +0.05R per trade | +0.135R | 0.10% | 1.2% | 4.0% | 12.3% |
| All three combined | −0.048R | 9.7% | 32.5% | 49.9% | 70.3% |
The win-rate stress does the most damage, because it cuts the edge from +0.185R to +0.052R. A thin edge needs small size to survive the streaks.
The combined row has a negative edge. No position size fixes that: smaller size only slows the decline. If your strategy loses its edge under a plausible stress like this one, collect more trades and review the edge before you settle on any size.
Step 5: Pick the largest size that passes
Write the pass rule down before you look at the results. For this example: the chance of a 20% drawdown within 250 trades must stay at or below 2% in the as-recorded case and in each single stress.
- 1% passes the as-recorded case (1.1%) but fails three stresses (3.5%, 16.3%, 4.0%).
- 0.75% fails the win-rate stress (7.2%).
- 0.5% passes all four, with the worst at 1.1%.
So this journal supports 0.5% per trade, half of what the unstressed numbers suggested. The 2% threshold is only an example. Losing a funded account you can buy back is a different loss from losing savings, so set the threshold for your own situation.
Risk of ruin for prop firm accounts
Funded accounts usually have a tighter ruin level, so the same journal supports less size. Here is the same journal with ruin set at a 10% drawdown, as it would be for a firm whose maximum loss is 10%:
| Risk per trade | As recorded | Win rate 5 points lower |
|---|---|---|
| 0.25% | 0.01% | 1.5% |
| 0.5% | 1.4% | 17.4% |
| 0.75% | 6.3% | 34.0% |
| 1% | 12.3% | 45.9% |
Checked against the same 2% rule in both columns, this account supports 0.25% per trade. That’s half the size the personal account supported, because the floor sits half as far away.
This model measures drawdown from the starting balance. Many firms also use trailing drawdowns or daily loss limits, which this simulation doesn’t model. Check each rule against the firm’s own terms. Correlated positions are a separate problem: three open trades on related markets at 0.5% each can behave like one 1.5% trade, which portfolio heat helps you measure.
When to re-run the test
The result is only as current as the sample. Re-run it:
- every 50 new trades in the same strategy version;
- after any change to entries, exits, stop placement or markets traded;
- when your costs change, such as a new broker, account type or session;
- when a drawdown crosses the warning level in your plan.
The drawdown analysis guide covers what to check when that warning level is crossed. Record the size rule and the stress test behind it in your journal, so the next review compares like with like.
Common mistakes
- Using planned reward-to-risk instead of realized R. Targets you set aren’t results you got.
- Mixing strategies or versions in one sample. The blended edge belongs to no strategy you trade now.
- Reading 0% as safe. A result of 0 in 10,000 runs means it didn’t happen in the simulation. It can still happen in the market.
- Trusting a short sample. Fifty trades leave a win rate range so wide that almost any size can look fine.
- Raising size after a hot streak. That’s a sample of the best trades, the exact case Step 4 is built to correct.
- Treating the result as a forecast. Risk of ruin assumes the future looks like your sample. Markets change, so treat the output as an upper limit on size.
Risk of ruin FAQ
What is a good risk of ruin for trading?
There’s no standard number. It depends on what ruin costs you: a funded account you can buy again is a smaller loss than savings you can’t replace. Pick a threshold for your own situation, write it down before you run the test, and apply it to the stressed results as well as the as-recorded ones.
How do you calculate risk of ruin?
For simple 1:1 bets, the gambler’s ruin formula (q ÷ p)^U gives an estimate, where U is the number of risk units between you and the ruin level. For trading results, a Monte Carlo simulation that resamples your closed trades in R-multiples is more accurate, because it keeps your actual mix of wins and losses and works with percentage sizing over a set number of trades.
How many trades do I need to estimate risk of ruin?
More is better, from a single strategy version. At 150 trades, the 95% range around a 44% win rate is still about 16 points wide. Below about 100 trades, treat the result as provisional and use the stressed scenarios to set size.
Does risk of ruin apply to prop firm challenges?
Yes, for the maximum loss rule. Set the ruin level to the firm’s maximum loss and run the test at your planned risk per trade. Trailing drawdowns and daily loss limits need separate checks against the firm’s rules.
Is risk of ruin the same as maximum drawdown?
No. Maximum drawdown is the largest peak-to-trough decline in one history. Risk of ruin is the probability, across many simulated futures, of the account falling to a set level. The simulation also gives you a distribution of drawdowns, such as the worst drawdown in 1 run of 20, which is a useful planning number.
Run it on your own trades
UltraTrader AI calculates your win rate, average win and loss and maximum drawdown from the trades you import, the inputs this test starts from.
The example uses a hypothetical journal for illustration. Simulated results depend on the inputs and assumptions described above and aren’t a prediction of future performance. This is educational content, not financial advice.