The Greeks
Chapter: Options Greeks & Volatility Difficulty: Level 5 — Mastery (cross-domain: math + quantitative finance + coding) Time limit: 90 minutes Total marks: 60
Instructions: Answer all three questions. Show full derivations. Use for the standard normal CDF and for its density. Assume the Black–Scholes world (no dividends, constant and ) unless stated. Present code in Python/NumPy-style pseudocode where asked.
Question 1 — Deriving and connecting the Greeks (24 marks)
The Black–Scholes call price is where is time to expiry.
(a) Prove the identity . (5 marks)
(b) Using (a), derive closed forms for Delta , Gamma and Vega . Show that the messy terms from differentiating cancel. (9 marks)
(c) Establish the algebraic relationship and interpret why Gamma and Vega peak near at-the-money for short-dated options but Vega's peak shifts for long-dated options. (6 marks)
(d) Verify the Black–Scholes PDE is satisfied, and use it to explain the intuitive trade-off "a long option holder pays theta to own gamma." (4 marks)
Question 2 — IV crush, skew and event trading (18 marks)
A stock trades at . A binary earnings event occurs tomorrow. The market prices a one-week ATM straddle at total premium \8.00$.
(a) Using the ATM approximation (so straddle ), infer the implied volatility embedded in the straddle. Take year. (5 marks)
(b) The realised historical volatility of the stock is annualised. Compute the event-implied move priced by the straddle as a one-day move (in $ and %), and state the break-even condition for a long straddle buyer. (5 marks)
(c) Immediately after the announcement, IV collapses from your part-(a) value to while the stock gaps up . Estimate the straddle's new value using the same ATM formula (re-strike ATM at the new spot for the estimate), and decide whether the long straddle buyer profited. Explain the role of IV crush vs the realised move. (5 marks)
(d) Explain, in terms of the volatility skew/smile, why the out-of-the-money put on this name would carry a higher IV than the OTM call, and how a trader could exploit expected post-event skew flattening. (3 marks)
Question 3 — Building and managing a delta–gamma hedged book (18 marks)
You run a Python risk engine. Your book holds:
- Short 100 call contracts (1 contract = 100 shares), each with , , (per share, per 1.00 vol point ... use per share values directly).
- Long the underlying: 3000 shares.
(a) Compute the book's net Delta, Gamma and Vega (in share-equivalent units). Is the book long or short volatility? (6 marks)
(b) You want to be delta-neutral and gamma-neutral simultaneously using the underlying (Δ only) and a traded option with . Set up and solve the 2×2 linear system for the number of option-shares and underlying shares to add. (7 marks)
(c) Write NumPy-style pseudocode for a function hedge(book_greeks, instrument_greeks) that returns the hedge quantities by solving the linear system, and explain what breaks if the instrument's Greek matrix is singular. (5 marks)
Answer keyMark scheme & solutions
Question 1
(a) Identity (5 marks)
. (1) . (1) Since and : . (2) Thus , giving . (1)
(b) Delta, Gamma, Vega (9 marks)
: . Since and by (a) , the last two terms cancel: . (3)
: . (3)
: (using a). Since , its -derivative is : . (3)
(c) (6 marks)
. ✓ (3) Interpretation: both scale with , maximal when (near ATM). Gamma carries an extra (blows up ATM as ), while Vega carries (vanishes at expiry, grows with maturity). Hence Gamma is sharpest for short-dated ATM; Vega's peak in strike drifts because the strike moves up with . (3)
(d) PDE check + intuition (4 marks)
. Substitute with , : , which cancels the first theta term; ; sum . ✓ (2) Intuition: rearranged, . Long gamma () forces : the holder bleeds time value (pays theta) as the "rent" for the convexity/gamma that profits from movement. (2)
Question 2
(a) Implied vol (5 marks) Straddle . (2) . (3)
(b) Event move & break-even (5 marks) One-day priced move (expected absolute move) with : 100\cdot0.7211\cdot\sqrt{1/252}=100\cdot0.7211\cdot0.06300=\4.54\approx4.5%\pm$8\pm8%|S_T-100|>8$. (2)
(c) IV crush outcome (5 marks) New straddle \approx0.8\cdot104\cdot0.35\cdot\sqrt{1/52}=0.8\cdot104\cdot0.35\cdot0.13868=\4.044%=$4\approx$4$4.04$4$88) was priced; the IV crush from 72% to 35% destroyed extrinsic value. Realised move failed to beat the "vol premium." (1)
(d) Skew (3 marks) Equity index/name puts trade richer (higher IV) — crash-o-phobia / leverage effect: down moves raise volatility, so OTM puts carry a skew premium. (2) A trader expecting post-event skew flattening could sell the expensive OTM put IV (or put spread) and buy relatively cheaper call-wing IV, netting the skew normalisation. (1)
Question 3
(a) Net Greeks (6 marks) Short 100 calls ×100 shares = short 10,000 option-shares.
- Delta: (2)
- Gamma: (2)
- Vega: ⇒ short volatility (negative vega). (2)
(b) Delta+Gamma neutral system (7 marks) Underlying has . Let =option-shares of hedge instrument, =underlying shares. Gamma: . (3) Delta: . (3) So buy 8000 option-shares (=80 contracts) and short 700 underlying shares. (1)
(c) Pseudocode (5 marks)
import numpy as np
def hedge(book_greeks, instrument_greeks):
# book_greeks = [delta, gamma]; instrument matrix columns = [opt, underlying]
A = np.array([[instrument_greeks['opt_delta'], 1.0],
[instrument_greeks['opt_gamma'], 0.0]])
b = -np.array([book_greeks['delta'], book_greeks['gamma']])
x = np.linalg.solve(A, b) # [opt_shares, underlying_shares]
return x(3) If is singular (det = 0) — e.g. the option has zero gamma, or hedging instruments are linearly dependent — np.linalg.solve raises LinAlgError; no simultaneous neutrality exists and you need an independent second instrument (least-squares / different maturity or strike). (2)
[
{"claim":"Vega = S^2 sigma tau Gamma identity holds symbolically","code":"S,sig,tau=symbols('S sigma tau',positive=True); d1=symbols('d1'); phi=exp(-d1**2/2)/sqrt(2*pi); Gamma=phi/(S*sig*sqrt(tau)); Vega=S*phi*sqrt(tau); result=simplify(Vega-S**2*sig*tau*Gamma)==0"},
{"claim":"Implied vol from straddle = sqrt(52)/10 approx 0.7211","code":"sig=8/(0.8*100*sqrt(Rational(1,52))); result=abs(float(sig)-0.72111)<1e-3"},
{"claim":"Gamma-neutral option shares x=8000 and delta hedge y=-700","code":"x=400/0.05; y=-(-2500+0.40*x); result=(x==8000) and (y==-700)"},
{"claim":"Net book Greeks: delta=-2500, gamma=-400, vega=-1200","code":"d=-10000*0.55+3000; g=-10000*0.04; v=-10000*0.12; result=(d==-2500) and (g==-400) and (v==-1200)"},
{"claim":"Post-event straddle estimate approx 4.04","code":"val=0.8*104*0.35*sqrt(Rational(1,52)); result=abs(float(val)-4.04)<0.05"}
]