With 2-way markets this is easy. Because the normal distribution is symmetric and the total integral adds to 1, you are going to end up with two z-scores which are the negatives of each other. So the two z-scores are (z1-z2)/2 and (z2-z1)/2. Examples of this are given in the blog post I linked above.
My question is, is there a similar trick in multi-way markets? Right now I'm doing a binary search on the "diff" (the amount to add to each z-score) but it takes several iterations to get "close enough". I'm wondering if there's a closed form solution to this. For example, if I had a 3-way line of +180 / +200 / +180, I would convert these to probabilities (0.3571 / 0.3333 / 0.3571) and then convert these to z-scores (-0.366 / -0.432 / -0.366). Other than trial and error, how do I find out how much to add to each score so that when I convert the scores back to probabilities, they sum to 1?
I think the equation you get is this:
if a is the z-value for probability p1, b the z-value for probability p2, and c the z-value for probability p3, then the delta value d you need to add to all three z-values is the solution to:
INTEGRAL (a, a + d) {1 / e^(x^2/2)} + INTEGRAL (b, b + d) {1 / e^(x^2/2)} + INTEGRAL (c, c + d) {1 / e^(x^2/2)} = (1 - p1 - p2 - p3) sqrt(2 PI)
The fact that nobody has been able to express the integral of standard normal distribution as a closed form makes finding an easy solution difficult, if not impossible.
Quote: ThatDonGuyI doubt that there is an "easy" method. As you pointed out, it's easy in a 2-way market because of the symmetry of the z-score function, but there does not appear to be an easy way with 3 or more variables, especially as there is no closed-form function to convert between probability and z-score.
I think the equation you get is this:
if a is the z-value for probability p1, b the z-value for probability p2, and c the z-value for probability p3, then the delta value d you need to add to all three z-values is the solution to:
INTEGRAL (a, a + d) {1 / e^(x^2/2)} + INTEGRAL (b, b + d) {1 / e^(x^2/2)} + INTEGRAL (c, c + d) {1 / e^(x^2/2)} = (1 - p1 - p2 - p3) sqrt(2 PI)
The fact that nobody has been able to express the integral of standard normal distribution as a closed form makes finding an easy solution difficult, if not impossible.
link to original post
Thanks. I guess I'll stick with my binary search then; it works fine in practice.
Do you get a revised set of odds of +193, +215, +193? (I subtract 0.0433 from the three z-scores.)
Quote: ThatDonGuyI am working on a way to calculate these.
Do you get a revised set of odds of +193, +215, +193? (I subtract 0.0433 from the three z-scores.)
link to original post
Yup, that's what I get (well, my code gets) as well. I'm still using the binary search method (it's quick; essentially instantaneous for one set of odds, though I don't know how well it will scale)
One method that I tried, which did not work, was to combine two of the legs into one (by figuring the odds of "at least one" by betting enough on each leg to return the same amount of any one of them hits). So +180 / +180 / +180 converts to +180 / -250 (since if you bet $100 on each of two +180 legs, you end up risking $200 to win $80 if one of the two legs hits) Then I figured I could find the amount of diff to balance the two-way market, and add 2/3 of this diff to the +180 line. But this doesn't work; the correct answer is obviously +200 but it gives me +201 (and that's not a rounding error; I debugged it and the z-scores are clearly off). That's when I decided to go with binary search, which I hate, but it works.
Quote: SkinnyTonyQuote: ThatDonGuyI am working on a way to calculate these.
Do you get a revised set of odds of +193, +215, +193? (I subtract 0.0433 from the three z-scores.)
link to original post
Yup, that's what I get (well, my code gets) as well. I'm still using the binary search method (it's quick; essentially instantaneous for one set of odds, though I don't know how well it will scale)
One method that I tried, which did not work, was to combine two of the legs into one (by figuring the odds of "at least one" by betting enough on each leg to return the same amount of any one of them hits). So +180 / +180 / +180 converts to +180 / -250 (since if you bet $100 on each of two +180 legs, you end up risking $200 to win $80 if one of the two legs hits) Then I figured I could find the amount of diff to balance the two-way market, and add 2/3 of this diff to the +180 line. But this doesn't work; the correct answer is obviously +200 but it gives me +201 (and that's not a rounding error; I debugged it and the z-scores are clearly off). That's when I decided to go with binary search, which I hate, but it works.
link to original post
I assume by binary search, you start with some high delta that you add to, or subtract from, each z-value, then repeatedly divide it by 2 and continue until the changes are small enough for you to stop. I take a different approach; I start with a delta of 0.0001 and add 0.0001 repeatedly until the sum of the probabilities goes from < 1 to > 1 (or vice versa, as appropriate).

