Skip to content
All library documents

Checking Dupire Local Volatility from an Implied Volatility Surface

Article Quant Q&A · Author: Nico Blanco

Summary

The document discusses how to validate an implementation of Dupire’s equation when deriving local volatility from an implied volatility surface. The question proposes starting with a flat implied-volatility surface, then testing a surface with term structure but no strike skew. It also reports negative local variances when using a bivariate cubic spline across moneyness and a linear interpolation across expiry.

The only answer recommends linear interpolation, noting that the second derivatives involved in Dupire’s calculation can make cubic splines problematic. The exchange does not provide a full derivation, a worked test case, or a validated interpolation procedure, and it does not resolve what local-volatility term structure should result from the proposed expiry slope. It therefore serves as a short implementation caution: interpolation that behaves smoothly in implied volatility can still produce unstable derivatives and invalid local variances.

Key ideas

  • Dupire’s equation derives local volatility from the shape of an implied-volatility surface.
  • A flat implied-volatility surface is proposed as a basic implementation check.
  • Cubic spline second derivatives can contribute to negative local variances.
  • The answer suggests linear interpolation but does not establish a complete interpolation method.

Tags

Full text
# Dupire (Local Vol with Imp Vol)


# Dupire (Local Vol with Imp Vol)












I am trying to implement a local volatility pricer using Monte Carlo and Dupire's equation in function of implied volatilities and I was told that first of all I have to check Dupire is well implemented so I was reccommended to prove it like this:

-The first step, to check Dupire's function, was to get the local volatility surface from a flat implied volatility surface. As it is flat and we know that local vol skew is double of the implied vol skew I expect also a flat local vol surface with the same value of the implied vol surface (since ATM value is the same for both), am I wrong?

-The second step would be to chek Dupire with an implied volatility surface with some slope in the expirys term but without skew (flat in the strikes). The question is: what I should expect from this? I understand that it should be a local volatility surface without skew in the moneyness term (as I said its skew is double of implied volatility and it is flat) but don't know about the expiry term.

-Finally I can't prove this case because I get negative local variances (complex local vols) so I can't plot the surface. I am using a bivariable cubic spline over moneyness and linear in expiry with python functions bisplrep and bisplev but I would like if anyone can tell me which interpolation scheme I should use.

This is the implied volatility surface I artificially created and which I am using to check step 2, but as I said I obtain complex local vols with that kind of interpolation.

## Answer by Animesh Saxena (score 0)

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

I would suggest to use linear interpolation. The second derivative might cause problems with cubic spline.

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.