Foundations — survival maths

Risk is the only thing you control.

You cannot control whether a trade wins. You control how much it costs when it doesn't, how many you take, and whether you're still here next month. This page is the arithmetic: R-multiples, expectancy, position sizing, drawdown recovery, loss limits, correlation, and a Monte Carlo you can run on your own numbers.

1 · Think in R, not in money ↑ top

R is your risk on a single trade — the distance from entry to stop, in money. Every outcome is then measured in multiples of it. This one change of unit makes results comparable across instruments, position sizes and account sizes, and it strips the emotion out of a number like "−£340".

ENTRY 5,240 STOP 5,220  =  1R = 20 pts +1R   5,260 +2R   5,280 +3R   5,300 risk = 1R reward = 2R Whether 1R is £50 or £500 changes nothing about the analysis. Judge every trade, and every month, in R.
Fig R1. One trade in R. A +2R winner means the same thing on Gold as on the DAX — which is what makes a journal comparable.
Why professionals talk this way
"I made £900 today" tells you nothing — was that +0.5R on huge size or +6R on correct size? The first is luck with poor process, the second is a great day. R normalises luck out of the conversation. From here on, every metric on this page is in R.

2 · Expectancy — the number that decides everything ↑ top

# Expectancy per trade, in R
Expectancy = (WinRate × AvgWin_R) − (LossRate × AvgLoss_R)

# Example: 45% win rate, winners average +2.1R, losers average −1.0R
= (0.45 × 2.1) − (0.55 × 1.0) = 0.945 − 0.55 = +0.395R per trade

# Over 20 trades/month → +7.9R/month. At 1% risk per trade → ~+7.9% monthly.
66.7%50%40% 33%28%25% 0.5R1R1.5R 2R2.5R3R 4R5R reward : risk ratio breakeven win rate Above the curve = profitable. Below = losing, no matter how it feels.
Fig R2. Breakeven win rate = 1 ÷ (1 + R). At 2R you only need to be right a third of the time — this is why target selection matters more than entry accuracy.
ProfileWin rateAvg winAvg lossExpectancyFeels like…
Scalper65%+0.8R−1.0R+0.17RConstant small wins; one bad exit ruins the day
Balanced day trader45%+2.1R−1.0R+0.40RLosing more often than winning, still growing
Trend follower32%+3.5R−1.0R+0.12RLong dry spells, occasional big days
The common trap62%+0.6R−1.4R−0.16R"I win most trades" — and bleed anyway

That last row is the most common losing profile in retail trading: cutting winners early and letting losers run past the stop. High win rate, negative expectancy. It's why win rate alone is a vanity metric.

3 · Position sizing ↑ top

# The only sizing formula you need
Size = (Account × Risk%) ÷ (StopDistance_points × PointValue)

# Worked: £25,000 account, 1% risk, GER40 long, stop 22 points away,
#         point value £1 per point per contract
RiskBudget  = 25000 × 0.01 = £250
Size        = 250 ÷ (22 × 1) = 11.4 → round DOWN to 11 contracts
ActualRisk  = 11 × 22 × 1 = £242  (0.97% — always round down, never up)
1. Find the structural stop level 2. Pad it by ~1 × ATR 3. Measure R:R to nearest real level R:R below 1.5? NO TRADE — size is zero R:R ≥ 1.5? Apply the sizing formula 4. Round DOWN · place stop with the order
Fig R3. Note the order: the stop comes first, size is derived. Sizing first and then hunting for a stop that fits is backwards — and is how people end up with 6-point stops on 20-point-ATR instruments.
How much per trade? The 0.5–2% question
Risk / trade10 straight losses costs20 straight losses costsSuits
0.5%−4.9%−9.6%Learning, new strategy, volatile instruments (Silver, WTI)
1.0%−9.6%−18.2%The default for a proven, journalled edge
2.0%−18.3%−33.2%Only with 100+ logged trades and verified positive expectancy
5.0%−40.1%−64.2%Nothing. This is where accounts die.

A 10-trade losing streak is not unusual: at a 45% win rate it happens roughly once every 300 trades — a few months of normal activity. Your risk-per-trade must be a number you can take ten times in a row without changing how you trade. That's the whole test.

Scale risk to conditions, not to confidence
Legitimate reasons to halve size: unusually wide spreads, a market you trade rarely, the setup is B-grade, you're inside a drawdown, or it's a news-adjacent session. Illegitimate reason to double size: "this one looks really good." Conviction is not evidence — the trades that feel best are frequently late-trend entries.

4 · Drawdown — the asymmetry nobody feels until it's late ↑ top

11%25%43% 67%100%150% 233%400% −10%−20%−30% −40%−50%−60% −70%−80% drawdown suffered → gain required to get back to even
Fig R4. Recovery is non-linear: gain needed = loss ÷ (1 − loss). Lose 50% and you must double the remaining account just to break even.

This asymmetry is the entire argument for hard loss limits. A −10% month is a bad month you trade out of; a −50% month is a different career. The defence is mechanical:

