Guide · Risk

Kelly, fractional Kelly, and the gap between them

Kelly answers a precise question: what fraction of capital maximises the long-run growth rate of a repeated bet. It answers it optimally, and the answer is usually too aggressive to trade.


What Kelly actually maximises

Kelly does not maximise expected profit. If it did, the answer would always be "bet everything" for any positive-expectancy wager, and one loss would end the sequence. Kelly maximises the expected logarithm of wealth, which is the same thing as maximising the long-run compound growth rate.

The switch from arithmetic to logarithmic is the whole insight. Wealth compounds multiplicatively — a 50% loss followed by a 50% gain leaves you at 0.5 × 1.5 = 0.75, not back at 1.0 — so the quantity that adds up across trades is the log of each period's growth factor, not the percentage. The recovery asymmetry that makes this true is worked out in full in the drawdown recovery math guide.

After n bets, wealth W_n = W_0 × Π (1 + f × R_i) Take logs: ln(W_n / W_0) = Σ ln(1 + f × R_i) Divide by n and let n grow: G(f) = E[ ln(1 + f × R) ] the per-bet growth rate Kelly = the f that maximises G(f).

Deriving the discrete formula

Take the simplest case: risk fraction f of capital, win with probability p and receive b times what you risked, lose with probability q = 1 − p and lose the whole f. Write down G(f), differentiate, set it to zero.

G(f) = p · ln(1 + b·f) + q · ln(1 − f) dG/df = p·b ÷ (1 + b·f) − q ÷ (1 − f) = 0 p·b·(1 − f) = q·(1 + b·f) p·b − p·b·f = q + q·b·f p·b − q = b·f·(p + q) = b·f since p + q = 1 f* = (p·b − q) ÷ b = p − (1 − p) ÷ b

That is the whole derivation. It is worth doing once by hand, because the shape of G(f) — rising steeply from zero, flattening at the top, then plunging — explains every practical rule that follows.

A worked example

A setup that wins 45% of the time and pays 2R on a win, taken from a journal with enough trades to estimate both:

p = 0.45, b = 2 f* = 0.45 − (1 − 0.45) ÷ 2 = 0.45 − 0.55 ÷ 2 = 0.45 − 0.275 = 0.175 → risk 17.5% of the account on this trade

Risking 17.5% of the account on one idea is not a plan, it is a countdown. The arithmetic is correct; the output is unusable. Understanding exactly why is the rest of this guide.

The full grid

Kelly is more legible as a surface than as a single number. Every cell below is f* = p − (1 − p) ÷ b, so it is the percentage of capital full Kelly says to put at risk on one bet:

Win rateb = 1Rb = 1.5Rb = 2Rb = 3R
30%−40.0%−16.7%−5.0%+6.7%
35%−30.0%−8.3%+2.5%+13.3%
40%−20.0%0.0%+10.0%+20.0%
45%−10.0%+8.3%+17.5%+26.7%
50%0.0%+16.7%+25.0%+33.3%
55%+10.0%+25.0%+32.5%+40.0%
60%+20.0%+33.3%+40.0%+46.7%

Two things fall straight out of that grid. First, the zero line is the break-even win rate: f* turns positive exactly when p exceeds 1 ÷ (1 + b) — 50% at 1R, 40% at 1.5R, 33.3% at 2R, 25% at 3R. Second, the positive numbers are absurd across the whole grid. Even a modest 40% at 2R produces a full-Kelly instruction to risk 10% of the account per trade, which is roughly ten times what a working position sizing rule would allow.

The growth curve, and why the peak does not matter

Plug fractions of f* back into G(f) for the same 45%/2R setup. The column that matters is the third one — how much of the theoretically available growth you actually keep.

SizingRisk per tradeGrowth per trade G(f)% of max growthTrades to double
0.25× Kelly4.38%0.0131444.9%53
0.5× Kelly8.75%0.0222175.9%31
0.75× Kelly13.13%0.0275194.1%25
1.0× Kelly17.50%0.02924100.0%24
1.25× Kelly21.88%0.0275394.2%25
1.5× Kelly26.25%0.0224376.7%31
2.0× Kelly35.00%0.001856.3%374

Read the 0.5× and 1.5× rows together. They are the same distance from the peak and they keep almost the same growth — 75.9% versus 76.7% — but one of them roughly triples the variance of the other. If the curve is symmetric in growth terms and wildly asymmetric in risk terms, the correct side to be wrong on is obvious.

