Skip to content
All library documents

Extracting Risk-Neutral Densities from Implied Volatility Surfaces

Article Quant Q&A · Author: Olórin

Summary

The document considers how to recover the risk-neutral density of an underlying at a given expiry from call option implied volatilities across strikes. It describes converting each implied volatility into a Black–Scholes call price, then applying the Breeden–Litzenberger relation: the second strike derivative of call prices gives the discounted density. This approach requires derivatives of the interpolated volatility smile and numerical integration over a finite range.

The question highlights the main practical difficulty: strike bounds and volatility extrapolation can materially affect estimated tails and integrals against the density. The response gives no universal extraction method; instead, it says the appropriate interpolation and extrapolation depend on the intended calculation. Tail-sensitive outputs may need calibration against other instruments sensitive to tails, such as variance swaps where available. For near-the-money cross-currency options, tail assumptions may matter less. These are qualitative examples, not a comparison of methods or empirical validation.

Key ideas

  • The second strike derivative of call prices recovers the discounted risk-neutral density.
  • Recovering density from implied volatility requires differentiating call prices built from the volatility smile.
  • Finite integration bounds and smile extrapolation can strongly affect tail estimates.
  • Choose interpolation and extrapolation methods according to the sensitivity of the target calculation.
  • Tail-sensitive calculations can be cross-checked against instruments such as variance swaps when market data exists.

Tags

Full text
# "Extract" the density of the underlying, given the implied volatility "surface"


# "Extract" the density of the underlying, given the implied volatility "surface"












Suppose given implied volatility quotations $\widehat{\sigma}(T_i,K_j)$ of call options on an underlying $S$ for various expiries $T_i$'s and strikes $K_j$'s. I am interested in the following problem : what is the "optimal" method to calculate numerically the familly of densities $(\varphi_{T})_T$ where $\varphi_{T}$ is the density of $S_T$, knowing that I will mainly be interested in computing numerically sums of the form $\int_{0}^{+\infty} f(x)\varphi_T(x)dx$, and that I will, for this calculation, have to restrict myself to compact intervals and calculate sums of the form $\int_{K_1}^{K_2} f(x)\varphi_T(x)dx$.

I already have a tool calculating (by various interpolations), for each expiry $T_i$ a function $K\mapsto\widehat{\sigma}(T_i ,K)$ for all positive $K$. Assuming for now that I fix an expiry $T$ equal to one of the $T_i$'s. I could do this : first write the market call price as a risk-neutral expectation (assuming for now constant spot rate) $$\textrm{Call}_0^{\textrm{Mkt.}} (T,K) = e^{-rT}\mathbf{E}^{\mathbf{P}}[(S_T-K)_{+}]$$ and differentiate this twice with respect to $K$ to get $$\frac{\partial^2}{\partial K^2}\textrm{Call}_0^{\textrm{Mkt.}} (T,K) = e^{-rT} \varphi_T (K).$$ (This the Breeden-Litzenberger formula.) Now write the market call price in function of the implied volatility and the Black-Scholes call price as $$\textrm{Call}^{\textrm{Mkt.}} (T,K) = \textrm{BS}^{\textrm{Mkt.}} (T,K,\widehat{\sigma}(T_i ,K))$$ and differentiate twice: you will obtain an expression that is combination of Black-Scholes greeks evaluated at first and second derivatives (with respect to $K$) of $K\mapsto\widehat{\sigma}(T_i ,K)$. We could use this to calculate $\varphi_T (K)$ for various $K'$, and then use these values to numerically calculate $\int_{K_1}^{K_2} f(x)\varphi_T(x)dx$, after having "somehow" selected the correct bounds $K_1$ and $K_2$.

This method does not really convince me, especially as it leaves "out" the problem of choosing $K_1$ and $K_2$, which is highly 1) non-trivial and 2) speculative as it relies on interpolations and wings extrapolations used to get $K\mapsto\widehat{\sigma}(T_i ,K)$, and can lead to severe underestimation of $S_T$'s distribution's tail etc.

I am really not sure that this method is even the one practicioners are using when they need to extract densities from implied volatilities (and to integrate functions against these densities.) I guess that parametric methods are more suited for this, which leads to my question : what kind of other methods are available (parametric or not) and which one is the "standard" one, that is, used by the practioners ?

Precision : I am using this in the following context : I have for instance MXNUSD and CADUSD implied volatilities quotations for let's say same expiries, then I use interpolation to produce smile functions for each expiry and each currency pair, from which I extract two densities, and using a copula function, I get a density for cross-currency pair MXNCAD, that I use to price calls on MXNCAD and then to produce an MXNCAD implied volatility surface. (it's the classic problem consisting in getting prices of options on an illiquid currency pair knowing options markets of two related "marginal" liquid currency pairs.)

## Answer by Ezy (score 1)

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

I don't think there's a general answer to your question. Now the point is more what you need/expect to calculate out of your interpolated/extrapolated densities and how sensitive those in turn are to the interpolation/extrapolation assumptions.

For instance if you will be sensitive to tails then you want to make sure that K1, K2 and your extrapolation scheme calibrate well to other type of product which are also sensitive to them, like variance swaps eg if there's a market for those (i am not familiar with FX market but say in equities you can have market data providers for those like TOTEM or Markit etc..)

On the other hand if you want to calculate ATM options prices for EURGBP given EURUSD and GPBUSD then chances are that you don't care too much about the extrapolation scheme.

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.