Kelly Criterion and Optimal f: The Fastest-Growth Bet Size You Shouldn't Use
Where the 1956 Kelly formula comes from, how f* = p − q/b works, why full Kelly brings 80%+ drawdowns, the cliff at 2× Kelly, and why 0.5–1% risk is the practical answer.
- Kelly is the risk per trade that makes an account grow fastest in the long run, f* = p − q ÷ b. It is the peak of growth, not a level most people can live with
- Even with exact numbers, full Kelly gave a median maximum drawdown of 83% over 500 simulated trades. Half Kelly keeps 75% of the growth with far shallower drawdowns
- Beyond about 2× Kelly the account shrinks in the long run even though the system has an edge, and overestimating the win rate by just 5 points can put you there
- A win rate measured over 100 trades can be off by about ±5 points, so the computed Kelly can be wrong by a multiple. Treat Kelly as a ceiling and risk well below it
The Kelly criterion is a formula for how much of your account to risk per trade if you want it to grow as fast as possible over the long run. It sounds like the final word on position size, but it hides two conditions: you must know your true edge exactly, and you must be able to sit through very deep drawdowns. This article works out where Kelly comes from, how to use it, why the full formula is dangerous, and why the people who understand it best risk several times less than it says.
If you haven’t read about volatility drag and the hump-shaped growth curve yet, start with Compounding position size. This article picks up from there.
Where Kelly comes from
In 1956 J. L. Kelly Jr., a researcher at Bell Labs, published “A New Interpretation of Information Rate” in the Bell System Technical Journal. He wasn’t writing about trading. He asked how much a gambler who receives advance tips over a noisy line should bet each round. The answer: bet the fraction of capital that makes the average log of capital grow fastest, and that maximum growth rate is tied exactly to how much useful information the gambler has.
Edward Thorp later applied the idea to blackjack and then to financial markets, which is how the formula became known among traders.
The point people forget: Kelly does not maximise average profit. To maximise the average you would bet everything every time, which ends in ruin for certain. Kelly maximises the compound growth rate, which is what a real account actually experiences.
The formula f* = p − q ÷ b and an example
For a system with two outcomes, a win of b times the amount lost, or a loss of 1 unit:
- p = win rate, q = 1 − p = loss rate
- b = average win ÷ average loss (the RR you actually get)
- f* = the share of the account you lose if the Stop loss is hit
f = p − q ÷ b*, or equivalently f = edge per trade ÷ b*
Example: a hypothetical system whose numbers are known exactly. It wins 45% of trades, winners make +1.5R and losers cost −1R.
- Edge per trade (Expectancy) = 0.45 × 1.5 − 0.55 × 1 = 0.675 − 0.55 = +0.125R
- f* = 0.45 − 0.55 ÷ 1.5 = 0.45 − 0.3667 = 0.0833, or 8.33%
- Check with the other form: 0.125 ÷ 1.5 = 0.0833. They match
- On a 10,000-dollar account, Kelly says to size the trade so that a Stop loss costs 833 dollars. It does not mean buying 8.33% of the account. How to turn that into a lot size is in Position size from your Stop loss
Why is this the fastest point? The growth rate per trade is g(f) = p × ln(1 + b × f) + q × ln(1 − f). At f = 8.33%, g = 0.00515 per trade, so the median account grows by e^(100 × 0.00515) = 1.67 times per 100 trades. Every other f, lower or higher, gives less.
This system has a much bigger edge than most real ones. It is here to make the maths easy to see, not as a return to expect.
The cliff at 2× Kelly
| Risk per trade | Multiple of Kelly | Growth rate vs full Kelly | Median growth per 100 trades |
|---|---|---|---|
| 2.08% | 0.25× | 44% | +25.5% |
| 4.17% | 0.5× | 75% | +47.3% |
| 8.33% | 1× | 100% | +67.3% |
| 12.5% | 1.5× | 76% | +47.6% |
| 16.67% | 2× | 3% | +1.4% |
| 20.83% | 2.5× | negative | −45.8% |
| 25% | 3× | negative | −77.5% |
Three things to read from this table:
- The hump is not symmetric in pain. Risking 1.5× Kelly gives the same growth rate as half Kelly (about 75%), but in the simulation below its median maximum drawdown is 95.5%, against 53.9%. Same growth, far more pain. If you are going to miss, miss low
- Growth hits zero at about 2× Kelly. In this example the crossing is at 16.78%, or 2.01×. For systems with a thinner edge it gets closer to exactly 2×
- Beyond that, the account shrinks in the long run even though every trade still has a +0.125R edge, because multiplicative losses take away more than the gains add
Full Kelly hurts, even with the right numbers
We simulated 20,000 random orderings of 500 trades from the same system (wins 45%, +1.5R, −1R) and measured the final balance and the maximum drawdown along the way.
| Risk per trade | Median final | Worst 10% final | Median max DD | Worst 10% DD | Chance DD reaches 50% | Chance of ending below start |
|---|---|---|---|---|---|---|
| 0.5% | ×1.35 | ×1.14 | 8.0% | 12.3% | 0% | 1.3% |
| 1% | ×1.80 | ×1.27 | 15.7% | 23.5% | 0% | 1.6% |
| ¼ Kelly 2.08% | ×3.11 | ×1.50 | 30.6% | 43.8% | 4.0% | 2.7% |
| ½ Kelly 4.17% | ×6.94 | ×1.64 | 53.9% | 71.1% | 63.0% | 4.8% |
| Kelly 8.33% | ×13.1 | ×0.75 | 83.0% | 94.6% | 100% | 13.1% |
| 2× Kelly 16.67% | ×1.07 | ×0.004 | 99.3% | 100% | 100% | 48.4% |
“Worst 10%” is the value that 10% of runs did worse than (the 10th percentile for the final balance, the 90th for drawdown).
Why is full Kelly this deep? In a system that wins 45%, the median longest losing streak over 500 trades is 9, and about 16% of runs see 12 or more. At full Kelly, 9 losses in a row take 1 − 0.9167⁹ = 54.3% of the account, and 12 in a row take 64.8%. At 1% risk, 9 losses in a row cost only 8.6%. For more on how long losing streaks get, read Losing streaks are normal.
The final balances for full Kelly mislead as well. The median is ×13.1, but 10% of runs end below ×0.75, and 13% end at a loss after 500 trades of a system with a large edge. At 2× Kelly the median is about break-even, but the spread is like a lottery: half the runs lose, and 10% are left with less than 0.4% of the starting balance.
A small error in the win rate, a large error in Kelly
Everything above assumes you know p and b. In real life you only know what you measured in a backtest or your trade history.
Case 1: believing slightly wrong numbers. The system really wins 45% (b = 1.5).
| Win rate you believe | Computed Kelly | Multiple of true Kelly | Actual median growth per 100 trades |
|---|---|---|---|
| 45% (correct) | 8.33% | 1.0× | +67.3% |
| 47% | 11.67% | 1.4× | +54.4% |
| 50% | 16.67% | 2.0× | +1.4% |
| 55% | 25.0% | 3.0× | −77.5% |
Believing 50% instead of 45%, an error of just 5 points, puts you right on the cliff edge. That is because f* is very sensitive to p: every 1 point of win rate moves f* by (1 + 1 ÷ b) points, which at b = 1.5 is 1.67 points, while f* in total is only 8.33 points.
Case 2: measuring from 100 trades. If the true win rate is 45%, the win rate measured over 100 trades has a standard deviation of √(0.45 × 0.55 ÷ 100) = 5.0 points. Computing the probabilities directly from the binomial distribution:
- 18.3% of the time you measure 40% or less, and Kelly comes out zero or negative. The system looks like it has no edge when it does
- 18.3% of the time you measure 50% or more, and the computed Kelly is at least double the true value
- With 300 trades the standard deviation falls to 2.9 points and the chance of a Kelly of 2× or more falls to 4.7%. Still not zero, and this still assumes b is known exactly
What happens if you then trade 500 trades at the Kelly measured from 100? (20,000 runs, each measuring its own p from its own 100 trades; runs where Kelly came out ≤ 0 don’t trade.)
| Fraction of measured Kelly used | Median final | Median max DD | Chance DD reaches 50% | Chance of ending below start |
|---|---|---|---|---|
| Full | ×2.34 | 81.9% | 70.0% | 22.0% |
| Half | ×3.37 | 52.8% | 52.7% | 6.9% |
| Quarter | ×2.33 | 29.9% | 22.6% | 2.6% |
Once the numbers are uncertain, full Kelly is no longer the fastest. Half Kelly ends with a higher median (×3.37 against ×2.34) and a chance of losing that is three times smaller. The “optimal” value from theory becomes too much as soon as there is uncertainty. Real trading adds things this model leaves out: backtests usually look better than live results (read Why backtest results differ from live trading), markets change regime, and some losses are bigger than 1R because of slippage or gaps. All of these make the true Kelly smaller than the computed one, never bigger. For how many trades you need before trusting the numbers, read How many trades are enough.
A Kelly number computed from test results is an optimistic ceiling, not a target. If the truth is lower than you think, betting the full number can mean standing on the 2× cliff.
Ralph Vince’s optimal f
In 1990 Ralph Vince introduced optimal f in his book Portfolio Management Formulas. The idea: real trading systems don’t have just two outcomes. Wins and losses come in many sizes, so instead of reducing them to p and b, use the full list of trade results.
- Find the largest loss in the list
- For each f, compute TWR = the product over all trades of (1 + f × trade result ÷ size of the largest loss)
- The f that gives the highest TWR is optimal f. You then trade 1 unit for every (largest loss ÷ f) dollars of account
Example: 12 trades at 0.10 lot (dollars): +420, −120, +180, −200, −90, +260, −300, +150, −150, +600, −110, −160. Total +480, 5 wins, 7 losses, largest loss −300.
- Stepping f by 0.001 gives optimal f = 0.191, TWR = 1.158 (f = 0.10 gives 1.121, f = 0.60 gives 0.604, a loss)
- One unit per 300 ÷ 0.191 = 1,571 dollars, so a 10,000-dollar account trades 6.37 units, about 0.64 lot
- A loss as big as the worst so far (−300 per 0.10 lot) takes 19.1% of the account in one trade
- If one day a −600 loss arrives, bigger than anything in the list, it takes 38.2%
With two outcomes, optimal f gives the same answer as Kelly, so it shares the same weaknesses, plus one more: f is anchored to the largest loss you have seen, the least stable number in the whole list. The next loss can always be bigger than any in the past. Read about heavy tails in Fat tails and black swans.
The practical answer: fractional Kelly, or a fixed 0.5–1%
The lesson of Kelly is not “risk 8%”. It is these three points:
- There is a ceiling. Risk beyond Kelly buys nothing but drawdown, and past twice Kelly the account shrinks
- Going below Kelly is cheap. Half Kelly gives up only 25% of the growth rate but cuts the drawdown a lot. Quarter Kelly keeps 44% of the growth rate
- Your inputs are uncertain. The more uncertain they are, the smaller the right fraction of Kelly
How to apply it:
- Compute Kelly conservatively. Use a reduced win rate, for example minus one standard deviation (about 5 points from 100 trades), and a b measured after spread
- Risk no more than a quarter of that, and never above a fixed cap you have set, such as 1%
- For most people a fixed 0.5–1% per trade is enough. In this example 1% is only 0.12× Kelly and gives a median ×1.80 over 500 trades with a median maximum drawdown of 15.7%. For a system with a thinner edge, like the one that wins 35% at 2R in the compounding article, Kelly is 2.5%, so 1% is already 0.4× Kelly, inside the safe range. The reasoning behind 1% is in Why many traders risk only 1% per trade
- Count total risk, not risk per trade. Kelly works one trade at a time. If you open several trades that move together, the risk is their sum. Read Currency correlation and portfolio risk
- Check the chance of ruin too. Your size has to pass on growth and on the chance that the drawdown reaches a level you can’t accept. Read Risk of ruin, and try shuffling your own trades with Monte Carlo testing
The right question isn’t “how much should I risk to grow fastest?” It is “how much can I risk so that, if my numbers are wrong, I’m still here and still trading?”
Common mistakes
- Using the planned RR instead of the real one. b must be the average win ÷ average loss after spread and slippage
- Reading f as the share of the account used to open the lot.* f* is the money lost if the Stop loss is hit, not margin or contract value
- Computing Kelly from a few dozen trades. The win rate can be off by several points, and the Kelly you get can be double the truth
- Using Kelly per trade while holding several trades at once. Correlated trades can add up to more than Kelly even when each looks small
- Thinking a bit above Kelly only costs a bit of growth. Above Kelly you grow slower and hurt far more. At 1.5× the median maximum drawdown was 95.5% in our simulation
- Using optimal f from the largest past loss. A bigger loss can always come, and that is the trade that breaks the account
Frequently asked questions
Kelly says to risk 8% per trade. Should I?
No. The Kelly number is only right if you know the true win rate and RR exactly, which no trader does. And even when it is exact, full Kelly took the drawdown past half the account in practically every run of our simulation. Use Kelly as a ceiling you never cross, and risk only a small fraction of it.
How is optimal f different from Kelly?
Ralph Vince's optimal f is Kelly computed from every actual trade result instead of a summary win rate and RR. The f is measured against the largest historical loss, so it shares full Kelly's problems, deep drawdowns, and it can break when a loss bigger than any you have seen arrives.
What does a negative Kelly result mean?
It means the numbers you entered show no edge, so no position size makes the account grow and the only answer is not to trade that system. But if the numbers come from only a few trades, neither a negative nor a positive value can be trusted yet.
This is general education, not investment advice. Trading is risky and you may lose all of your capital.