ใ€€

blog-cover-image

Quant Research Interview Questions - Optiver

Quantitative research interviews at top trading and financial firms such as Optiver, AlphaGrep, SMC Global, Virtu Financial, Morgan Stanley, and their peers are renowned for their difficulty and depth. These interviews aim to assess not just your mathematical and analytical prowess but also your creativity and understanding of both finance and probability. In this article, we’ll explore and solve some of the most frequently asked quant research interview questions, explaining all the relevant concepts in detail. Whether you’re prepping for Flow Traders, IMC Trading, Goldman Sachs, Euronext, SIG, Jane Street, or similar firms, mastering these problems will give you a strong edge.

Quant Research Interview Questions – Optiver and Peers


1. ETF Pricing Questions (Flow Traders)

What is ETF Pricing?

Exchange-Traded Funds (ETFs) are baskets of securities traded on exchanges, just like stocks. The price of an ETF should closely track the net asset value (NAV) of its underlying assets. However, various factors—such as supply/demand, market liquidity, and transaction costs—can cause slight deviations.

ETF Pricing Mathematics

Suppose an ETF holds a portfolio of \( n \) stocks, with weights \( w_1, w_2, ..., w_n \) and current market prices \( P_1, P_2, ..., P_n \). The theoretical NAV of the ETF is:

\[ \text{NAV} = \sum_{i=1}^n w_i P_i \]

But the ETF may trade at a price \( P_{ETF} \) that deviates from NAV. The premium or discount is:

\[ \text{Premium/Discount} = \frac{P_{ETF} - \text{NAV}}{\text{NAV}} \]

Common Interview ETF Pricing Questions

  • How do you price an ETF given the prices of its constituent stocks?
  • What causes an ETF to trade at a premium or discount?
  • How can arbitrage correct ETF mispricing?

Sample Solution: Arbitrage Opportunity

Suppose the ETF is trading at a price above its NAV. An arbitrageur can:

  1. Buy the underlying stocks in the correct proportions.
  2. Create ETF shares with the authorized participant (AP).
  3. Sell the ETF shares on the market at the higher price.

This will increase ETF supply, lower its price, and bring it closer to NAV.

Key Concepts

  • Liquidity: Underlying asset liquidity affects ETF pricing accuracy.
  • Creation/Redemption Mechanism: This process is what allows arbitrageurs to align ETF prices with NAV.
  • Transaction Costs & Timing: Lead-lag effects and trading costs can create short-lived arbitrage opportunities.

2. Fish in a Bucket Problem (IMC Trading)

Problem Statement

There are some fish in a bucket. Three fishermen come up to the bucket in turn. The first one tries to divide them into groups of three, but finds there is one left over, so he takes one fish and a third of the remaining fish. The next fisherman comes to the bucket, tries to divide the fish into three, finds there is one left over, so takes this and a third of the remaining fish. The third fisherman does the same. What is the minimum number of fish in the bucket to start with?

Step-by-Step Solution

  1. Let’s define variables: Let \( x \) be the initial number of fish.
  2. First Fisherman:
    • Tries to divide by 3, remainder 1: \( x \equiv 1 \pmod{3} \).
    • Takes 1 fish, leaves \( x_1 = x-1 \).
    • Takes a third of the remaining: \( \frac{x_1}{3} \). Leaves \( x_2 = x_1 - \frac{x_1}{3} = \frac{2}{3} x_1 \).
  3. Second Fisherman:
    • Same steps: tries to divide \( x_2 \), finds 1 left, so \( x_2 \equiv 1 \pmod{3} \).
    • Takes 1 fish: \( x_3 = x_2 - 1 \).
    • Takes a third of the remaining: \( \frac{x_3}{3} \). Leaves \( x_4 = x_3 - \frac{x_3}{3} = \frac{2}{3} x_3 \).
  4. Third Fisherman:
    • Same logic: \( x_4 \equiv 1 \pmod{3} \).
    • Takes 1 fish: \( x_5 = x_4 - 1 \).
    • Takes a third of the remaining: \( \frac{x_5}{3} \). Leaves \( x_6 = x_5 - \frac{x_5}{3} = \frac{2}{3} x_5 \).

Backwards Calculation

Let’s let the final amount after all fishermen is an integer, say \( x_6 = k \), and work backwards.

  • Third fisherman: \( x_6 = \frac{2}{3}(x_5) \implies x_5 = \frac{3}{2}x_6 \)
  • But \( x_5 = x_4 - 1 \implies x_4 = x_5 + 1 = \frac{3}{2}x_6 + 1 \)
  • But \( x_4 \equiv 1 \pmod{3} \)
  • Similarly, \( x_4 = \frac{2}{3}x_3 \implies x_3 = \frac{3}{2}x_4 \)
  • And \( x_3 = x_2 - 1 \implies x_2 = x_3 + 1 \)
  • And \( x_2 = \frac{2}{3}x_1 \implies x_1 = \frac{3}{2}x_2 \)
  • And \( x_1 = x - 1 \implies x = x_1 + 1 \)

