← Morgan Stanley Interview Insights

Morgan Stanley·Software Engineer·Technical Phone Screen·Senior

Senior
Jun 2026

Summary

Morgan Stanley quant engineer interview focused heavily on mental math for Black-Scholes Greeks, no calculator allowed. The whole session was basically: here are some option parameters, now estimate delta, gamma, and vega on the fly and explain your reasoning.

Questions Asked (3)

Q1

Given a set of option parameters (spot, strike, time-to-expiry, vol, rate), estimate the delta, gamma, and vega of a European option without a calculator. Walk through your approximations and reasoning.

Technical Trade-offsAlgorithms & Data Structures
Author's notes

This was the core of the whole interview.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by identifying whether the option is at-the-money (ATM), in-the-money (ITM), or out-of-the-money (OTM) using the spot vs strike. Then use rule-of-thumb approximations for delta, gamma, and vega based on moneyness and time to expiry, and adjust for volatility and rate if needed.

Pro tip: Mention that these approximations assume no dividends and are most accurate for ATM options; for ITM/OTM, delta approaches 1 or 0, and gamma/vega are smaller. Also, note that vega is highest for ATM options and decreases as you move away from the money.

1. Classify Moneyness

Compare spot to strike to determine if the option is ATM, ITM, or OTM. This sets the baseline for delta and the magnitude of gamma and vega.

2. Estimate Delta

For ATM, delta is approximately 0.5 (call) or -0.5 (put). For ITM, delta approaches 1 (call) or -1 (put); for OTM, it approaches 0. Adjust slightly based on time to expiry and volatility.

3. Estimate Gamma

Gamma is highest for ATM options and decreases as you move ITM or OTM. For ATM, gamma is roughly 0.4 / (spot * vol * sqrt(time)). For ITM/OTM, gamma is smaller.

4. Estimate Vega

Vega is also highest for ATM options. For ATM, vega is approximately 0.4 * spot * sqrt(time). For ITM/OTM, vega is lower. Volatility scales vega proportionally.

5. Adjust for Volatility and Rate

Higher volatility increases the time value, making OTM options more valuable and increasing gamma and vega for near-the-money options. Interest rates have a minor effect on delta and gamma for short-dated options, but can affect vega slightly.

Key Points to Mention

  • Delta approximation: ATM ~0.5, ITM ~1, OTM ~0, with adjustments for time and volatility.
  • Gamma approximation: ATM ~0.4/(S*σ*√T), decreases as you move away from the money.
  • Vega approximation: ATM ~0.4*S*√T, decreases as you move away from the money.
  • Moneyness classification is crucial for setting the baseline.
  • Volatility and time to expiry affect the magnitude of gamma and vega.
  • Assumptions: no dividends, European option, and these are rough estimates.

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q2

How do you approximate the standard normal CDF and PDF quickly when you don't have access to exact Gaussian quantile tables?

Technical Trade-offsAlgorithms & Data Structures
Author's notes

Blanked for a second.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by acknowledging that exact Gaussian CDF/PDF are not available in closed form, so approximations are necessary. Then present a practical, accurate method like the Abramowitz-Stegun rational approximation or the Zelen & Severo algorithm, and discuss trade-offs between accuracy and speed. Conclude with implementation considerations for a production environment like Morgan Stanley.

Pro tip: Mention that you would validate the approximation against known values (e.g., at 0, 1.96) and consider using a lookup table with interpolation for extreme speed, but be ready to explain the accuracy trade-off.

1. Clarify requirements

Ask about the required accuracy, performance constraints, and whether the approximation will be used in a latency-sensitive trading system or for offline analysis.

2. Choose an approximation method

Select a well-known method such as the Abramowitz-Stegun formula for the CDF or the Box-Muller transform for generating normal variates, and explain why it fits the requirements.

3. Implement and optimize

Describe how to implement the chosen method efficiently in code, using techniques like Horner's method for polynomial evaluation and avoiding expensive operations like exponentiation where possible.

4. Validate accuracy

Explain how you would test the approximation against known values or high-precision libraries, and discuss error bounds and edge cases (e.g., tails).

5. Discuss trade-offs

Summarize the trade-offs between accuracy, speed, and memory usage, and justify your final choice for the given context.

Key Points to Mention

  • Abramowitz-Stegun approximation for the normal CDF (e.g., formula 26.2.17) with error < 7.5e-8
  • Zelen & Severo algorithm for the CDF and its accuracy
  • Box-Muller transform for generating normal random variables (if PDF sampling is needed)
  • Use of Horner's method for efficient polynomial evaluation
  • Lookup tables with linear or cubic interpolation for extreme speed
  • Validation against known quantiles (e.g., 1.96 for 97.5%) and tail behavior

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q3

How do the Black-Scholes Greeks scale with each of the input parameters, and how would you use that to sanity-check your estimates by perturbing inputs?

Technical Trade-offsRoot Cause Analysis
Author's notes

Actually felt okay on this one.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by defining the Black-Scholes Greeks (Delta, Gamma, Vega, Theta, Rho) and their mathematical dependencies on the inputs (S, K, T, σ, r). Then explain how each Greek changes with respect to each input, focusing on monotonicity and convexity. Finally, describe how to use this knowledge to sanity-check numerical estimates by perturbing inputs and verifying that the Greeks behave as expected.

Pro tip: Emphasize that sanity-checking Greeks via perturbation is a practical way to catch bugs in pricing libraries, and mention that in production systems, you often use finite differences to validate analytic Greeks, especially for exotic options where closed-form solutions may not exist.

1. Define the Greeks and their inputs

List the five main Greeks (Delta, Gamma, Vega, Theta, Rho) and the Black-Scholes inputs: spot price S, strike K, time to maturity T, volatility σ, and risk-free rate r. Clarify that Greeks are partial derivatives of the option price with respect to these inputs.

2. Explain scaling relationships

For each Greek, describe how it scales with each input. For example, Delta increases with S for calls (from 0 to 1), Gamma peaks near ATM and decreases with T, Vega increases with T and is highest ATM, Theta is negative and its magnitude increases as T decreases, Rho increases with T for calls.

3. Describe perturbation sanity checks

Explain that you can perturb one input at a time (e.g., bump S by a small amount) and recompute the option price to approximate the Greek via finite differences. Then compare the numerical result to the analytic Greek to ensure consistency.

4. Apply to software engineering context

Discuss how this is implemented in code: unit tests that verify Greeks against finite differences, handling edge cases (e.g., T→0, deep ITM/OTM), and ensuring numerical stability. Mention that automated checks can catch regressions in pricing models.

Key Points to Mention

  • Delta: ∂V/∂S, ranges from 0 to 1 for calls, -1 to 0 for puts; increases with S, decreases with K.
  • Gamma: ∂²V/∂S², highest for ATM options, decreases as T increases; important for hedging convexity.
  • Vega: ∂V/∂σ, highest for ATM options, increases with T; sensitive to volatility changes.
  • Theta: ∂V/∂T (often negative), magnitude increases as T decreases; time decay accelerates near expiry.
  • Rho: ∂V/∂r, positive for calls, negative for puts; increases with T.
  • Perturbation method: bump one input, recompute price, use finite difference to approximate Greek, compare with analytic value; use small bumps (e.g., 1% of S) to avoid nonlinearity.

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.