AI // ENCYCLOPEDIA / QUANT / 03 / BLACK–SCHOLES INDEX NEXT: INTEREST-RATE MODELS →
QUANTITATIVE FINANCE · CHAPTER 03 / 06

Black–Scholes & the Greeks

Black, Scholes and Merton established a single no-arbitrage argument with one striking consequence. A stock's volatility, not its expected return, fixes the exact price of an option; the expected return drops out entirely. The price's derivatives, the Greeks, then measure how the option responds to market moves and what to buy or sell to neutralize that exposure.

LEVELADVANCED READING TIME≈ 26 MIN BUILDS ONQUANT 01–02 INSTRUMENTSPRICER · GREEKS · PAYOFF
3.1

No-arbitrage & risk-neutral pricing

The deepest idea in option pricing is also the simplest to state: you can manufacture an option out of the stock and cash. Hold a continuously adjusted position of \(\Delta\) shares plus a bond, and you can build a portfolio whose value tracks the option's value instant by instant. If the replicating portfolio costs less than the option, sell the option and buy the portfolio for a riskless profit; if it costs more, do the reverse. The only price that admits no such free lunch is the cost of replication. That is the option's fair value — full stop.

The magic of the hedge is that it is locally riskless. Over an instant, the option and \(\Delta\) shares move by exactly offsetting amounts, so the combined portfolio has no exposure to the stock's random moves. A riskless portfolio can only earn the riskless rate \(r\) — otherwise arbitrage. Setting "what the hedged portfolio actually earns" equal to "what a riskless portfolio must earn" produces the Black–Scholes PDE (§3.3) with no reference whatsoever to the stock's expected return \(\mu\).

KEY

Why \(\mu\) disappears. Two traders who disagree wildly about whether a stock will rise or fall must still agree on the option's price — because both can replicate it with the same hedge at the same cost. Beliefs about direction are irrelevant; only the size of the moves (volatility) matters. This is the single most counter-intuitive fact in the chapter.

The same conclusion has a probabilistic face. There exists a risk-neutral measure \(\mathbb{Q}\) — a re-weighting of the real probabilities — under which every tradable asset drifts at exactly the riskless rate and the option's price is just its discounted expected payoff:

EQ Q3.1 — RISK-NEUTRAL VALUATION $$ V_0 \;=\; e^{-rT}\, \mathbb{E}^{\mathbb{Q}}\!\big[\, \text{payoff}(S_T) \,\big], \qquad \text{with } \; \mathrm{d}S_t = r\,S_t\,\mathrm{d}t + \sigma\,S_t\,\mathrm{d}W_t^{\mathbb{Q}} $$
Under \(\mathbb{Q}\) the stock drifts at \(r\), not its real-world drift \(\mu\). \(V_0\) is the value today; \(T\) the time to expiry; \(\sigma\) the volatility. Pricing reduces to taking an expectation and discounting it. For a European call, \(\text{payoff} = \max(S_T - K, 0)\); the expectation under lognormal \(S_T\) has a closed form — that is the Black–Scholes formula. For exotic payoffs with no closed form, you estimate the same expectation by Monte-Carlo (the second runnable cell below).

This recasting — price = discounted risk-neutral expectation — is the load-bearing beam of the entire field. Binomial trees (Quant 02) compute it by backward induction; Black–Scholes computes it in closed form; interest-rate models (Quant 04) apply it under a cleverly chosen numéraire. Everything downstream is a different way to evaluate EQ Q3.1.

3.2

The model & its assumptions

Black–Scholes assumes the stock follows geometric Brownian motion (GBM): proportional returns are normal, so the log-price is a Brownian motion with drift.

EQ Q3.2 — GEOMETRIC BROWNIAN MOTION $$ \mathrm{d}S_t = \mu\,S_t\,\mathrm{d}t + \sigma\,S_t\,\mathrm{d}W_t \quad\Longrightarrow\quad S_T = S_0 \exp\!\Big[\big(\mu - \tfrac{1}{2}\sigma^2\big)T + \sigma\sqrt{T}\,Z\Big],\;\; Z \sim \mathcal{N}(0,1) $$
The integrated form follows from Itô's lemma applied to \(\log S\); the \(-\tfrac{1}{2}\sigma^2\) is the Itô correction (volatility drag). Because \(S_T\) is an exponential of a normal, prices are lognormal — never negative, with a right-skewed distribution. The same \(\sigma\) appears whether you take the real-world drift \(\mu\) or the risk-neutral drift \(r\); only the drift changes between measures, never the diffusion.