Then read the 2.0× row. Double the Kelly fraction and the growth rate collapses to 6.3% of the maximum; a little past that it goes negative and the strategy loses money despite a genuinely positive edge. Overbetting does not reduce your return proportionally, it destroys it. There is no equivalent cliff on the downside — underbetting is merely slow.

The return-based form, for trades that are not coin flips

Real trades do not produce two outcomes. They produce a distribution of R-multiples: a few big winners, a mass of small ones, some scratches, a stack of full stop-outs. The discrete p-and-b formula cannot represent that. For an arbitrary R distribution, maximise E[ln(1 + f·R)] directly, or use the second-order approximation, which is accurate for the magnitudes traders deal with:

f* ≈ E[R] ÷ E[R²] E[R] = expectancy in R (mean of the R column) E[R²] = mean of the SQUARED R column Equivalently, in continuous form: f* ≈ μ ÷ σ²

Sanity-check it against the discrete case first. For p = 0.45 at b = 2: E[R] = 0.45(2) + 0.55(−1) = 0.35, and E[R²] = 0.45(4) + 0.55(1) = 2.35, so f* ≈ 0.35 ÷ 2.35 = 14.9% against the exact 17.5%. The approximation runs slightly conservative, which is the correct direction for it to err.

Now a realistic hundred-trade R distribution of the kind a trading journal actually produces, including the partial exits and scratches that the two-outcome model pretends do not exist:

R resultTradesContribution to Σ RContribution to Σ R²
+3.0R12+36.0108.00
+1.5R18+27.040.50
+0.5R15+7.53.75
−0.3R20−6.01.80
−1.0R35−35.035.00
Total (100 trades)100+29.5189.05
E[R] = 29.5 ÷ 100 = 0.295 R per trade E[R²] = 189.05 ÷ 100 = 1.8905 f* ≈ 0.295 ÷ 1.8905 = 0.156 → 15.6% of capital Quarter Kelly = 0.156 ÷ 4 = 3.9% Win rate here is 45 of 100, and the expectancy is +0.295R — a perfectly respectable system that still produces an unusable full-Kelly number.

This form is worth using because it consumes the same data you already keep. If you record entry, stop, exit and the resulting R on every trade, you can compute both columns in one pass. Where those columns come from is covered in the R-multiple and expectancy guide.

Estimation error: how wide f* really is

Kelly treats p as known. You have an estimate from N trades, and the standard error of a proportion is √(p(1−p)/N). Push the confidence interval on p through the Kelly formula and see how much of it survives:

Trades measuredStd error of p95% CI on win rate95% CI on f* at b = 2Range
500.070431.2% to 58.8%−3.2% to +38.2%Includes zero — no usable answer
1000.049735.3% to 54.8%+2.9% to +32.1%11× wide
4000.024940.1% to 49.9%+10.2% to +24.8%2.4× wide
1,0000.015741.9% to 48.1%+12.9% to +22.1%1.7× wide

At 50 trades — which is more than most retail traders have per setup — the Kelly fraction for a 45%/2R system is somewhere between "do not trade this" and "risk 38% of the account". At 100 trades, the plausible range still spans a factor of eleven. And that interval assumes the win rate is stationary, which it is not.

This is the actual argument for fractional Kelly, and it is stronger than the usual one about nerves. You are not shading a known optimum down for comfort; you are sizing against the bottom of a confidence interval because the point estimate is nearly meaningless. Quarter Kelly on the 100-trade point estimate is 4.4%, which sits comfortably inside even the pessimistic end of that interval. Full Kelly on the point estimate does not.

What each fraction costs in drawdown

For a continuously-rebalanced Kelly bettor at fraction k of full Kelly, the probability of ever seeing wealth fall to a fraction α of its starting value has a clean closed form: α^(2/k − 1). It is an idealisation — real trades are discrete and gap — but the ordering it produces is right, and the full-Kelly row is the number people find most surprising.

SizingExponent 2/k − 1P(ever −25%)P(ever −50%)P(ever −80%)
0.25× Kelly7.0013.3%0.8%0.001%
0.5× Kelly3.0042.2%12.5%0.8%
1.0× Kelly1.0075.0%50.0%20.0%
1.5× Kelly0.3390.9%79.4%58.5%

