Kelly Position Sizing Framework

A comprehensive guide to optimal capital allocation in trading

Kelly is a position sizing framework: it tells you the optimal fraction of capital to risk on a trade when you have a measurable edge. In trading, the key is translating "fraction to bet" into risk per trade (and then into shares/contracts using your stop).

1) The Core Kelly Formula (Single Trade)

Let:

Then the Kelly-optimal fraction of capital to risk is:

f* = (bp - q) / b = p - (1-p) / b

Interpretation:

Quick Example

Suppose your backtest shows:

  • win rate p = 0.45
  • average winner = 2R, average loser = 1R → b = 2
f* = 0.45 - (0.55 / 2) = 0.45 - 0.275 = 0.175

Full Kelly would suggest risking 17.5% of equity per trade—which is far too aggressive for real trading because your estimates are noisy and outcomes are not IID.

2) Use "Fractional Kelly" in Real Trading (Standard Practice)

In practice you apply a haircut:

f = λ · f* where λ ∈ [0.1, 0.5] is common

Typical choices:

Using the example above:

  • 0.25 Kelly → f = 0.25 × 0.175 = 0.04375
  • So you'd risk ~4.4% of equity per trade (still high for many traders; many cap at 0.5–2% regardless).

3) Convert Kelly "Fraction" into an Actual Position Size (Shares/Contracts)

Kelly gives you risk budget per trade:

$Risk = f · Equity

Then position size is set by your stop distance:

Position Size = $Risk / Stop Distance ($ per share/contract)

Example:

  • Equity = $100,000
  • Fractional Kelly f = 0.01 (1% risk)
  • Stop distance = $2/share
$Risk = 0.01 × 100,000 = $1,000
Shares = 1,000 / 2 = 500

This makes Kelly usable in any stop-based trading system.

4) Estimating Inputs Correctly (The Real Hard Part)

(a) Use R-Multiples

Define each trade in R units:

Then:

(b) Beware Regime Dependence and Sample Error

Kelly is extremely sensitive to estimation error—especially in p and b. Practical safeguards:

  • Use walk-forward / out-of-sample estimates
  • Use Bayesian shrinkage (pull p toward 0.5, b toward 1 when data is sparse)
  • Use caps: max risk per trade (e.g., 1–2%), max gross leverage, max sector exposure

5) A Trading-Ready "Kelly Workflow"

  1. Define your trade unit (setup + stop + exit rules) so you can compute R.
  2. Backtest / journal to estimate p and b (preferably by regime).
  3. Compute f* = p - (1-p)/b. If f* ≤ 0, skip the trade.
  4. Apply fractional Kelly: f = λf* with λ conservative.
  5. Apply hard risk caps (e.g., min(f, 1%)).
  6. Convert to shares/contracts using stop distance.
  7. Monitor edge drift: recalc p, b on rolling windows.

6) Extensions You'll Want if You Trade a Portfolio

Single-trade Kelly assumes independent bets. Real portfolios require constraints:

7) When Kelly is a Bad Idea

Avoid relying on Kelly when:

  • You can't estimate p and b with reasonable stability
  • Your payoff distribution has fat tails (gap risk, short options) and losses exceed modeled "average loss"
  • You routinely violate stops (then the loss side is unbounded)

A Practical Default (If You Want Something Deployable)

Need help calculating your Kelly? If you provide (1) your typical win rate, (2) average win in R, (3) average loss in R (or stop size), and (4) how many positions you hold concurrently, you can compute your Kelly and develop a conservative fractional-Kelly sizing rule tailored to your trading style.