Run your own risk-of-ruin — a 20-line Monte Carlo

Don't take anyone's word for what your risk settings imply. Simulate your own edge thousands of times and look at the distribution of outcomes — including the ugly tail.

# Monte Carlo: what does MY edge actually feel like over a year?
import numpy as np

def simulate(win_rate=0.45, avg_win=2.1, avg_loss=1.0,
             risk_pct=0.01, trades=250, runs=10_000, seed=42):
    rng = np.random.default_rng(seed)
    finals, max_dds, ruined = [], [], 0
    for _ in range(runs):
        equity, peak, max_dd = 1.0, 1.0, 0.0
        for _ in range(trades):
            r = avg_win if rng.random() < win_rate else -avg_loss
            equity *= (1 + r * risk_pct)          # compounding, fixed-fractional
            peak = max(peak, equity)
            max_dd = max(max_dd, 1 - equity / peak)
        finals.append(equity); max_dds.append(max_dd)
        if equity < 0.5: ruined += 1          # "ruin" = lost half the account
    return {
        'median_return': np.median(finals) - 1,
        'p10_return'   : np.percentile(finals, 10) - 1,   # the bad-luck year
        'median_maxDD' : np.median(max_dds),
        'worst_maxDD'  : np.percentile(max_dds, 95),
        'prob_halving' : ruined / runs,
    }

print(simulate())                       # baseline
print(simulate(risk_pct=0.03))         # same edge, 3% risk — watch the tail explode
print(simulate(win_rate=0.40))         # edge decays 5 points — still viable?

Read the p10 and the 95th-percentile drawdown, not the median. The median outcome is what you daydream about; the p10 path is the one that makes people quit. If your settings produce a plausible-looking median but a −45% bad-luck path, your risk per trade is too high regardless of how good the strategy is.

The stress tests that matter
Re-run with (a) your real journal statistics rather than assumed ones, (b) win rate cut by 5 points to model edge decay, and (c) friction added — subtract your average spread cost in R from every trade. A strategy that survives all three is one you can size up. One that only works on optimistic inputs is a story.

5 · Correlation — when three trades are really one ↑ top

Risking 1% each on US500, US100 and GER40 longs is not 3 × 1% of diversified risk — it's roughly one 2.5% bet on "equities go up". Correlation is the hidden way disciplined sizing turns into oversizing.

EQUITY BLOC — move together on risk sentiment US500US100GER40 UK100JP225 METALS — move together on USD / yields GoldSilver ENERGY — own drivers WTI Within a bloc, positions in the same direction stack risk. Across blocs, risk is genuinely more independent — but never zero.
Fig R5. Correlation blocs among the focus markets. UK100 sits partly in the commodity world too, which is why it lags the others on tech-driven days.

6 · Trade management — partials, trails and the exit problem ↑ top

Three exit models, and how to pick one
ModelHow it worksBest forCost
Fixed targetExit fully at a pre-set level (e.g. 2R or the next structure)Range days, scalps, news-adjacent tradesCaps the rare huge winner that pays for the month
Partial + trailHalf off at 1–1.5R, stop to breakeven, trail the rest on structure or SupertrendThe default for intraday trend setupsSlightly lower average win than pure runners; much better psychology
Full runnerNo partials; trail everything until stopped outStrong trend days, wave-3 contextsMany give-backs; requires real discipline to hold through pullbacks
entry initial stop −1R → breakeven trail under each higher low 50% off at +1.5R Partial + trail: the trade can no longer lose after the first target, and the remainder keeps trend upside.
Fig R6. The default management model used throughout this site's strategies.
The management traps
Breakeven too early — moving the stop to entry after 0.3R converts winners into scratches; wait for a real structural reason (a higher low forming) or at least 1R.
Trailing too tight — a trail inside normal noise (less than ~1 ATR) guarantees you exit every trend early. Trail behind structure, not behind price.
Target beyond the obstacle — if a major level sits between entry and target, that's your realistic target, not the pretty number further out.
The metrics dashboard — what to actually track
MetricFormulaHealthy rangeWhat a bad reading means
Expectancy (R)(WR × AvgWin) − (LR × AvgLoss)> +0.2RNo edge — stop sizing up, start diagnosing by setup tag
Profit factorgross profit ÷ gross loss> 1.3Below 1.0 you're paying for the privilege of trading
Avg win ÷ avg loss—> 1.5 for <50% WRCutting winners early or letting losers run
Max drawdown (R)peak-to-trough in R< 10RRisk per trade too high, or trading through tilt
Rule-adherence %on-plan trades ÷ all trades> 90%The most important one. A good system executed 60% of the time is a different, worse system
Trades per day—stableSpikes correlate with revenge trading — check it against P&L by day

Track these monthly, per setup tag and per market — that's how you discover that (say) your C1 pullbacks on GER40 carry the account while your Silver scalps quietly drain it. Prompt 17 on the prompts page does this analysis from a pasted journal.