Let’s set \( x_6 = k \) and work upwards:

  1. \( x_5 = \frac{3}{2}k \)
  2. \( x_4 = \frac{3}{2}k + 1 \)
  3. \( x_3 = \frac{3}{2}x_4 = \frac{3}{2}(\frac{3}{2}k + 1) = \frac{9}{4}k + \frac{3}{2} \)
  4. \( x_2 = x_3 + 1 = \frac{9}{4}k + \frac{3}{2} + 1 = \frac{9}{4}k + \frac{5}{2} \)
  5. \( x_1 = \frac{3}{2}x_2 = \frac{3}{2}(\frac{9}{4}k + \frac{5}{2}) = \frac{27}{8}k + \frac{15}{4} \)
  6. \( x = x_1 + 1 = \frac{27}{8}k + \frac{15}{4} + 1 = \frac{27}{8}k + \frac{19}{4} \)

We need \( x \) to be an integer and minimal:

Let’s try \( k = 8 \) (as denominators are factors of 8):

\[ x = \frac{27}{8} \times 8 + \frac{19}{4} = 27 + 4.75 = 31.75 \]

Not integer. Try \( k = 4 \):

\[ x = \frac{27}{8} \times 4 + \frac{19}{4} = 13.5 + 4.75 = 18.25 \]

Try \( k = 16 \):

\[ x = \frac{27}{8} \times 16 + \frac{19}{4} = 54 + 4.75 = 58.75 \]

Try \( k = 2 \) (no), \( k = 24 \):

\[ x = \frac{27}{8} \times 24 + \frac{19}{4} = 81 + 4.75 = 85.75 \]

Try \( k = 6 \):

\[ x = \frac{27}{8} \times 6 + \frac{19}{4} = 20.25 + 4.75 = 25 \]

Therefore, the minimum number of fish is 25.

Verification

  • First fisherman:
    25 fish. 25 mod 3 = 1. Takes 1, 24 left. Takes a third (8), leaves 16.
  • Second fisherman:
    16 mod 3 = 1. Takes 1, 15 left. Takes a third (5), leaves 10.
  • Third fisherman:
    10 mod 3 = 1. Takes 1, 9 left. Takes a third (3), leaves 6.

Each step checks out, so the answer is 25.


3. Features of a Stochastic Matrix (Goldman Sachs)

Definition

A stochastic matrix is a square matrix used to describe the transitions of a Markov chain. Its key properties are:

  • All entries are non-negative: \( a_{ij} \geq 0 \)
  • Each row sums to 1: \( \sum_{j} a_{ij} = 1 \)

Types of Stochastic Matrices

  • Right stochastic matrix: Rows sum to 1 (most common).
  • Left stochastic matrix: Columns sum to 1.
  • Doubly stochastic matrix: Both rows and columns sum to 1.

Example


import numpy as np
A = np.array([[0.6, 0.4],
              [0.2, 0.8]])
print(A.sum(axis=1))  # Output: [1. 1.]

Applications

  • Markov chains
  • PageRank algorithm
  • Modeling probability transitions in finance

Properties

  • Multiplying a probability vector by a stochastic matrix yields another probability vector.
  • All eigenvalues have modulus ≤ 1.
  • For an irreducible and aperiodic stochastic matrix, there is a unique stationary distribution.
Type Rows sum to 1 Columns sum to 1 Non-negative entries
Right Stochastic Yes No Yes
Left Stochastic No Yes Yes
Doubly Stochastic Yes Yes Yes

4. Probability: Two Kids, One is a Girl (Euronext)

Question

If I have two kids and tell you that one of them is a girl, what is the probability that the other is a boy?

Solution

  1. Let’s enumerate all equally likely possibilities for two kids:
    • Boy, Boy (BB)
    • Boy, Girl (BG)
    • Girl, Boy (GB)
    • Girl, Girl (GG)
  2. We are told at least one is a girl, so eliminate BB. That leaves BG, GB, GG.
  3. Of these, in BG and GB, the other child is a boy. In GG, the other is a girl.
  4. Total possible: 3 (BG, GB, GG). Favorable: 2 (BG, GB).

\[ P(\text{other is boy} \mid \text{at least one is girl}) = \frac{2}{3} \]

Key Concepts

  • Conditional probability
  • Enumeration of equally likely cases
  • Beware of the “at least one” vs. “this one” wording

5. Expected Number of Coin Flips Before Getting Two Consecutive Heads (SIG)

