Solution: ATM Gamma Explosion Near Expiry
Exercise: ATM Gamma Explosion Near Expiry
Part 1 — Growth tabulation
import numpy as np
from scipy.stats import norm
def gamma_bs(S, K, T, r, sigma, q=0):
d1 = (np.log(S/K) + (r - q + 0.5*sigma**2)*T) / (sigma*np.sqrt(T))
return np.exp(-q*T) * norm.pdf(d1) / (S*sigma*np.sqrt(T))
S, K, r, sigma = 100, 100, 0.05, 0.2
for tau in [0.02, 0.01, 0.005, 0.001, 0.0001]:
g = gamma_bs(S, K, tau, r, sigma)
print(f"T-t={tau:.4f}: gamma={g:.4f}")
# T-t=0.02: gamma=0.1410
# T-t=0.01: gamma=0.1994
# T-t=0.005: gamma=0.2820
# T-t=0.001: gamma=0.6306
# T-t=0.0001: gamma=1.9947Gamma doubles each time is quartered — consistent with scaling.
Part 2 — Scaling derivation
For ATM with :
.
Exact constant: .
Check: at , , so . ✓ Matches table.
Part 3 — Delta jump at
At : .
Linearisation: for a $0.50 move. So if rises from 100 to 100.5, delta jumps from to . If falls to 99.5, delta drops to .
Over a $1 move: delta changes by — more than half the maximum possible range of delta () in a single dollar's move.
Part 4 — Operational feedback
The market maker is short 1 call, holding shares as a hedge. Near expiry at :
- Stock rises $0.50 to 100.50. Delta jumps from 0.51 to 0.82. MM must buy 0.31 shares to re-hedge. This buying pressure itself pushes the stock higher.
- Stock falls $0.50 to 99.50. Delta drops from 0.51 to 0.19. MM must sell 0.32 shares. Selling pressure pushes stock lower.
The MM is buying high and selling low — the classic short-gamma squeeze. For a concentrated position, this self-reinforcing dynamic can:
- Move the spot price. Large short-gamma hedging books can cause localised pinning around the strike — the "max-pain" phenomenon observed near expiry on heavily-traded equity options.
- Generate large hedging losses. Each rebalancing is done at the wrong side of the bid-ask, and the convexity of the option means losses grow quadratically with the underlying's realised move.
- Force dealers to stop making markets. When gamma is high enough and the book is concentrated, desks may widen spreads dramatically or exit the market entirely, reducing liquidity around expiry.
This is why the last trading day of large-volume options (e.g. monthly/quarterly SPX options) frequently shows anomalous price action — dealer gamma hedging, not fundamentals, drives intraday moves.
Takeaways
- ATM gamma grows as with exact constant . This is a hard-coded feature of the Black-Scholes model; all local-vol and stochastic-vol models inherit a similar singularity (though the exact exponent may differ).
- Pin risk is a real-world operational phenomenon. Desks short a concentrated near-expiry ATM position face not just theoretical P&L issues but order-flow and liquidity feedback that can move markets.
- Why dealers hedge with vertical spreads. Replacing a short digital-style payoff (high-gamma binary) with a short call spread (bounded gamma) is the standard technique. Applied to vanillas near expiry, rolling into longer-dated options early is the equivalent trick.
- Gamma is both an asset (scalping profits) and a risk (pin squeezes). Long gamma makes money in volatile markets; short gamma near expiry is the trade most likely to blow up a naive P&L model.