Stacked on GBM are four idealizations. Each is wrong in a knowable way — and §3.5–§3.6 are essentially the catalogue of those errors:

AssumptionWhat it saysHow reality differs
Constant volatilityσ fixed for all S, tVol clusters, spikes in crashes, and varies by strike (the smile, §3.5)
Constant rater fixed and knownRates move; matters most for long-dated options (Quant 04)
Continuous pathsno jumps in SGaps and crashes are jumps; fat tails the lognormal can't produce
Frictionless marketno costs, infinite liquidity, continuous hedgingSpreads, fees, and discrete rebalancing make the hedge imperfect

A working quant treats Black–Scholes less as a literal model of the world than as a coordinate system: a universally agreed map from one number everyone can argue about — implied volatility — to a price. Its assumptions being false is not a bug to be hidden but the very thing the volatility surface measures.

3.3

The Black–Scholes formula

The hedging argument of §3.1, made continuous, says any derivative value \(V(S,t)\) must satisfy a parabolic PDE in which — note — \(\mu\) is absent:

EQ Q3.3 — THE BLACK–SCHOLES PDE $$ \frac{\partial V}{\partial t} + \frac{1}{2}\sigma^2 S^2 \frac{\partial^2 V}{\partial S^2} + rS\frac{\partial V}{\partial S} - rV \;=\; 0 $$
A backward heat equation: it propagates the known terminal payoff at \(t = T\) back to today. The four terms are time decay, convexity (gamma), drift-at-the-riskless-rate, and discounting. Solve it with the call payoff boundary condition \(V(S,T) = \max(S - K, 0)\) and you get a closed form — no simulation required.

For a European call \(C\) and put \(P\) on a non-dividend-paying stock, with spot \(S\), strike \(K\), rate \(r\), volatility \(\sigma\), and time to expiry \(T\):

EQ Q3.4 — THE CLOSED-FORM PRICE $$ C = S\,N(d_1) - K e^{-rT} N(d_2), \qquad P = K e^{-rT} N(-d_2) - S\,N(-d_1) $$ $$ d_1 = \frac{\ln(S/K) + \big(r + \tfrac{1}{2}\sigma^2\big)T}{\sigma\sqrt{T}}, \qquad d_2 = d_1 - \sigma\sqrt{T} $$
\(N(\cdot)\) is the standard normal CDF. Read the call as two pieces: \(S\,N(d_1)\) is the expected value of the shares you receive if you exercise, \(K e^{-rT} N(d_2)\) is the discounted cost of paying the strike — and \(N(d_2)\) is precisely the risk-neutral probability the option finishes in the money. \(N(d_1)\) is the call's delta (§3.4): the formula already contains its own hedge ratio.
PUT–CALL PARITY

\(C - P = S - K e^{-rT}\). A model-free identity from no-arbitrage alone: a call minus a put equals a forward on the stock. Subtract EQ Q3.4's two lines and the \(N(d)\) terms collapse via \(N(x) + N(-x) = 1\) to exactly \(S - Ke^{-rT}\). If quoted prices ever violate it, that is a pure arbitrage — and the first sanity check any desk runs.

The normal CDF \(N(x)\) has no elementary closed form, so implementations evaluate it through the error function, \(N(x) = \tfrac{1}{2}\big[1 + \operatorname{erf}(x/\sqrt{2})\big]\). The instruments and Python cells below use a rational approximation to \(\operatorname{erf}\) accurate to ~1e-7 — more than enough for pricing.

INSTRUMENT Q3.1 — OPTION PRICER + GREEKS DASHBOARDEQ Q3.4 · LIVE · erf APPROX
PRICE
MONEYNESS
d₁ · d₂
DELTA Δ
GAMMA Γ
VEGA (per 1%)
THETA (per day)
RHO (per 1%)
Drag σ and watch price and vega rise together — volatility is what you are really buying. Slide S across K to see delta sweep from 0 toward 1 (a call) and the moneyness tag flip from OTM to ITM. Theta is shown per calendar day and turns red when negative — the daily rent a long option holder pays. Vega and rho are quoted per one percentage point move, as desks quote them.
PYTHON · RUNNABLE IN-BROWSER
# Black-Scholes price + all five Greeks, scipy-free (erf via math.erf)
import numpy as np, math

