Demonstration of Equivalence

by Brett Harris.



Posted by Brh on June 14, 1997 at 07:25:50: In Reply to: Optimal Betting Strategy posted by Winston Yamashita on June 08, 1997 at 23:49:57:

I think the time has come to put and end to this argument.

I won't directly address the continuous vs discrete question, the math is correct and the proof is general.

What I do wish to do is compare Winston's method in the above 'Optimal Betting Method' post, to the general solution, and to my 'N0 minimization' method I use in practice.

Firstly, there are some theorems which we can take as true, no matter how they were or weren't proved.

For any 1 to M spread:


1.  For any fixed unit spread, the Kelly function J(b) can be
    maximised for some fraction f, (Winston calls it fmin,
    I call it 1/K, David D'Aquin defines it slightly
    differently with average bet included) and at this
    point, f=EV/VAR for the entire system, and the growth
    rate is G = Exp[J(b)] =~ 1 + 1/(2N0) per hand, where N0=VAR/EV^2.
    (See Steve Heston's 'Short Proof' below.)


2.  The 'best' spreads are those which have a fixed min
    and max bet in units, and for which the intermediate
    bets are Kelly bets proportional to EV(i)/VAR(i) at
    each intermediate count value i.


3.  The Optimal Spread exists and the maximum value of
    the Kelly function, at its optimal fraction f,
    is greater than that for any other 1 to M spread.


Corollory to 3. :


    The value of N0 corresponding to the Optimal Spread
    is the smallest value of N0 for any 1 to M spread.


Winston's method seeks to maximise J[b] by first computing the value of fmin for a sample spread, and then adjusting the spread so that none of the intermediate bets fall outside the 1 to M range, recomputing fmin each time. At the solution, fmin is such that all intermediate bets fall in between fmin and M*fmin. Since the expression for fmin is satisfied for each spread, the solution automatically gives the maximum of J[b] for the final spread.

I think this is what Winston means when he says, his method is 'exact', in this sense it is.

Comparing to my proof, and in particular, the 'Some Numbers' post, one can immediately see that Winston's fmin, is related to my L(ti) by

fmin = 1/L(ti),

for integer ti, where (ti+1) is the point from which the sum S(imax), in Winston's definition, is begun. Winston's procedure of checking to see whether or not the Kelly fraction for counts in the sum, actually fall in between fmin and fmax, can be seen to be equivalent to comparing L(ti) to the list of values of K(i) for all values of i greater than or equal to (ti+1), since the Kelly fraction at i is

EV(i)/VAR(i) = M / K(i)

by definition of K(i).

This means that Winston's solution is at the value of Tmax=(ti+1) for which K(i) > L(ti) for all i = ti+1, ti+2, ti+3 ..., and for the example given Tmax=6. Note that this is the next integer greater than the exact 'continuous' solution of 5.45, and the fmin value is that for the previous (Tmax=ti+1) value of ti=5.

Now my procedure for the minimization of N0, works as follows:


1.   Input the bankroll B, (1 unit is therefore the fraction 1/B)
2.   Bet 1 unit if B*EV(i)/VAR(i) < 1
     Bet M units if B*EV(i)/VAR(i) > M,  (for i>= some Tmax)
     Bet B*EV(i)/VAR(i) units otherwise.
3.   Compute the total B'=VAR/EV, (and N0 if you wish)
4.   If B' /= B then go back to (1) with a different B
     else if B' = B then K=B'=B(= 1/fmin) and we are done.


Now since our base bet is 1 unit, this is equivalent to a bankroll of 1/f, since (1/f)*f = 1, which is why the final result gives fmin.

However, this input value of f (B equivalently) does not produce the optimal growth rate, since if does not satisfy f=EV/VAR as given in Theorem 1 at the top. But due to the discrete nature of the betting spread, there is a range of possible f's which give a definite value of Tmax, the point of maximum bet. This gives a partition of the values of f, into sets corresponding to different Tmax. Now as one converges towards the solution, the value of Tmax 'jumps' into the slot, given by Winston's solution. In this partition, the correct value of f is given by Winston's fmin, and this occurs by definition at the minimum of N0.

There was a bug in the code that generated the table, I used in 'Some Numbers', which meant that t=1 was, incorrectly, not included in E_minus and V_minus. This has been fixed and the corrected table is


   ti    C(i)     EV(i)     VAR(i)  E_plus(i) V_plus(i)   L(i)      K(i)
   0   0.17587  -0.00268   1.33636   0.00000   0.000      0.00      0.00
   1   0.09997   0.00109   1.34345   0.00000   0.000      0.00      0.00
   2   0.06909   0.00434   1.34666   0.00263   0.227   1172.72   3101.76
   3   0.04783   0.00749   1.33951   0.00228   0.163   1040.07   1789.53
   4   0.03431   0.00921   1.33309   0.00196   0.117    944.57   1447.75
   5   0.02409   0.01356   1.33140   0.00163   0.085    932.64    981.91
   6   0.01745   0.01515   1.33542   0.00137   0.062    950.54    881.32
   7   0.01246   0.02094   1.34600   0.00111   0.045   1112.20    642.77
   8   0.00926   0.02400   1.34313   0.00089   0.033   1559.56    559.52
   9   0.00660   0.02773   1.36228   0.00070   0.024   3693.73    491.35


There was no bug in the N0 minimization, which gave the correct (to the level at which I stopped iterating) value of K=1/fmin=932. Note that this corresponds to the value of ti=5, so Tmax=+6. All K(i), where i=+6, +7,.. are less than L(+5)=932.64.

Winston's method would land right on fmin=1/932.64 without iteration, because by definition, L(ti) is equal to his 1/fmin, at the end of the day, both methods are equivalent.

The reason, I now understand, for the discrepency with Winston's fmin=1/934.06 is due to extreme sensitivity to when one cuts off the C(i) sums for small C(i). In my method I only sum values when C(i) > 0.0001. If I extend the sum to C(i) > 0.00001, then I get fmin=1/919.63. However, out at these extreme values, the sim results get very uncertain. This only goes to show how irrelevant such differences are to real world play.

So while I maintain that the general proof is valid, I accept Winston's assertion that his method will give the exact value of fmin, for discrete case. In this case, the max bet will occur at the next integer above the value given by the continuous proof.

My minimisation of N0 will give the same result, after sufficient iterations. At the point which B=B', that is when the J[b] is maximised, by Theorem 1, NO will be at its minimum.

I hope that this can put this to rest once and for all.

Cheers, Brh.



Return to: Bet Sizing