Skip to content
All library documents

How Dupire Local Volatility Reproduces an Implied Volatility Surface

Article Quant Q&A · Author: emot

Summary

The document explains why a Dupire local volatility model can match market prices across strikes even though it uses one underlying price process. An arbitrage-free continuum of European call prices implies a risk-neutral terminal density through the curvature of call prices with respect to strike. Dupire’s formula uses the price surface to infer a state- and time-dependent diffusion that reproduces those densities across maturities.

Strike-dependent Black–Scholes implied volatility does not mean each option needs its own diffusion. It reflects departures of the risk-neutral distribution from the lognormal assumption; local volatility creates distributional skewness and kurtosis through its dependence on the asset state. The notes outline smoothing or interpolating market prices or implied volatilities before calculating local volatility, then pricing other claims with Monte Carlo or finite differences. The construction relies on suitable, arbitrage-free surface data and stable derivatives, so interpolation and extrapolation choices can affect results.

Key ideas

  • An arbitrage-free call price surface implies risk-neutral terminal densities through strike derivatives.
  • Dupire local volatility is a state- and time-dependent diffusion calibrated to reproduce those densities.
  • Strike variation in Black–Scholes implied volatility reflects non-lognormal features of the risk-neutral distribution.
  • A smoothed volatility or price surface is needed before applying the Dupire formula.
  • The calibrated dynamics can be used to price other claims with simulation or finite-difference methods.

Tags

Full text
# pricing using dupire local volatility model


# pricing using dupire local volatility model












I am reading about Dupire local volatility model and have a rough idea of the derivation. But I can't reconcile the local volatility surface to pricing using geometric brownian motion process. If I'm not mistaken the proces $dS=rSdt+\sigma(S;t) S dX$ given final condition $(S-K)^{+}$ will produce correct options values given some strike. So in other words each time I change the strike $K$ I should get the options values that are consistent with the market (or really close to them). Is it true? How does my model know that I changed my strike?

EDIT:

2016/11/19:

I'm still not sure if I understand that correctly.

If I have a matrix of option prices by strikes and maturities then I should fit some 3D function to this data. This can be done by some interpolation/extrapolation or just finding some 3rd degree polynomial. I did the latter.

The formula for instantenous volatility is $\sigma(E;T)=\sqrt{\frac{\frac{\partial V}{\partial T}+rE\frac{\partial V}{\partial E}}{\frac{1}{2}E^2\frac{\partial^2 V}{\partial^2 E}}}$

If I want to perform Monte Carlo simulation I should evaluate $\sigma(E;T)$ at each timestep. At each timestep I simulate current stock price $S_c$ and I pretend it is $E$ so I evaulate $\sigma(E;T)$ at $E=S_c; T=t$. Is this correct? If so, then $\frac{\partial V}{\partial T}$ is really a instantenous change of option price which has the strike $S_c$ and it comes from Matrix of option prices. Is this correct? So really any stochastic process $dS=rSdt+\sigma(S;t) S dX$ should have the same diffusion for all Strikes. If they have exactly the same diffusion, the probability density function will be the same and hence the realized volatility will be exactly the same for all options, but market data differentiate volatility between strike and option price. If I have realized volatility different than implied, there is no way I should get the same option prices as the market.

For example for option with strike K=100 realized vol should be 20% (this is implied from quoted option prices), and for option with strike K=110 realized vol should be 15%, but actually with the dupire formula it will be the same for both of them. Could you guys clarify?

Edit 2016/11/21: Ok guys, I think I understand it now. I performed MC simulation and got the correct numbers. In fact the pdf will be tlhe same but it will allow to replicate implied vol surface. Thanks for the explanation, it was helpful.

## Answer by LocalVolatility (score 4)

https://quant.stackexchange.com/a/31056

The idea behind this is as follows: Assume you would observe an arbitrage-free continuum of European plain vanilla call option prices $C_0(T, K)$ for all maturities and strikes. For any fixed maturity $T$, this implies a probability density function for the corresponding terminal asset prices via the well-known relationship

\begin{equation} f_{S_T}(K) = e^{r T} \frac{\partial^2 C}{\partial K^2}(T, K). \end{equation}

The local volatility $\sigma(K, T)$ is the unique deterministic diffusion function such that the model and market implied probability densities agree for all maturities.

The payoff of a European contingent claim only depends on the asset price at maturity. Consequently any two models whose implied probability densities agree for the maturity of interest agree on the prices of all European contingent claims. So by construction, the local volatility model matches the market prices of all European contingent claims without the model dynamics depending on what strike or payoff function you are interested in.

Edit Nov. 21 2016:

Here is how I understand your first edit: You write that since there is only one price process, there is one fixed implied standard deviation per maturity. You then argue that consequently, we can't replicate the prices of all European options since the market exhibits a strike-dependent implied volatility.

While your statement is correct, your conclusion is not. The (Black/Scholes) implied volatility does not only reflect the standard deviation of returns but also all deviations from a normal distribution. I.e. a non-constant implied volatility across strikes indicates that the risk-neutral distribution is not log-normal. The local volatility model produces a state-dependent diffusion coefficient that creates exactly the right amount of skewness and kurtosis in the terminal distribution to match all observed option prices.

## Answer by user16651 (score 3)

https://quant.stackexchange.com/a/31053

- Assemble the data, consisting of a matrix of quoted option prices $\{C(T_i,K_j^i)\}_{i=1}^{N}$ where $j=1,2,...,M_i$ together with the yield curve to determine $r$ .

- Interpolate and extrapolate these prices (or, more likely, the corresponding Black-Scholes implied volatilities) to produce a smooth volatility surface $C$.

- Calculate $\widehat{\sigma}(T, F)$ from Dupier formula and compute the corresponding $\sigma(T,S).$

- The price model is determined by $$dS_t=\mu(t)S_tdt+\sigma(t,S_t)S_tdW_t.$$

- Now we can calculate the prices of exotic options by finite-difference methods or Monte Carlo.

Note $$\mu(t)=r_t-q_t$$ and $$F_t=S_t\exp\left(\int_{t}^{T}\mu(s)ds\right)$$

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.