def N(x):  # standard normal CDF through the error function
    return 0.5 * (1.0 + math.erf(x / math.sqrt(2.0)))
def n(x):  # standard normal PDF
    return math.exp(-0.5 * x * x) / math.sqrt(2.0 * math.pi)

def bs(S, K, r, sig, T, call=True):
    d1 = (math.log(S / K) + (r + 0.5 * sig * sig) * T) / (sig * math.sqrt(T))
    d2 = d1 - sig * math.sqrt(T)
    disc = math.exp(-r * T)
    if call:
        price = S * N(d1) - K * disc * N(d2)
        delta = N(d1)
        theta = (-S * n(d1) * sig / (2 * math.sqrt(T)) - r * K * disc * N(d2))
        rho   =  K * T * disc * N(d2)
    else:
        price = K * disc * N(-d2) - S * N(-d1)
        delta = N(d1) - 1.0
        theta = (-S * n(d1) * sig / (2 * math.sqrt(T)) + r * K * disc * N(-d2))
        rho   = -K * T * disc * N(-d2)
    gamma = n(d1) / (S * sig * math.sqrt(T))
    vega  = S * n(d1) * math.sqrt(T)
    return price, delta, gamma, vega, theta, rho

S, K, r, sig, T = 100, 100, 0.05, 0.20, 1.0
for typ, c in (("CALL", True), ("PUT", False)):
    p, dl, ga, ve, th, rh = bs(S, K, r, sig, T, c)
    print(f"{typ:4}  price {p:7.4f}  delta {dl:+.4f}  gamma {ga:.4f} "
          f"vega/1% {ve/100:6.4f}  theta/day {th/365:+.4f}  rho/1% {rh/100:+.4f}")
print("\nput-call parity check  C - P  vs  S - K*e^(-rT):")
cp = bs(S,K,r,sig,T,True)[0] - bs(S,K,r,sig,T,False)[0]
print(f"  {cp:.6f}  vs  {S - K*math.exp(-r*T):.6f}")
edits are live — break it on purpose
3.4

The Greeks: a risk dashboard

The price is a single number; the Greeks are its partial derivatives, and they are where the money is managed. Each answers "if this moves by one unit, how much does my option move?" A desk does not predict the market — it measures its exposures with the Greeks and trades to flatten the ones it does not want.

