Volatility is not constant. Historical volatility measures past variation; implied volatility extracts the market's forward-looking estimate from option prices. GARCH models capture the clustering of calm and turbulent periods that real markets exhibit.
Historical vs implied volatility
Historical volatility is the standard deviation of log returns over a lookback window. Implied volatility is the sigma that makes Black-Scholes match the observed option price. They measure different things: what happened vs what the market expects.
If Black-Scholes were exactly right, implied volatility would be the same for all strikes. It is not. Deep out-of-the-money puts carry higher implied vol than ATM options โ that is the skew. When both wings are elevated, you get the smile. The pattern reveals fat tails and jump risk that the lognormal model misses.
Scheme
; Volatility smile: implied vol varies by moneyness (K/S); Quadratic approximation: sigma(m) = sigma_atm + a*(m-1)^2 + b*(m-1); where m = K/S
(define sigma-atm 0.20)
(define a 0.30) ; curvature (smile)
(define b -0.10) ; tilt (skew)
(define (implied-vol moneyness)
(let ((m (- moneyness 1)))
(+ sigma-atm (* a m m) (* b m))))
(display "K/S Implied Vol") (newline)
(display "--- -----------") (newline)
(for-each
(lambda (m)
(display m) (display " ")
(display (/ (round (* (implied-vol m) 10000)) 10000))
(newline))
(list 0.800.850.900.951.001.051.101.151.20))
(newline)
(display "Skew: OTM puts (low K/S) have higher implied vol")
Python
# Volatility smile: quadratic fit# sigma(m) = sigma_atm + a*(m-1)^2 + b*(m-1)
sigma_atm = 0.20
a = 0.30# curvature (smile)
b = -0.10# tilt (skew)def implied_vol(moneyness):
m = moneyness - 1return sigma_atm + a*m**2 + b*m
print("K/S Implied Vol")
print("--- -----------")
for m in [0.80, 0.85, 0.90, 0.95, 1.00, 1.05, 1.10, 1.15, 1.20]:
print(f"{m:.2f} {implied_vol(m):.4f}")
print("
Skew: OTM puts (low K/S) have higher implied vol")
Term structure of volatility
Implied volatility also varies by expiration. Short-dated options are more sensitive to current conditions; long-dated options revert toward the long-run average. The volatility surface maps implied vol across both strike and maturity โ a two-dimensional object that traders must model and hedge.