1. #1
    lukeouk
    lukeouk's Avatar Become A Pro!
    Join Date: 02-19-09
    Posts: 13

    Multivariable Exclusive Outcome Kelly Betting

    Hi all, finally made my first post after reading around for quite some time.

    I was wondering whether anyone could shed some light on the algorithm written for the Multiple Exclusive Kelly Betting calculator.

    I have successfully written a program which calculates the stake sizes but would like to understand the reasoning/working behind this routine.

    For example - could anyone go through the steps for calculating the kelly stakes for a 3 horse race? I have been trying to work this out myself but am having some troubles.

    Assuming horses 1,2 and 3 have win prob = p1,p2 and p3 AND decimal odds od1,od2,od3 and f1,f2 and f3 are the betting fractions to be found and X represents bankroll

    So far I have been calculating the possible bankroll after one race:

    Horse 1 Wins: Xn1 = X0*(1+(od1 - 1) - f2 - f3) probability p1
    Horse 2 Wins: Xn2 = X0*(1+(od2 - 1) - f1 - f3) probability p2
    Horse 3 Wins: Xn3 = X0*(1+(od3 - 1) - f1 - f2) probability p3

    If I am to follow the kelly criterion I should maximise E[log(Xn)]. (This may be where I am going wrong)

    Is the next line correct or am I not interpreting growth correctly

    E[log(Xn)] = p1*log(Xn1) + p2*log(Xn2) + p3*(log(Xn3)

    Assuming the above is correct, my next step would be to maximise the above expression.

    I have carried this out using a constrained optimization routine but am not achieving the same results as the SBR calculator

    Could someone with more experience in this field please let me know if my method is correct or if I am getting massively confused


    Thanks in advance,

    LOJ.
    Last edited by lukeouk; 02-20-09 at 06:45 AM.

  2. #2
    Ganchrow
    Nolite te bastardes carborundorum.
    Ganchrow's Avatar Become A Pro!
    Join Date: 08-28-05
    Posts: 5,011
    Betpoints: 1088

    Quote Originally Posted by lukeouk View Post
    Horse 1 Wins: Xn1 = X0*(1+(od1 - 1)*f1 - f2 - f3) probability p1
    Horse 2 Wins: Xn2 = X0*(1+(od2 - 1)*f2 - f1 - f3) probability p2
    Horse 3 Wins: Xn3 = X0*(1+(od3 - 1)*f3 - f1 - f2) probability p3
    Correction shown in red.

    Quote Originally Posted by lukeouk View Post
    If I am to follow the kelly criterion I should maximise E[log(Xn)]. (This may be where I am going wrong)

    Is the next line correct or am I not interpreting growth correctly

    E[log(Xn)] = p1*log(Xn1) + p2*log(Xn2) + p3*(log(Xn3)

    Assuming the above is correct, my next step would be to maximise the above expression.
    Correct. Maximize with respect to fn and subject to fn≥ 0, Σfi ≤ 1.

    Plain-English description of the algorithm to calculate Kelly stakes on mutually exclusive events.

  3. #3
    lukeouk
    lukeouk's Avatar Become A Pro!
    Join Date: 02-19-09
    Posts: 13

    Thanks for the reply. I actually made a careless mistake in the post. I already had my equations set as you say. I also used the constraints 0 ≤ fn ≤ 1 and Σfi ≤ 1. However the stakes that my optimiser recommends are much higher than those suggested by the SBR calculator. For the example #1 under the link you posted I am achieving;

    a) 59.98%
    b) 40.02%
    c) 0%
    d) 0%

    Clearly this is staking 100% of the bankroll, at first I thought I had set the inequality constraints as equality constraints but I have double checked this and the code seems correct. Any Ideas?

    Thanks very much,

    LOJ.

  4. #4
    Ganchrow
    Nolite te bastardes carborundorum.
    Ganchrow's Avatar Become A Pro!
    Join Date: 08-28-05
    Posts: 5,011
    Betpoints: 1088

    Quote Originally Posted by lukeouk View Post
    Thanks for the reply. I actually made a careless mistake in the post. I already had my equations set as you say. I also used the constraints 0 ≤ fn ≤ 1 and Σfi ≤ 1. However the stakes that my optimiser recommends are much higher than those suggested by the SBR calculator. For the example #1 under the link you posted I am achieving;

    a) 59.98%
    b) 40.02%
    c) 0%
    d) 0%

    Clearly this is staking 100% of the bankroll, at first I thought I had set the inequality constraints as equality constraints but I have double checked this and the code seems correct. Any Ideas?
    Look at it this way: insofar as log(0) could be construed as equaling -∞ your boundary solution would essentially be minimizing expected utility.

  5. #5
    Ganchrow
    Nolite te bastardes carborundorum.
    Ganchrow's Avatar Become A Pro!
    Join Date: 08-28-05
    Posts: 5,011
    Betpoints: 1088

    It should be readily apparent that the only possible way for Σfi = 1, would be for the strict inequality fn > 0 to hold across all wagers (assuming finite payout odds).

    You might want to try setting the upper bound in your optimizer to 0.99999 instead of 1.

  6. #6
    lukeouk
    lukeouk's Avatar Become A Pro!
    Join Date: 02-19-09
    Posts: 13

    Awesome! I now have a working optimiser. Good spot on the bound problem. Had some teething problems with my software but I have that sorted now as well.

    Thanks very much - excellent site!

    LOJ
    Last edited by lukeouk; 02-28-09 at 06:01 AM. Reason: retarded spelling mistake

Top