3
$\begingroup$

Recently, I was asked the following question in an interview with a prop trading firm.


You are given the opportunity to make money by betting a total of 100 bucks on the outcome of two simultaneous matches:

  • Match $A$ is between the Pink team and the Maroon team
  • Match $B$ is between the Brown team and the Cyan team

The Pink team's probability of victory is $40\%$. The Brown team's probability of victory is $70\%$. The betting odds are

  • Pink: 7:4
  • Maroon: 2:3
  • Brown: 1:4
  • Cyan: 3:1

How much money do you bet on each team?

You do not have to bet all 100 bucks, but your bets must be whole numbers and the total of all five blanks (bets on the four teams and the unbet amount) must sum to 100. There is no single "correct" answer, but there are many "wrong" answers. As a reminder, a hypothetical team having 2:7 odds means that if you bet 7 on that team and they win, you get your 7 bucks bet back and win an additional 2 bucks.


I am struck between an arbitrage approach vs a Kelly or EV maximization approach. Also, I know how to approach arbitrage when we have only 1 match between 2 teams but not sure how to approach it when we have 2 different matches. Thanks!

$\endgroup$
2
  • $\begingroup$ Since we're not told of any dependence between the matches, we assume none? $\endgroup$ Nov 21, 2023 at 5:31
  • 1
    $\begingroup$ @DimitriVulis Yeah, we can assume there is no dependence between the matches $\endgroup$ Nov 21, 2023 at 5:37

2 Answers 2

2
$\begingroup$

I assume there are no draws. Note that match $A$ has generous (fixed) odds that present a pure arbitrage opportunity, whereas match $B$ has horrible (fixed) odds. Thus, betting on match $B$ is unwise.

Let $x \in [0,1]$ denote the fraction of one's budget bet on $\texttt{Pink}$. Hence, $1-x$ denotes the fraction of one's budget bet on $\texttt{Maroon}$. One's (normalized) profit is given by

$$ \text{normalized profit} = \begin{cases} \left(1 + \frac74 \right) x - 1 & \text{if } \texttt{Pink} \text{ wins}\\ \left( 1 + \frac23 \right) (1 - x) - 1 & \text{if } \texttt{Maroon} \text{ wins} \end{cases} $$

Since one is looking for a pure arbitrage opportunity, $x > \frac{4}{11}$ and $x < \frac25$. Since $\frac{4}{11} < \frac25$, there are infinitely many arbitrage opportunities over $\Bbb R$. Maximizing the worst-case scenario, one has $$x = \frac{20}{53} \approx 0.38$$ Thus, if one's budget is $\\\$100$ and one must bet an integer amount of dollars, one could bet $\\\$\color{pink}{38}$ on $\texttt{Pink}$ and $\\\$\color{maroon}{62}$ on $\texttt{Maroon}$, earning

$$ \text{profit} = \begin{cases} $\frac92 & \text{if } \texttt{Pink} \text{ wins}\\ $\frac{10}{3} & \text{if } \texttt{Maroon} \text{ wins} \end{cases} $$

Note that $\frac92\neq\frac{10}{3}$, due to the rounding of $\frac{20}{53}$. If one were allowed to bet rational amounts of dollars, one would earn a profit of $\\\$\frac{200}{53}$ regardless of which team wins.


Addendum

Rob Pratt's answer on Mathematics SE taught me that one should not assume that it is optimal to use up one's budget. Solving the integer program using Python plus CVXPY:

from cvxpy import *

pink   = Variable(integer=True)
maroon = Variable(integer=True)
brown  = Variable(integer=True)
cyan   = Variable(integer=True)

budget = 100

objective = Maximize( minimum((1 + (7/4)) *  pink, (1 + (2/3)) * maroon) - (pink  + maroon) + 
                      minimum((1 + (1/4)) * brown, (1 + (3/1)) *   cyan) - (brown +   cyan)  )
constraints = [ (1 + (7/4)) *   pink - (pink  + maroon) >= 0,
                (1 + (2/3)) * maroon - (pink  + maroon) >= 0,
                (1 + (1/4)) *  brown - (brown +   cyan) >= 0,
                (1 + (3/1)) *   cyan - (brown +   cyan) >= 0,
                                                   pink >= 0,
                                                 maroon >= 0,
                                                  brown >= 0,
                                                   cyan >= 0,
                           pink + maroon + brown + cyan <= budget ] 

prob = Problem(objective, constraints)
prob.solve()

