This a work in progress, but it will eventually cover the Black-Scholes model, its assumptions, and how they lead to the volatility smile, with python code examples to illustrate the concepts.

The Foundations of the Volatility Smile

Why does the volatility smile exist? It emerges from the gap between the elegant assumptions of the Black-Scholes model and the complex realities of financial markets.

The Black-Scholes formula for pricing a European call option is:

$$ C(S, t) = S\Phi(d_1) - Ke^{-r(T - t)}\Phi(d_2) $$

where

$$ d_1 = \frac{\ln\frac{S}{K} + (r + \frac{\sigma^2}{2})(T - t)}{\sigma\sqrt{T - t}}, \quad d_2 = d_1 - \sigma\sqrt{T - t} $$

However, the assumption of constant volatility ($\sigma$) fails empirically. Observed market prices suggest volatility depends on strike price ($K$) and maturity ($T$), thus forming the "smile."

Black-Scholes Assumptions

Click on each one to see how it compares to market reality.

Market Reality

Click an assumption on the left to see the corresponding market reality.

Interactive Calculators

Go from theory to practice. Use these tools to calculate an option's price using the Black-Scholes formula or find the implied volatility from a market price.

Black-Scholes Pricer

Implied Volatility Solver

Smile Across the Markets

The volatility smile isn't one-size-fits-all. Explore the characteristic patterns for equities, foreign exchange, and fixed income.

Interactive Playground

Adjust market parameters to generate and visualize your own 2D volatility smiles and 3D surfaces.

Select at least one maturity and click a button to generate a visualization.