Quant Research Guide
Quant Research Interview Structure
Quant research interviews have a distinct structure across all top firms. Each stage tests different skills, and failing to prepare for the specific format of each stage is the most common reason strong candidates get rejected. Know what is tested at each stage, how to present research rigorously, and how to handle adversarial follow-up questions.
Core Theory
- 1Stage 1 โ Phone screen (30-45 min): probability puzzles and mental math. Typically 3-5 problems drawn from Markov chains, conditional expectation, combinatorics, and expected value. You have 3-4 minutes per problem. At Two Sigma and D.E. Shaw, this is the primary filter โ strong analytical candidates pass, everyone else gets cut.
- 2Stage 2 โ Technical round (60-90 min): statistics, time series, factor models, ML for finance, and Python/coding. The depth varies: D.E. Shaw goes deep on math derivations; Two Sigma emphasizes data analysis and problem-solving; WorldQuant focuses on alpha expression writing and IC evaluation.
- 3Stage 3 โ Case study (24-48 hrs, take-home): given a dataset (returns, fundamentals, alternative data), build a signal, validate it rigorously, and present findings. Graded on statistical discipline (did you prevent look-ahead? test OOS?), depth of analysis, and quality of written research memo.
- 4Stage 4 โ Research presentation (45-60 min): present your own prior research (thesis, internship, or case study). Expect adversarial questions: 'How do you know it's not overfitted?' 'What's the capacity?' 'Why would this alpha persist?' The interviewers are trying to stress-test your statistical reasoning.
- 5Stage 5 โ Final round / fit: senior researcher or portfolio manager discussion of research philosophy, career goals, and cultural fit. Questions about what factors you find compelling and why, how you'd approach a new research project, and what you'd work on in the first 6 months.
- 6IC t-stat calculation you must do cold: given mean monthly IC = X, IC std = ฯ, T months, compute t = XโT/ฯ. For T=60, ฯ=0.10: need X > 3ร0.10/โ60 โ 0.039. Know this instantly.
- 7Sharpe significance formula: t โ SR ร โT. For daily data over 3 years (T=756): SR = 1.0 gives t = 27.5. For monthly data over 5 years (T=60): SR = 1.5 gives t = 11.6. Memorize and compute instantly.
- 8Research memo structure (for case studies): (1) Executive summary โ key finding in 2 sentences. (2) Data and methodology โ universe, period, features, model. (3) Results โ IC, ICIR, t-stat, decay table, OOS performance. (4) Risks and limitations โ overfitting checks, regime sensitivity, costs. (5) Extensions โ 3 natural next steps.
Key Formulas
| 1 | import numpy as np |
| 2 | from scipy import stats |
| 3 | |
| 4 | # โโโ Calculation 1: IC t-statistic โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ |
| 5 | mean_ic = 0.04 # mean monthly IC |
| 6 | std_ic = 0.11 # IC standard deviation |
| 7 | T_months = 60 # 5 years of monthly data |
| 8 | |
| 9 | t_ic = mean_ic * np.sqrt(T_months) / std_ic |
| 10 | p_ic = 2 * (1 - stats.t.cdf(abs(t_ic), df=T_months-1)) |
| 11 | print("=== IC Significance ===") |
| 12 | print(f"IC t-stat : {t_ic:.3f}") |
| 13 | print(f"p-value : {p_ic:.4f}") |
| 14 | print(f"Significant : {'YES (t > 3)' if abs(t_ic) > 3 else 'NO (t < 3, quant standard)'}") |
| 15 | |
| 16 | # โโโ Calculation 2: Required months for t = 3 โโโโโโโโโโโโโโโโโโโโ |
| 17 | T_needed = (3 * std_ic / mean_ic) ** 2 |
| 18 | print(f" |
| 19 | Months needed for t=3: {T_needed:.0f} (~{T_needed/12:.1f} years)") |
| 20 | |
| 21 | # โโโ Calculation 3: Sharpe ratio significance โโโโโโโโโโโโโโโโโโโโโ |
| 22 | sharpe = 1.2 |
| 23 | T_days = 756 # 3 years daily |
| 24 | t_sharpe = sharpe * np.sqrt(T_days) |
| 25 | p_sharpe = 2 * (1 - stats.norm.cdf(t_sharpe)) |
| 26 | print(" |
| 27 | === Sharpe Significance ===") |
| 28 | print(f"Sharpe t-stat: {t_sharpe:.1f}, p โ {p_sharpe:.2e} (very significant)") |
| 29 | |
| 30 | # โโโ Calculation 4: Multiple testing โ expected false positives โโโ |
| 31 | n_tests = 200 |
| 32 | alpha = 0.05 |
| 33 | t_quant = 3.0 |
| 34 | p_quant = 2 * (1 - stats.norm.cdf(t_quant)) |
| 35 | |
| 36 | exp_fp_naive = n_tests * alpha |
| 37 | exp_fp_quant = n_tests * p_quant |
| 38 | print(" |
| 39 | === Multiple Testing ===") |
| 40 | print(f"200 tests at t>2 (p<0.05): {exp_fp_naive:.0f} expected false positives") |
| 41 | print(f"200 tests at t>3 (p<0.003): {exp_fp_quant:.1f} expected false positives") |
| 42 | |
| 43 | # โโโ Calculation 5: Fundamental Law โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ |
| 44 | IC = 0.05 |
| 45 | BR = 500 * 12 # 500 stocks/month ร 12 months |
| 46 | TC = 0.85 # transfer coefficient (constraints reduce it) |
| 47 | IR = IC * np.sqrt(BR) * TC |
| 48 | print(f" |
| 49 | === Fundamental Law ===") |
| 50 | print(f"IR = {IC} ร โ{BR} ร {TC} = {IR:.3f}") |
| 51 | print(f"(Exceptional is IR > 1.0; typical quant fund: 0.3-0.8)") |
| 52 | |
| 53 | # โโโ Calculation 6: Signal required IC to break even after costs โโ |
| 54 | vol = 0.08 # cross-sectional monthly return vol |
| 55 | turnover = 0.50 # 50% monthly turnover |
| 56 | cost_bps = 10 # 10bp one-way |
| 57 | cost_drag = turnover * 2 * (cost_bps / 10000) * 12 # annual |
| 58 | min_ic = cost_drag / (vol * np.sqrt(12)) |
| 59 | print(f" |
| 60 | === Break-even IC ===") |
| 61 | print(f"Annual cost drag : {cost_drag*100:.2f}%") |
| 62 | print(f"Min IC to break even: {min_ic:.4f}") |
All the live calculations you need to perform in a quant research interview: IC t-statistic and significance, required sample size for t=3, Sharpe significance, multiple testing false positive counts, Fundamental Law IR, and break-even IC after transaction costs. Practice running all of these mentally.
Worked Interview Problems
3 problemsProblem
Classic Two Sigma phone screen: you start with 1 on heads, lose N before going broke?
Solution
This is the Gambler's Ruin problem. Let p_k = probability of reaching N before 0, starting from k.
Difference equation: p_k = (1/2)p_{k+1} + (1/2)p_{k-1} (fair coin, p = q = 1/2).
Boundary conditions: p_0 = 0, p_N = 1.
For a fair coin (p = q = 1/2), the solution is p_k = k/N. For an unfair coin (p โ q): p_k = (1 - (q/p)^k) / (1 - (q/p)^N).
Answer for fair coin: P(reach N before 0 | start at k) = k/N. Starting at k=50 going to N=100: probability = 50/100 = 50%.
Answer
for a fair coin. With , : probability = 50%. For unfair coin: .
Common Mistakes
Taking too long on phone screen probability problems. If you haven't made progress in 90 seconds, ask for a hint or switch approach. Interviewers want to see how you reason under time pressure, not watch you stare silently for 5 minutes.
Presenting only in-sample backtest results in a case study. Every case study grader expects OOS performance. If your OOS Sharpe is 0.3 after IS Sharpe of 1.8, present both honestly and explain the degradation โ don't hide it.
Not having a clear 'so what' in the research presentation. After describing methodology and results, state explicitly: 'This signal has IC = 0.05, t-stat = 4.1, survives OOS and after costs, and is uncorrelated with value and momentum. It is production-ready.' Clarity of conclusion is a major evaluation criterion.
Failing to quantify uncertainty. Never say 'the signal is significant' โ say 'the IC t-stat is 3.8, which exceeds the t=3 threshold I apply given 200 signals tested in this project.' Numbers signal rigor; vague claims do not.
Not preparing adversarial questions for your own research. Before every interview, spend 30 minutes trying to break your own results: 'What if this is just value in disguise? What if it only works in the 2010-2019 bull market? What if it stops working when everyone uses it?'