Designing arbitrage bet on horses

1.6k Views Asked by At

We have $3$ horses: $A$, $B$, $C$. For every dollar I wager, I get $\$2$, $\$4$, or $\$6$ if $A$, $B$, or $C$ wins the race, respectively. Design a strategy that never loses money.


I'm stuck on this question. I know the winning strategy is to bet \$6 on A, \$3 on B and \$2 on C so that you always end up paying \$11 but winning \$12, but I was wondering what the general strategy to approach this question is. I have seen something similar to this question on reddit but I don't think I understood it quite enough, unfortunately. Thank you.

2

There are 2 best solutions below

4
On

Suppose the initial bet is $\$P$, and that we are betting on three horses $A,B,C$ with payouts $\$a, \$b, \$c$, and I buy $\alpha, \beta, \gamma$ tickets of each respectively. Assume $a<b<c$.

Then, my total bet is simply $\$(\alpha+\beta+\gamma)P$, and we want that $$a\alpha >(\alpha+\beta+\gamma)P\implies\frac{\alpha}{\beta+\gamma}>\frac{P}{a-P}$$

$$b\beta >(\alpha+\beta+\gamma)P\implies\frac{\beta}{\alpha+\gamma}>\frac{P}{b-P}$$ $$c\gamma >(\alpha+\beta+\gamma)P\implies\frac{\gamma}{\alpha+\beta}>\frac{P}{c-P}$$ The triple $(\alpha,\beta,\gamma)$ which solves this triad of inequalities meets the criteria. Let's apply this to your scenario, where we have $P=1, a=2, b=4, c=6$. We get: $$\frac{\alpha}{\beta+\gamma}>1\implies \alpha>\beta+\gamma\tag1$$ $$\frac{\beta}{\alpha+\gamma}>\frac13\implies \alpha<3\beta-\gamma\tag2$$ $$\frac{\gamma}{\alpha+\beta}>\frac 15\implies \alpha<5\gamma-\beta\tag3$$

The third equation makes resolving this remarkably easy, since we know $\alpha\geq\beta\geq\gamma> 0$. Let me explain why it is $>0$ not $\geq 0$:

Set $\gamma=0$ and we get $\alpha<-\beta$ which is impossible. No solution like this exists (and it shouldn't, because if you didn't bet on horse C at all and it won, you'd have lost money).

Let's now test $\gamma=1$. $(3)$ tells us $5-\beta>\beta\to\beta<\frac52\to \beta=1,2$. Note also that $\alpha<\frac 52$ is necessary, I used that $\alpha\geq \beta$ to say $\beta<5-\beta$.

For each, $(2)$ gives $\alpha<2$ (i.e $\alpha=1$) and $\alpha<5$, while $(1)$ yields $\alpha>2$ and $\alpha>3$ respectively. Both cases are complete contradictions, and neither work.

We now test $\gamma=2$. Comparing $(1)$ and $(3)$ gives us $\beta+2<10-\beta\to\beta<4$, so $\beta=2,3$. With $\beta=2$ we get the set: $\alpha>4, \alpha<4, \alpha<8$ which is complete nonsense, but with $\beta=3$ we get the set: $\alpha>5, \alpha<7, \alpha<7$ which is satisfied by $\alpha=6$ and gives us $(6,3,2)$

3
On

Rephrasing, let the $3$ horses be denoted by $h_1, h_2, h_3$. Let $x_i \in [0,1]$ be the fraction of one's budget bet on horse $h_i$. Note that $x_1 + x_2 + x_3 = 1$ and that the profit is

$$ \text{profit} = \begin{cases} 2 x_1 - 1 & \text{if } h_1 \text{ wins}\\ 4 x_2 - 1 & \text{if } h_2 \text{ wins}\\ 6 x_3 - 1 & \text{if } h_3 \text{ wins}\end{cases} $$

Since we want an arbitrage bet, the profit should be positive regardless of which horse wins. Thus,

$$x_1 > \frac12, \qquad x_2 > \frac14, \qquad x_3 > \frac16$$

Since $\frac12 + \frac14 + \frac16 = \frac{11}{12} < 1$, let us make

$$\begin{aligned} x_1 &= \left(\frac{12}{11}\right) \frac12 = \color{blue}{\frac{6}{11}}\\ x_2 &= \left(\frac{12}{11}\right) \frac14 = \color{blue}{\frac{3}{11}}\\ x_3 &= \left(\frac{12}{11}\right) \frac16 = \color{blue}{\frac{2}{11}}\end{aligned}$$

With this allocation, no matter which horse wins, the profit is always $\frac{1}{11}$.

Of course, there are other ways of allocating the remaining $\frac{1}{12}$. However, this particular allocation maximizes the worst-case scenario, which can be seen by introducing optimization variable $y$ and solving the following linear program.

$$\begin{array}{ll} \underset{x_1, x_2, x_3, y}{\text{maximize}} & y\\ \text{subject to} & x_1 + x_2 + x_3 = 1\\ & 2 x_1 - 1 \geq y\\ & 4 x_2 - 1 \geq y\\ & 6 x_3 - 1 \geq y\\ & x_1, x_2, x_3 \geq 0\end{array}$$

In CVXPY:

from cvxpy import *

x1 = Variable()
x2 = Variable()
x3 = Variable()
y  = Variable()

objective = Maximize(y)
constraints = [   x1 +   x2 +   x3     == 1,
                2*x1               - y >= 1,
                       4*x2        - y >= 1,
                              6*x3 - y >= 1,
                  x1                   >= 0,
                         x2            >= 0,
                                x3     >= 0 ]
prob = Problem(objective, constraints)
prob.solve()

print("Status    ",     prob.status)
print("Maximum = ",     prob.value )
print("     x1 = ", float(x1.value))
print("     x2 = ", float(x2.value))
print("     x3 = ", float(x3.value))

which outputs the following

Status     optimal
Maximum =  0.09090909097169302
     x1 =  0.5454545454546641
     x2 =  0.27272727272899333
     x3 =  0.18181818181634327

Addendum

Let us introduce binary variables $\theta_1, \theta_2, \theta_3 \in \{0,1\}$, where

$$ \theta_i = \begin{cases} 1 & \text{if } h_i \text{ wins}\\ 0 & \text{otherwise}\end{cases} $$

Since only one horse can win, $\theta_1 + \theta_2 + \theta_3 = 1$. Hence, the profit is

$$ \begin{aligned} \text{profit} &= (2 \theta_1 - 1) x_1 + (4 \theta_2 - 1) x_2 + (6 \theta_3 - 1) x_3 \\ &= 2 \theta_1 x_1 + 4 \theta_2 x_2 + 6 \theta_3 x_3 - ( \underbrace{x_1 + x_2 + x_3}_{=1} ) = \begin{cases} 2 x_1 - 1 & \text{if } h_1 \text{ wins}\\ 4 x_2 - 1 & \text{if } h_2 \text{ wins}\\ 6 x_3 - 1 & \text{if } h_3 \text{ wins}\end{cases} \end{aligned} $$