Skip to content
All library documents

Recovering Risk-Neutral Densities from Option Prices

Article Quant Q&A · Author: user38671

Summary

The document explains how to infer a risk-neutral terminal-price density from call prices. By the Breeden–Litzenberger result, the density at a strike is the second strike derivative of the call price, adjusted for discounting. Since market quotes are available only at discrete strikes, a continuous call-price curve must first be estimated to calculate that derivative.

One suggested workflow fits a volatility model such as SVI to the observed implied volatilities, then uses the Andreasen–Huge method to produce call prices across strikes at the chosen maturity. The resulting density can be integrated to obtain moments, including variance. Direct interpolation of sparse quotes is mentioned as possible but may yield a poor density. The note gives no implementation details or validation procedure; in practice, the fitted curve and its derivatives need to be checked for stability and consistency with option-price constraints.

Key ideas

  • The second strike derivative of call prices, adjusted for discounting, yields the risk-neutral density.
  • Discrete option quotes require a fitted or interpolated call-price curve before differentiation.
  • A volatility surface model and a method for generating prices across strikes can support density recovery.
  • Moments can be calculated once the density is available across the relevant price range.
  • Direct interpolation of sparse data may produce unreliable results.

Tags

Full text
# Option implied distributions


# Option implied distributions












I am having a bit of trouble understanding how to obtain the option implied distributions.

I have strike levels, deltas and implied vols for a call option that expires in 6 months. Roughly 40 data points for each of the three parameters.

I would like to interpolate this data to a cubic spline, obtain a p.d.f. and then obtain the 'standard deviation' of the density function. What does a p.d.f. graph contain? Implied vols on the y-axis and deltas on the x-axis? Is that something possible? I'm seeking to perform it on Python. Any ideas would be highly appreciated!

Thanks so much!

## Answer by Kupoc (score 1)

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

The theorem you want to use is Breeden Litzenberg which says that the density $\phi_{T}$ of your underlying is given by $\phi_{T}(K) = \frac{1}{B(0,T)}\frac{\partial^{2} C}{\partial K^{2}}$ where C is your call price with maturity T and strike K ( you can obtain rthe price with BS formula as implied volatility is given )

From this theorem, deriving your implied density would involve a continum of calls but you have only some strikes which are quoted on the market. What you do in this case is that you fit the implied volatility through some model like the Gatheral SVI and then interpolate though the Andreasen Huge equation to get all the call prices for all the strikes at a specific maturity T.

If you dont want to perform this two steps , you can try to directly interpolate but that's not likely to give you a good result.

Having the density for all strikes at a fixed maturity you can calculate any moments you want.

( I dont see how the delta would be useful here tho :p )

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.