At full Kelly the chance of halving your account at some point is 50%. Not a tail event — a coin flip, on a strategy with a genuine positive edge, sized exactly optimally. Pair that with the growth table above and the trade becomes obvious: dropping to half Kelly costs 24% of the growth rate and takes the halving probability from 50% to 12.5%.

Costs shrink Kelly faster than they shrink expectancy

Slippage does not just trim the winner, it also deepens the loser. With a win paying a and a loss costing c, the generalised optimum is f* = p/c − q/a. Charge a fixed slippage per side against a nominal 2R setup and watch what happens:

Slippage per sideNet win aNet loss cKelly f*Change vs frictionless
0.00R2.00R1.00R17.50%
0.05R1.90R1.10R11.96%−32%
0.10R1.80R1.20R6.94%−60%
0.15R1.70R1.30R2.26%−87%

A tenth of an R per side — perfectly ordinary on an illiquid name or a fast open — removes 60% of the optimal bet size. Expectancy over the same range falls from +0.35R to +0.15R, a 57% cut, but the compounding penalty lands harder because Kelly is quadratic in the edge. Any Kelly number computed on frictionless backtest fills is roughly double the honest one. The cost assumptions that produce this are discussed in the walk-forward testing guide.

Correlation forces a portfolio-level cap

Kelly assumes one bet resolves before the next begins. Swing trading violates that constantly: five positions open at once, four of them semiconductors. For n simultaneous positions of equal edge with pairwise correlation ρ, the per-position Kelly fraction falls to f_single ÷ (1 + (n − 1)ρ).

f_i = f_single ÷ (1 + (n − 1)·ρ) Starting from the 17.5% single-bet answer above:
PositionsCorrelation ρDivisorPer positionTotal capital at risk
11.0017.50%17.5%
40.01.0017.50%70.0%
40.31.909.21%36.8%
40.62.806.25%25.0%
40.93.704.73%18.9%
41.04.004.38%17.5%
60.64.004.38%26.2%

The last four-position row is the sanity check that makes the table land: at ρ = 1.0 the four positions collapse into exactly the single 17.5% bet, because that is what they are. The row above it says that four names at ρ = 0.9 — four US large-cap semiconductors on the same macro headline is not far off that — should each carry a quarter of the size you would give them standing alone.

In practice nobody estimates ρ per pair in real time. The workable substitute is a hard cap on total open risk plus a cluster rule: count a correlated group as one position sized at the group's combined risk. Portfolio heat caps and cluster rules are covered properly in the position sizing guide.

When Kelly says zero

This is the output people ignore and it is the most valuable one. f* goes non-positive whenever p ≤ 1 ÷ (1 + b), and the formula is then not saying "be careful" — it is saying there is no position size at which this trade makes money. A negative Kelly fraction on a long setup does not mean go short, either, unless you have separately shown the inverse has an edge after costs.

  • b = 1R needs better than a 50% win rate. Most "I take profits at 1R to feel good" systems fail here.
  • b = 1.5R needs better than 40%.
  • b = 2R needs better than 33.3%.
  • b = 3R needs better than 25%.
  • Push the numbers from the costs table through this and the break-even win rate rises, because c grows while a shrinks.

Run this check per setup tag rather than on the account as a whole. An account can be profitable while two of its four setups are negative-Kelly and are being subsidised by the other two. That decomposition is the single most useful thing a journal produces, and it is why the setup tag is a required field rather than a nice-to-have.

How the fixed-percent rule compares, numerically

Take the same 45%/2R setup and price a plain 1% rule against it. 1% is 0.057 of the 17.5% full-Kelly fraction — roughly one-seventeenth Kelly, far below even the quarter-Kelly convention.

RuleRisk per tradeAs a fraction of Kelly% of max growthTrades to double
Fixed 1%1.00%0.06×11.6%205
Fixed 2%2.00%0.11×22.4%106
Quarter Kelly4.38%0.25×44.9%53
Half Kelly8.75%0.50×75.9%31
Full Kelly17.50%1.00×100.0%24

So a 1% rule genuinely does cost a lot of theoretical growth — about 88% of it. The honest counter is the estimation-error table: the 17.5% input has a 95% confidence interval running from +2.9% to +32.1% at 100 trades, so "100% of max growth" is a number computed from a quantity you do not actually know. The 1% rule buys robustness against being wrong about p, and it is the only column here that survives the case where your true win rate is 38% rather than 45%.

