Black–Scholes: replication, PDE & pricing
One contract, three equivalent valuation views, and a hedge that exposes every assumption.
01Derive the Black–Scholes PDE from a self-financing delta hedge.
02Connect the PDE to risk-neutral expectation through Feynman–Kac.
03Use the closed form with explicit carry and units.
04Interpret delta hedging error when model assumptions or trading frequency fail.
Read the contract before deriving its price.
Black–Scholes is not merely a formula. It is an equivalence between a replicating strategy, a parabolic PDE, and a discounted risk-neutral expectation under a precise market model.
The physical drift disappears because replication, not forecasting, pins the price.
Boundary and terminal conditions are part of the pricing problem.
The closed form is a benchmark and quote coordinate even when smile dynamics require richer models.
Fix cash flows, conventions, and hedge instruments.
Vanilla option quotes, implied volatility, desk Greeks, hedging diagnostics and model validation all use Black–Scholes as a common coordinate system.
European calls and puts
equity and FX vanillas
option hedges
implied-volatility quotes
S and K are currency amounts per underlying unit; r and q are continuous annual rates; σ is decimal annualized volatility; T is year fraction; prices are present values.
From dynamics and replication to valuation.
Black–Scholes PDE
No-arbitrage fixes the value once dynamics, carry, terminal payoff and boundary behavior are specified.
Open in AnalyticsFull derivation
From self-financing replication to the pricing PDE
Apply Itô to the option, cancel the Brownian exposure with stock, and impose that the locally riskless portfolio earns the funding rate.
- 01
State risk-neutral-compatible spot dynamics
Use continuous dividend yield q and volatility σ; the replication result does not require the physical drift.
- 02
Apply Itô to the option
The option inherits drift, delta exposure and the gamma correction from the same Brownian driver.
- 03
Build the delta-hedged portfolio
Hold one option and short Δ=V_S stock units; include dividend cash flow on the stock position.
- 04
Cancel diffusion risk
Substitution removes both dW and the unknown physical drift μ.
- 05
Impose no-arbitrage funding
A locally riskless, self-financing portfolio must earn r; rearranging yields the PDE.
Feynman–Kac maps this terminal-value PDE to V_t=E^Q[e^{-r(T-t)}Φ(S_T)|F_t]; the closed form is the European call/put solution for a lognormal terminal law.
Inputs
V(t,S): derivative valueτ=T−t: time to expiryN(·), n(·): standard normal CDF and densityΔ=∂V/∂S: spot units held in the hedge
Assumptions and limits
- Constant volatility and lognormal tails contradict observed smiles.
- Continuous frictionless hedging omits gaps, liquidity and transaction costs.
- European exercise excludes early exercise and path dependence.
European call
Discounted spot and strike terms are weighted by the model's exercise probabilities in different numeraires.
Open in AnalyticsPut–call parity
A static replication identity that must hold independently of volatility in the model domain.
Open in AnalyticsCall delta
The instantaneous stock units in the continuous-time replication; desk convention and premium adjustment may differ by asset class.
Open in AnalyticsReconcile PDE, expectation, and closed form.
Use closed form for European vanillas, implied-volatility inversion and analytical Greeks; use the PDE/expectation equivalence as a benchmark for numerical engines.
Black–Scholes has one volatility per quote. A surface is a market coordinate assembled from many inversions, not one globally calibrated constant-σ model.
06PYTHON IMPLEMENTATIONOpen the implementation and checks.
- One validated Black–Scholes kernel shared by price, IV and Greeks
- Analytical parity and limit checks
- Desk-unit conversion outside the raw kernel
Call, put and parity reference
Compute European prices from one state and verify put–call parity to numerical tolerance.
from __future__ import annotations import mathfrom statistics import NormalDist N = NormalDist() def black_scholes(spot: float, strike: float, time: float, rate: float, dividend: float, vol: float) -> tuple[float, float]: if min(spot, strike, time, vol) <= 0: raise ValueError("positive spot, strike, time and vol required") root_t = math.sqrt(time) d1 = (math.log(spot/strike)+(rate-dividend+0.5*vol*vol)*time)/(vol*root_t) d2 = d1-vol*root_t call = spot*math.exp(-dividend*time)*N.cdf(d1)-strike*math.exp(-rate*time)*N.cdf(d2) put = strike*math.exp(-rate*time)*N.cdf(-d2)-spot*math.exp(-dividend*time)*N.cdf(-d1) return call, put s, k, t, r, q, vol = 100.0, 105.0, 1.25, 0.04, 0.015, 0.22call, put = black_scholes(s, k, t, r, q, vol)parity = s*math.exp(-q*t)-k*math.exp(-r*t)assert abs((call-put)-parity) < 1e-12assert 0.0 <= call <= s*math.exp(-q*t)print(f"call={call:.6f} put={put:.6f} parity_error={(call-put-parity):.2e}")Move the state. Challenge the equation.
Black–Scholes: replication, PDE & pricing
Move spot, volatility and horizon. Prices, desk-unit Greeks and hedge residuals share one pricing state.
Synthetic cumulative hedge P&L after transaction costs.
- cumulative hedge P&L
Use Left/Right or Up/Down arrows to inspect values; Home and End jump to the bounds.
Translate the derivation into a hedge.
“Black–Scholes is the common language; the hedge residual tells you where the language stopped describing the market.”
spot/forward and curves
strike, expiry and exercise style
option premium and volatility convention
hedge frequency and costs
Invert each liquid premium to implied volatility with consistent curves, timestamps, bid/offer and solver diagnostics.
RISKdelta/gamma/vega
gap and discrete-hedging error
smile dynamics
- normalize contract and carry
- price and invert volatility
- compute desk-unit Greeks
- reconcile hedge P&L
Production failure modes
- mixed day counts or dividend inputs
- stale volatility quotes
- uncontrolled near-expiry Greeks
09MACRO CONNECTIONOpen the transmission channel.
From policy and earnings to the option coordinate
Rates and dividends change forward carry; uncertainty and protection demand change quoted implied volatility. The formula maps those inputs to price but does not explain their economic cause.
transmitsmove forward carry
transmitsmoves option premium
transmitsnormalizes the quote
outputtranslate price into hedge
10COMMON PITFALLSOpen the failure checklist.
Presenting the closed form without the replication assumptions.
Using historical volatility as an implied quote.
Ignoring dividends or inconsistent discount curves.
Treating continuous delta hedging as a realizable guarantee.
11SOURCES / FURTHER READINGOpen sources and continue the track.
Ch. 3 §§3.1–3.3, printed pp. 51–78 (PDF pp. 70–96)
The formulation was checked against the cited sections; prose, examples and code are original to the Academy.
- Source
- Mathematical Modeling and Computation in Finance
- Author
- Cornelis W. Oosterlee and Lech A. Grzelak
- Ref
- First edition (2020)