Two traders can hold the exact same signal and end the decade in opposite places — one compounding, one ruined — purely because of how much they bet each time. The Kelly criterion is the answer to “how much?”: the position size that maximises the long-run growth rate of wealth. We derive it from first principles, compute it on twenty-five years of real SPY data, and show — with real drawdowns — why almost nobody runs full Kelly.
1.The question Kelly answers
Suppose you have a genuine edge — a bet that pays off more often than not, or a strategy with positive expected return. Bet too little and you leave growth on the table. Bet too much and a run of losses takes you to zero, from which no edge can recover. There is a single fraction of capital in between that is provably optimal for long-run growth, and it does not depend on your risk preferences — only on the edge and the odds.
The key reframing, due to Kelly (1956), is to stop maximising expected wealth and start maximising expected log-wealth. Wealth compounds multiplicatively, so the quantity that actually accumulates over many bets is the average growth rate — the mean of the log returns, not the mean of the returns.
2.Maximising log-growth
Take the simplest case: a bet that wins with probability , paying to 1, and loses your stake with probability . Bet a fraction of wealth. After one round your wealth multiplies by on a win or on a loss. The expected log-growth per bet is
# g(f) = p * ln(1 + b*f) + q * ln(1 - f)
# Maximise: take d/df, set to zero
# p*b / (1 + b*f) - q / (1 - f) = 0
# Solve for f -> f* = (p*b - q) / b = (p*(b+1) - 1) / bThe function is concave — it rises to a single peak and then falls. That peak is the Kelly fraction. Crucially, goes negative well before : bet your whole stack and a single loss is fatal, so the long-run growth rate of full-bet gambling is minus infinity.
Kelly maximises the rate at which money compounds — not how much you expect to have after one bet, but how fast you grow if you keep playing.
3.The Kelly fraction
For the discrete bet, the optimum is : your edge divided by the odds. For continuous returns — a strategy with mean excess return and variance — the same maximisation gives the elegant . Both say the same thing: size up with edge, size down with risk, and punish variance quadratically.
4.Kelly in code
Both forms are a couple of lines. The continuous version is what a systematic book uses: feed it the strategy’s estimated mean and volatility and it returns the growth-optimal leverage. On real SPY data, 2000-01-03 to 2024-12-31 (6,288 trading days), the estimates are and a year:
import numpy as np
def kelly_discrete(p: float, b: float) -> float:
"""Fraction to bet on a win-prob p, b-to-1 payoff."""
q = 1 - p
return (p * b - q) / b
def kelly_continuous(mu: float, sigma: float) -> float:
"""Growth-optimal leverage for a strategy with excess
return mu and volatility sigma (same time unit)."""
return mu / sigma**2
# 55% edge at even money -> bet 10% of capital
print(kelly_discrete(0.55, 1.0)) # 0.10
# SPY 2000-2024: mu = 0.0927, sigma = 0.1939
print(kelly_continuous(0.0927, 0.1939)) # 2.47That 2.47x is the warning the formula always gives in practice: full Kelly on estimated parameters says to run the S&P 500 at two and a half times leverage — through 2008. It is wildly aggressive, because is never known as precisely as the maths assumes.
5.Why bet fractional Kelly
Full Kelly is optimal only if you know , , and exactly. You don’t — you estimate them, with error. Overestimate the edge and you sail past the peak of the growth curve into the region where growth falls and drawdowns explode. The curve below is not a sketch: it is the realised growth rate on the actual 25 years of SPY daily returns, fat tails included.
Because the curve is flat near its top, half-Kelly captures 75% of the growth rate for half the volatility — a trade almost everyone takes. Here is what each sizing actually did, rebalanced daily through the dot-com bust, the GFC and COVID:
| Sizing | f | CAGR 2000–24 | Terminal wealth | Max drawdown | Growth captured |
|---|---|---|---|---|---|
| Full Kelly | 2.47× | 12.0% | 17.1× | -91.2% | 100% |
| Half Kelly | 1.23× | 8.9% | 8.5× | -63.9% | 75% |
| Quarter Kelly | 0.62× | 5.1% | 3.5× | -37.5% | 44% |
| SPY unlevered | 1.00× | 7.7% | 6.3× | -55.2% | 65% |
Full Kelly went down -91.2% peak-to-trough in the GFC — a hole most humans (and all investors with redemptions) abandon at the bottom of. Half Kelly’s worst drawdown was -63.9% for a terminal wealth still 8.5× the start. A seeded bootstrap of 2,000 ten-year futures from the same return distribution makes the trade-off explicit:
| Sizing | Median 10y wealth | 5th pct wealth | Median max DD | Worst-5% max DD |
|---|---|---|---|---|
| Full Kelly | 3.0× | 0.24× | -73.9% | -93.3% |
| Half Kelly | 2.3× | 0.65× | -45.3% | -69.4% |
| Quarter Kelly | 1.6× | 0.87× | -24.9% | -42.6% |
6.Takeaways
Kelly turns “how much should I bet?” from a feeling into a formula: , or . On real SPY data the formula says 2.47× — and the same data shows what running it costs: a -91.2% drawdown on the way to the fastest compounding. It is the size that grows capital fastest and a hard ceiling above which more risk buys less growth. In the real world, where parameters are estimated, treat full Kelly as the do-not-exceed line and run a fraction of it — half Kelly kept 75% of the growth rate for a drawdown -63.9% instead of -91.2%.
References
- 1.Kelly, J. L. (1956). A New Interpretation of Information Rate. Bell System Technical Journal, 35(4).
- 2.Thorp, E. O. (2006). The Kelly Criterion in Blackjack, Sports Betting, and the Stock Market. Handbook of Asset and Liability Management.
- 3.MacLean, L., Thorp, E. & Ziemba, W. (2011). The Kelly Capital Growth Investment Criterion. World Scientific.