The practical reading: if your Kelly fraction says 17.5% and your rule says 1%, the rule is not being timid — it is pricing in the fact that you do not really know p. Use Kelly as a ceiling, not a target. If a fixed rule ever exceeds quarter Kelly on your measured edge, that is a real signal you are oversized.

A workable default

  1. Compute E[R] and E[R²] from your own journal, per setup tag, not for the account as a whole.
  2. Get f* ≈ E[R] ÷ E[R²]. If it is zero or negative, the setup is not tradeable at any size — stop there.
  3. Recompute it with realistic slippage baked into both the winner and the loser. Expect the answer to fall by a third to a half.
  4. Put a confidence interval on the win rate and recompute f* at the lower bound. That is your honest ceiling.
  5. Take at most a quarter of that, and cap the result at whatever your fixed rule allows — typically 0.5% to 1.5%.
  6. Divide again for correlated positions, or apply a total-portfolio-heat cap instead, which is simpler and errs the right way.
  7. Re-derive the whole thing every 50 to 100 closed trades. Edges decay, and a stale p is worse than no p.

The free risk toolkit computes the Kelly fraction alongside expectancy, break-even win rate, and a Monte Carlo risk-of-ruin simulation, so you can watch all four move together as you change the inputs. TradeLog produces the E[R] and E[R²] columns from trades you have actually taken, which is the only way to stop guessing at p. And before any of this is worth doing with real money, the honest sequencing problem is in going from paper to live.

Educational content, not financial advice. No live profit-and-loss figures are claimed anywhere on this site; backtest and walk-forward results are always labelled as such. Full terms: /terms.html

Tools referenced in this guide


FAQ

Quick answers

What is the Kelly criterion?

The Kelly criterion gives the fraction of capital that maximises the long-run compound growth rate of a repeated bet. It works by maximising the expected logarithm of wealth rather than expected profit, because wealth compounds multiplicatively. For a bet winning with probability p and paying b to 1, the optimal fraction is f* = p - (1 - p) / b.

How do you calculate Kelly for trading?

Use your measured win rate as p and your reward-to-risk ratio as b. A setup winning 45% of the time at 2R gives f* = 0.45 - 0.55/2 = 0.175, or 17.5% of capital, which is mathematically correct and far too aggressive to trade. For a real R distribution with more than two outcomes, use the approximation f* is roughly E[R] divided by E[R squared], computed straight from your journal.

Why do traders use half or quarter Kelly?

Because the growth curve is nearly flat around its peak and collapses past it. Half Kelly captures about 76% of the maximum growth rate while cutting the probability of ever halving your account from 50% down to about 12.5%. Fractional sizing also protects against the near-certainty that your win rate estimate is wrong.

What happens if you bet more than full Kelly?

Growth falls quickly and drawdowns compound. At twice the Kelly fraction the growth rate drops to about 6% of its maximum, and a little further past that it turns negative even though the underlying edge is genuinely positive. Underbetting is merely slow; overbetting destroys the compounding.

What if the Kelly fraction is negative?

A negative Kelly fraction means the bet has negative expectancy, so there is no size at which it makes money and the correct position size is zero. This happens whenever the win rate falls below 1 divided by (1 + b): under 50% at 1R, under 40% at 1.5R, under 33.3% at 2R. It is arguably the most useful output the formula produces.

How many trades do you need before Kelly is meaningful?

More than most traders have. With 100 trades at a 45% win rate the 95% confidence interval on the win rate runs from about 35.3% to 54.8%, which turns into a Kelly fraction anywhere between 2.9% and 32.1% at 2R. At 50 trades the interval includes zero. This estimation error, not squeamishness, is the real argument for taking a small fraction of Kelly.

Does Kelly work when you hold several positions at once?

Not directly, because Kelly assumes one bet resolves before the next begins. For n simultaneous positions of equal edge with pairwise correlation rho, the per-position fraction falls to the single-bet fraction divided by (1 + (n - 1) times rho). Four positions at 0.9 correlation should each be about a quarter of their standalone size, which is why a portfolio-level heat cap is the practical substitute.

Should beginners use Kelly to size positions?

Generally no. A fixed small risk per trade, typically 0.5% to 1.5% of the account, is more robust because it does not depend on an accurate edge estimate. Kelly is most useful as a ceiling and a diagnostic: if your fixed rule ever exceeds quarter Kelly on your measured edge, you are oversized for the edge you can actually demonstrate.