Problem Statement

You flip a fair coin repeatedly. What is the expected number of flips before you see two consecutive heads (i.e., "HH")?

State Machine Solution

Define states:

  • S0: No heads yet, or last flip was tails.
  • S1: Last flip was heads,

    not yet two in a row.

    • S2: Two consecutive heads (we stop here).

    Let \( E_0 \) be the expected number of flips starting from S0, \( E_1 \) from S1, and \( E_2 = 0 \) (since we have reached our goal).

    Setting Up Equations

    From S0 (no heads yet or just had a tail):
    On each flip:

    • With probability 0.5: flip Heads → move to S1 (add 1 flip)
    • With probability 0.5: flip Tails → stay in S0 (add 1 flip)
    So, \[ E_0 = 1 + 0.5 E_1 + 0.5 E_0 \] Rearrange: \[ E_0 - 0.5 E_0 = 1 + 0.5 E_1 \implies 0.5 E_0 = 1 + 0.5 E_1 \implies E_0 = 2 + E_1 \]

     

    From S1 (last was head, but not two in a row):

    • With probability 0.5: flip Heads → move to S2 (done, 1 more flip)
    • With probability 0.5: flip Tails → back to S0 (1 more flip)
    So, \[ E_1 = 1 + 0.5 \times 0 + 0.5 E_0 = 1 + 0.5 E_0 \]

     

    Solving the Equations

    Substitute for \( E_1 \) in the first equation: \[ E_0 = 2 + E_1 \\ E_1 = 1 + 0.5 E_0 \] \[ E_0 = 2 + 1 + 0.5 E_0 \implies E_0 = 3 + 0.5 E_0 \implies E_0 - 0.5 E_0 = 3 \implies 0.5 E_0 = 3 \implies E_0 = 6 \] \[ E_1 = 1 + 0.5 \times 6 = 1 + 3 = 4 \]

    Answer: The expected number of flips before getting two consecutive heads is 6.

    Generalization

    This method can be extended to compute expected waiting times for any pattern using Markov chains or recursion.


    6. Simulating a 15-sided Die with a 6-sided Die (Jane Street)

    Problem Statement

    How can you play a game that requires a 15-sided die, but you only have a fair 6-sided die? (You want each outcome from 1 to 15 to be equally likely.)

    Solution Approach

    We need to generate numbers 1-15 uniformly. Since 6 is not a multiple of 15, use rejection sampling with two dice:

    • Roll two dice, which gives 36 equally likely outcomes (6 × 6 = 36).
    • Assign numbers 1–15 to the first 30 outcomes.
    • If the outcome maps to 31–36, reject and reroll.

     

    How to Assign the Numbers

    Let die A and die B be the two dice, each result from 1–6. Map each pair (A,B) to a number from 1 to 36: \[ N = 6 \times (A-1) + B \] Assign outcomes 1–15 repeatedly to numbers 1–30.

    Outcome Number Assigned Die Value
    1 1
    2 2
    3 3
    4 4
    5 5
    6 6
    7 7
    8 8
    9 9
    10 10
    11 11
    12 12
    13 13
    14 14
    15 15
    16 1
    17 2
    ... ...
    30 15
    31-36 reroll

    Algorithm in Python

    
    import random
    
    def roll_15_sided():
        while True:
            a = random.randint(1, 6)
            b = random.randint(1, 6)
            n = 6 * (a - 1) + b
            if n <= 30:
                return ((n - 1) % 15) + 1
    

    This algorithm guarantees each number from 1 to 15 is equally likely. The expected number of rolls before success is \( \frac{36}{30} = 1.2 \) trials.

    Alternate: Using More Dice or Coin Flips

    If you have access to more bits of randomness (e.g., coin flips or more dice), you could try to generate numbers 0–14 using binary and reject higher numbers.


    Conclusion

    Quant research interviews at firms like Optiver, AlphaGrep, SMC Global, Virtu Financial, Morgan Stanley, Flow Traders, IMC Trading, SIG, and Jane Street rigorously test your grasp of probability, combinatorics, Markov processes, and practical finance. By understanding and practicing the above questions, you’ll be well prepared for the challenging and intellectually stimulating problems that these firms are known for.

    • ETF Pricing: Know NAV, arbitrage, and the creation/redemption process.
    • Logic Puzzles: Practice systematic back-calculation and modular arithmetic.
    • Probability & Markov Chains: Master recursion, state machines, and conditional probability.
    • Simulation Techniques: Be familiar with rejection sampling and mapping random outcomes.

    For more in-depth practice, study probability theory, Markov processes, and financial mathematics. Reviewing previous years' questions and mock interviews is also highly recommended.

    Good luck with your quant research interview preparation!

Related Articles