EQ Q3.5 — THE FIVE GREEKS (CALL) $$ \Delta = \frac{\partial C}{\partial S} = N(d_1), \qquad \Gamma = \frac{\partial^2 C}{\partial S^2} = \frac{N'(d_1)}{S\sigma\sqrt{T}}, \qquad \mathcal{V} = \frac{\partial C}{\partial \sigma} = S\,N'(d_1)\sqrt{T} $$ $$ \Theta = \frac{\partial C}{\partial t} = -\frac{S\,N'(d_1)\sigma}{2\sqrt{T}} - rKe^{-rT}N(d_2), \qquad \rho = \frac{\partial C}{\partial r} = KTe^{-rT}N(d_2) $$
\(N'(x) = \tfrac{1}{\sqrt{2\pi}}e^{-x^2/2}\) is the normal density. Gamma and vega are identical for calls and puts (parity has no \(\sigma\) or curvature). For a put, \(\Delta = N(d_1) - 1 \in [-1, 0]\), \(\rho = -KTe^{-rT}N(-d_2) < 0\), and theta swaps its second term to \(+rKe^{-rT}N(-d_2)\). Desks quote vega and rho per 1% point (divide by 100) and theta per day (divide by 365).
GreekSensitivity toIntuitionHow desks hedge it
Delta Δspot SEquivalent share position; ≈ probability of finishing ITMBuy/sell \(\Delta\) shares so the book is delta-neutral
Gamma Γspot (2nd order)How fast delta itself moves; the curvature, peaks at-the-moneyHard to hedge with stock; trade other options to flatten Γ
Vega 𝒱volatility σP&L if implied vol re-rates; largest for ATM, long-datedBuy/sell options of similar maturity to net vega to zero
Theta ΘtimeTime decay; the rent a long option pays each dayUsually accepted, not hedged — it pays for gamma/vega
Rho ρinterest rate rRate sensitivity; small for short-dated, real for LEAPSOffset with rate instruments or longer-dated options

The central trade-off: gamma vs theta. A long-option book is long gamma (it profits from large moves in either direction — buy low, sell high as you re-hedge) but short theta (it bleeds value as time passes). The two are linked through the PDE: the daily theta you pay is, in expectation, exactly the gamma P&L you collect re-hedging at the realized volatility. A delta-hedged option is a bet that realized vol exceeds the implied vol you paid.

INSTRUMENT Q3.2 — GREEKS PROFILE EXPLORERCALL · GREEK vs SPOT S · EQ Q3.5
The dashed line marks the strike, K = 100. Switch to gamma and lower T toward expiry: the curve spikes into a tall thin peak at the money — short-dated ATM options are explosively convex, the nightmare of a hedging desk. Vega instead grows with T (more uncertainty to be exposed to). Delta sweeps a smooth S-curve from 0 to 1; raising σ smears every profile wider.
3.5

Implied volatility & the smile

Five of the six Black–Scholes inputs are observable: spot, strike, rate, expiry — and the option's market price itself. The sixth, \(\sigma\), is not. So traders run the formula backwards: given a quoted price, find the \(\sigma\) that reproduces it. That number is the implied volatility.

EQ Q3.6 — IMPLIED VOLATILITY $$ \sigma_{\text{imp}} : \quad C_{\text{BS}}\big(S, K, r, T;\, \sigma_{\text{imp}}\big) \;=\; C_{\text{market}} $$
Because price is monotonic and smooth in \(\sigma\) (vega \(> 0\) always), the inverse exists and is unique. There is no closed form, so you solve numerically — bisection is bulletproof, Newton's method (using vega as the derivative) is fast. Implied vol is the market's price quoted in the language of the model. A trader does not say "this call costs $4.12"; they say "it's trading at 22 vol."

Here is where the model indicts itself. If Black–Scholes were literally true, every option on the same underlying would imply the same \(\sigma\) — volatility is a property of the stock, not the strike. It does not. Plot implied vol against strike and you get a curve, not a flat line: the volatility smile (or, in equity index markets since 1987, a downward skew — deep out-of-the-money puts trade at much higher implied vol than calls).

THE SMILE'S MESSAGE

The smile is the market disagreeing with the lognormal. By bidding up out-of-the-money puts, traders are paying for crash protection — pricing in fatter left tails and jumps than GBM allows. The shape is the error of the constant-vol, no-jump assumption, made tradeable. Quants do not discard Black–Scholes over this; they keep the formula as a quoting device and let \(\sigma(K, T)\) — the volatility surface — carry all the structure the model omits.

PYTHON · RUNNABLE IN-BROWSER
# Monte-Carlo a European call by simulating GBM, compare to closed-form BS
import numpy as np, math
rng = np.random.default_rng(0)

def N(x):  # vectorized normal CDF via erf
    return 0.5 * (1.0 + np.vectorize(math.erf)(x / math.sqrt(2.0)))
def bs_call(S, K, r, sig, T):
    d1 = (math.log(S/K) + (r + 0.5*sig*sig)*T) / (sig*math.sqrt(T))
    d2 = d1 - sig*math.sqrt(T)
    return S*float(N(d1)) - K*math.exp(-r*T)*float(N(d2))

S, K, r, sig, T = 100.0, 105.0, 0.05, 0.20, 1.0
M = 200_000
Z  = rng.standard_normal(M)
ST = S * np.exp((r - 0.5*sig*sig)*T + sig*math.sqrt(T)*Z)   # risk-neutral GBM
payoff = np.maximum(ST - K, 0.0)
mc    = math.exp(-r*T) * payoff.mean()
se    = math.exp(-r*T) * payoff.std() / math.sqrt(M)        # standard error
exact = bs_call(S, K, r, sig, T)

print(f"Monte-Carlo call : {mc:.4f}  (+/- {1.96*se:.4f}, 95% CI)")
print(f"closed-form  call: {exact:.4f}")
print(f"gap              : {mc - exact:+.4f}   ({abs(mc-exact)/exact*100:.2f}% )")
plot_xy(sorted(ST), np.linspace(0, 1, M))   # empirical lognormal CDF of S_T
edits are live — break it on purpose
INSTRUMENT Q3.3 — PAYOFF & BREAK-EVEN DIAGRAMEXPIRY PAYOFF vs CURVED VALUE TODAY
PREMIUM PAID
BREAK-EVEN SPOT
MAX LOSS
The mint line is the kinked payoff at expiry, net of the premium you paid; the blue curve is the option's smooth value today (the Black–Scholes price across spot). They meet only at expiry, when time value vanishes. The break-even marker is the spot at which the expiry payoff crosses zero — strike plus premium for a call, strike minus premium for a put. Raise σ and the blue curve lifts everywhere: more volatility is worth more, at every spot.
3.6

Where it breaks & what comes next

Black–Scholes is the most successful wrong model in finance. Its failures are not subtle and they are not academic — they have repeatedly arrived as market-wide losses:

  • Jumps. GBM has continuous paths; real prices gap. On 19 October 1987 the S&P fell ~20% in a day — a 20-sigma event under lognormal, i.e. effectively impossible, yet it happened. The permanent equity-index skew dates from that morning: the market has priced crash-jumps into puts ever since. Merton's jump-diffusion adds a Poisson jump term to restore the fat left tail.
  • Stochastic volatility. Vol is not constant — it clusters and spikes. The Heston model (1993) makes variance itself a mean-reverting random process correlated with the stock, generating a smile endogenously and admitting a semi-closed form via characteristic functions. SABR is the market standard for interest-rate smiles.
  • Hedging is not free or continuous. The replication argument assumes costless, continuous rebalancing. In practice transaction costs, discrete hedging, and liquidity gaps mean the hedge leaks — which is precisely how a delta-hedged book's P&L becomes a bet on realized-vs-implied volatility rather than a riskless lock.
  • Correlation and liquidity regimes. 2008 taught that diversifying assumptions fail together: correlations snap to one and liquidity evaporates exactly when hedges are needed. No single-name vol model captures this; it is a systemic, cross-asset failure.
EQ Q3.7 — HESTON: STOCHASTIC VARIANCE $$ \mathrm{d}S_t = r S_t\,\mathrm{d}t + \sqrt{v_t}\,S_t\,\mathrm{d}W_t^{S}, \qquad \mathrm{d}v_t = \kappa(\theta - v_t)\,\mathrm{d}t + \xi\sqrt{v_t}\,\mathrm{d}W_t^{v}, \qquad \mathrm{d}W^{S}\mathrm{d}W^{v} = \rho\,\mathrm{d}t $$
Variance \(v_t\) mean-reverts to long-run \(\theta\) at speed \(\kappa\) with vol-of-vol \(\xi\); the correlation \(\rho < 0\) (falling stock, rising vol) produces the equity skew. Black–Scholes is the degenerate special case \(\xi = 0\), \(v_t \equiv \sigma^2\) — the model you reach for first, and the baseline every richer model is measured against.
NEXT

We held the rate \(r\) constant and known — and for short-dated equity options that is harmless. It is not harmless for bonds, swaps, and anything long-dated, where the thing being modelled is the rate. Quant 04 turns volatility loose on the yield curve itself: short-rate models (Vasicek, Hull–White, CIR), the change of numéraire that makes them tractable, and why a whole second universe of "Greeks" lives on the interest-rate desk.

3.7

References

  1. Black, F. & Scholes, M. (1973). The Pricing of Options and Corporate Liabilities. Journal of Political Economy 81(3). — the original no-arbitrage derivation and the closed-form formula.
  2. Merton, R. C. (1973). Theory of Rational Option Pricing. Bell Journal of Economics and Management Science 4(1). — the rigorous continuous-time treatment; later extended with jump-diffusion.
  3. Heston, S. L. (1993). A Closed-Form Solution for Options with Stochastic Volatility. Review of Financial Studies 6(2). — stochastic-variance model that generates the smile endogenously (EQ Q3.7).
  4. Hull, J. C. Options, Futures, and Other Derivatives (11th ed., 2021). Pearson. — the standard practitioner reference for the PDE, the Greeks, and implied-vol surfaces.
  5. Rubinstein, M. (1994). Implied Binomial Trees. Journal of Finance 49(3). — an early reconstruction of the post-1987 volatility smile from market prices.