Skip to content
All library documents

Deriving Local Volatility from an Implied Volatility Surface with Dupire

Article Quant Q&A · Author: APMATH24

Summary

The document presents a replication problem involving the conversion of an implied volatility surface into a local volatility surface using Dupire’s formula. The author builds a smooth implied surface by parameterizing total implied variance against time and log-moneyness with SVI, then interpolates across maturities. Derivatives with respect to log-moneyness are obtained from the parameterization, while time derivatives are estimated with finite differences.

The resulting local volatility surface differs substantially from a published stochastic-local-volatility example. The question notes that the paper uses a different log-moneyness convention, but changing to that convention did not resolve the discrepancy. No accepted explanation or corrective method is included, so the document is useful mainly as a modeling workflow and a replication warning. It does not establish which implementation choice causes the mismatch; interpolation, differentiation, conventions, and the paper’s setup would need further examination.

Key ideas

  • The described workflow fits implied total variance with an SVI parameterization over log-moneyness and time.
  • Dupire local volatility depends on derivatives of the implied variance surface.
  • The example estimates time derivatives with finite differences and interpolates across maturities.
  • A different log-moneyness convention alone did not reproduce the reference surface, and the discrepancy remains unresolved.

Tags

Full text
# Implied volatility to local volatility via Dupire


# Implied volatility to local volatility via Dupire












I am doing some self study on stochastic local volatility modelling and am having a hard time replicating some results from the paper "FX Option Pricing with Stochastic-Local Volatility Model" by Zhu et al (2014).

The paper provides the data used to extract the discrete implied vol. surface which I managed to successfully replicate. My struggle is coming from replicating the local volatility surface on page 11 (Figure 3.2). Here is the output from my implementation:

To create the smooth implied volatility surface I parameterized the volatility in terms of implied variance $w = \sigma_{IV}^2 t$ and log-moneyness $k = log(K/F^t)$ using the SVI approach described in the paper Arbitrage-Free SVI Volatility Surfaces by Gatheral and Jacquier (2013). I then applied linear interpolation across the time dimension which gave me the implied volatility (left most) and implied variance (middle) plots in the figure above.

Now, to compute the local volatility surface I used Dupire's local volatility formula in terms of implied variance and log moneyness described in this QF Stack Exchange question. Since the implied variance is given analytically at each slice, the first and second derivatives were computed analytically at each $k$-slice and interpolated linearly across time. For the time derivative, I used central finite differencing at the interior grid and forward/backward differencing at each boundary.

As you can see, my local volatility surface (right most figure) is nowhere near what is presented in the paper (Figure 3.2). I see in the paper that they define log-moneyness as $log(S/S_0)$. However, even with this convention I am unable to reproduce the same result. Any insight would be helpful as I have not been able to resolve this for some time now.

If you would like me to share my code please let me know.

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.