The Kelly Criterion: Introduction

This is the first post in a four-part series exploring the Kelly criterion:

The Kelly criterion is a formula used to determine the optimal size of a series of bets in order to maximize wealth. It is often described as optimizing the logarithm of wealth, and will do better than any other strategy in the long run.

Let's look at a simple gamble: when you play, you win with probability pp and lose with probability q=1pq = 1-p. If you win, you get back your initial bet plus a fraction rr of that bet. If you lose, your bet is forfeited. The Kelly formula calculating the optimal fraction of your available wealth to bet is:

lopt=prqr=pr(1p)r=p1prl_{opt} = \frac{pr - q}{r} = \frac{pr - (1-p)}{r} = p - \frac{1-p}{r}

Here is a small demo to explore the formula:

Kelly calculation demo


Probability of winning: 80 %
Profit on win, as percentage of placed bet: 40 %
Optimal fraction of wealth bet in this game: 30 %

The main takeaways are:

  • In each game you invest a fraction ll of the total amount of money you have. If you play the game from the demo (p=0.8,r=0.4p=0.8, r=0.4) and you have $100 available, you should invest $30 (since l=0.3l=0.3). If you win, you will have $112 (100+30×0.4100 + 30 \times 0.4) and invest $33.60 (112×0.3112 \times 0.3) in the second round. If you lost the first round you'd have $70, and invest $21 in the second round. If you can not reinvest your earnings, Kelly does not apply.
  • This formula holds when a large number of games are played. If you play only few rounds of a game this may not apply.
  • When it applies, the Kelly strategy will generate the most wealth out of your initial starting capital.

Derivation of the Kelly criterion

We will take a short dive into mathematics to understand how Kelly came up with this formula. Let's compute the wealth V1V_1 after the first round of gaming, when starting from an initial wealth V0V_0:

V1=V0(1+WlrW+(1W)lrL)V_{1} = V_{0} (1 + Wlr_W + (1-W)lr_L)

Here, ll is the fraction of money bet, rWr_W is the profit on win, rLr_L is the fraction of the bet forfeited on loss (in the above scenario, rL=1r_L=-1). WW is a random variable that's 11 with probability pp and 00 with 1p1-p. So with probability pp we'll have W=1W=1, giving V1,win=V0(1+lrW)V_{1,win} = V_0 (1+lr_W), with probability 1p1-p we'll get V1,loss=V0(1+lrL)V_{1,loss} = V_0 (1+lr_L).

We can reformulate the expression in a way that will show an important generalization:

V1=V0(1+lrW)W(1+lrL)(1W)V_1 = V_0 (1+lr_W)^W(1+lr_L)^{(1-W)}

The two expressions look very different, but they are equivalent since WW can only take on the values 00 and 11. If W=1W=1 the second term will vanish since x0=1x^0 = 1, and we will get the same result for V1,winV_{1,win}. The same consideration holds for V1,lossV_{1,loss}.

If we repeat this game nn times, we arrive at

Vn=V0(1+lrW)Wn(1+lrL)(nWn)V_n = V_0 (1+lr_W)^{W_n}(1+lr_L)^{(n-W_n)}

with WnW_n being the number of wins in those nn games. Essentially, each won round adds a factor (1+lrW)(1+lr_W) to the expression, each lost round (1+lrL)(1+lr_L).

Now comes a crucial step: how many wins do we expect after playing many games? Asked mathematically, what value will WnW_n have for large nn? Because of the law of large numbers we expect W=pnW = pn. So for p=0.8p=0.8 and n=10000n=10000 we would expect to win 8000 out of the 10000 games.

Let's plug this into our formula:

Vn=V0(1+lrW)pn(1+lrL)(1p)nV_n = V_0 (1+lr_W)^{pn}(1+lr_L)^{(1-p)n}

The law of large numbers allowed us to eliminate the random variables WW, WnW_n and instead obtain an explicit formula in terms of p,n,rW,rLp, n, r_W, r_L. Since we are interested in maximizing our profit, we are looking for loptl_opt — the ll value that maximizes Vn/V0{V_n}/{V_0}.

lopt=argmaxlvnv0=argmaxllogvnv0=argmaxlplog(1+lrW)+(1p)log(1+lrL)\begin{aligned} l_{opt} & = \operatorname*{argmax}_l \frac{v_n}{v_0} \\ & = \operatorname*{argmax}_l \log \frac{v_n}{v_0} \\ & = \operatorname*{argmax}_l p \log(1 + l r_W) + (1-p) \log(1 + l r_L) \end{aligned}

We are free to introduce the logarithm and drop the nn factor because this does not change the value of loptl_{opt}.1 Differentiating the logarithmic expression and solving for ll gives:

lopt=prL1prWl_{opt} = -\frac{p}{r_L} - \frac{1-p}{r_W}

This is identical with the formula given in the introduction after substituting rL=1r_L = -1.

Extension to games with more than two possible outcomes

We can extend the Kelly argument to games that have a greater number of possible outcomes. Such games could be:

  • A game with 6 different rewards selected by roll of a 6-sided die, where rewards may be negative (money lost)
  • An investment in a stock, here we have a continuous range of outcomes.

If we have multiple outcomes rir_i, each happening with probability pip_i, we obtain:

lopt=argmaxlipilog(1+lri)l_{opt} = \operatorname*{argmax}_l \sum_i p_i \log(1 + l r_i)

While this equation is not easily solvable analytically, it is trivial to solve numerically. This allows us to extend the Kelly approach to a new kind of game with some interesting practical applications.

If you're interested in interactive plots that really helped me understand this material, you can find them in this Jupyter Notebook.

The Kelly formalism can be generalized further still, taking into account multiple parallel investment opportunities. We'll look at this in the next post.

1 The logarithm is a strictly monotonically increasing function, so α>βlogα>logβ\alpha \gt \beta \Leftrightarrow \log \alpha \gt \log \beta. Thus it doesn't change the location of any maxima: argmaxf(x)=argmaxlogf(x)\operatorname*{argmax} f(x) = \operatorname*{argmax} \log f(x). See Mark Schmidt's Argmax and Max Calculus paper for more information about properties of argmax\operatorname*{argmax}.