print("Status    ",         prob.status)
print("Maximum = ",         prob.value )
print("   pink = ", float(  pink.value))
print(" maroon = ", float(maroon.value))
print("  brown = ", float( brown.value))
print("   cyan = ", float(  cyan.value))

This script's output is the following:

Status     optimal
Maximum =  3.666666666666657
   pink =  37.0
 maroon =  61.0
  brown =  -0.0
   cyan =  -0.0

Note that no money is allocated to match $B$, which is unsurprising. However, in my humble opinion, it is somewhat surprising that it is optimal to allocate only $\\\$98$ of the available $\\\$100$. Regardless of which team wins, one earns a profit of at least $\\\$\frac{11}{3}$. Note that $\frac{11}{3} > \frac{10}{3}$.


Related

$\endgroup$
5
  • $\begingroup$ Great analysis. You may want to generalize it further for the case if the matches are not independent. $\endgroup$ Nov 27, 2023 at 15:24
  • $\begingroup$ @DimitriVulis What would "dependent matches" mean? Conditional probabilities? In my answer, I avoided all probabilities (which are subjective) and focused only on that which is given, the (fixed) odds. $\endgroup$ Nov 30, 2023 at 13:36
  • $\begingroup$ Right. Suppose we're given that the probability that both Maroon and Cyan win is not the product 0.6×0.3=0.18, but rather some larger number, say 0.3. Could this make Cyan a better hedge than Maroon? $\endgroup$ Nov 30, 2023 at 13:54
  • $\begingroup$ @DimitriVulis Thank you for the clarification. That would go against the spirit of my answer, which is based on avoiding probability at all costs and, instead, focusing on the discrete geometry side of things, as determining whether a pure arbitrage opportunity does exist does boil down to determining whether a given convex polytope is empty, or whether the intersection of a given convex polytope with the integer lattice is empty. $\endgroup$ Dec 1, 2023 at 12:05
  • $\begingroup$ Thanks for the clarification! $\endgroup$ Dec 1, 2023 at 14:38
3
$\begingroup$

For example, if I bet \$1 on Pink, then with probability $0.4$, it wins and I receive $\frac{4+7}{4}$, while with probability $1-0.4=0.6$, it loses and I receive nothing.

Team Probability of winning Payout on win Expected value
Pink $0.4$ $\frac{4+7}{4}=2.75$ $0.4 \times 2.75=1.1$
Maroon $1-0.4=0.6$ $\frac{3+2}{3}=1\frac{2}{3}$ $0.6 \times 1\frac{2}{3}=1$
Brown $0.7$ $\frac{4+1}{4}=1.25$ $0.7 \times 1.25 =0.875$
Cyan $1-0.7=0.3$ $\frac{1+3}{1}=4$ $0.3 \times 4 =1.2$

I surely wouldn't bet on any team with e.v. $\le 1$, so I won't consider those any further, otherwise we could just include more assets in the calculations below.

As clarified in the comments, we assume that the probabilities of Pink and Cyan winning are independent. Otherwise, if the probability of two match outcomes were given to us, instead of being a product, we could still do the below calculations.

Let us see what happens if we bet $w_p$ of the money on Pink, $w_c$ on Cyan, and leave $1-w_p-w_c$ in cash. These bets pay out $2.75\times w_p + 4\times w_c + 1-w_p-w_c =$ $ (2.75-1)w_p + (4-1)w_c + 1$ if both teams win, but only $1-w_p-w_c$ if both teams lose.

Scenario Probability Expected Value .......................................................
Pink wins, Cyan wins $0.4\times 0.3 = 0.12$ $0.12 (2.75\times w_p + 4\times w_c + 1-w_p-w_c)$
Pink wins, Cyan loses $0.4\times 0.7 = 0.28$ $0.28 (2.75\times w_p + 1-w_p-w_c)$
Pink loses, Cyan wins $0.6\times 0.3 = 0.18$ $0.18 (4\times w_c + 1-w_p-w_c)$
Pink loses, Cyan loses $0.6\times 0.7 = 0.42$ $0.42 (1-w_p-w_c)$
Net $ (0.12 (2.75 -1) + 0.28 (2.75 -1) - 0.18 - 0.42)w_p + (0.12 (4 -1) - 0.28 + 0.18 (4 -1) - 0.42 )w_c +1= 0.1 w_p+ 0.2 w_c+ 1$

Heck, I'd just gamble everything on $w_c$, because for me, getting 300% return with a 30% probability, while losing everything with 70% probability, sounds like the most entertainment! But your risk aversion may vary.

This being an interview question, they'd probably expect you to show off the use of the Kelly Criterion as well.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.