I am implementing a Monte Carlo engine with the local volatility model based on Dupire.

Obviusly, I obtain the local volatility surface from the implied volatility surface and that surfaces has moneyness and expirys limits. Imagine I have the volatility surfaces values between 0.6 and 1.5 in moneyness and from 0.1 to 2 years in time to expiration.

My question is, since I have to interpolate the local vol surface to know the instantaeous local vol value on the Monte Carlo simulation ($\sigma(moneness, t))$, when I discretize the price equation (Euler) I will have to obtain $\frac{S_{t-1}}{S_{0}}$ between the moneyness values in each time step?

In this case, in each time pass the value of the moneyness would have to be between 0.6 and 1.5, which are the moneyness limits in the volatility surface.


  • 2
    $\begingroup$ You can use extrapolation $\endgroup$ – Antoine Conze Apr 12 at 15:21
  • 1
    $\begingroup$ you extrapolate the volatility for moneyness < 0.6 or > 1.5 $\endgroup$ – Antoine Conze Apr 12 at 15:44
  • 1
    $\begingroup$ bilinear interpolation on the local volatility is fine as the model will remain arbitrage free. If you were to interpolate the implied volatility you would need something more involved. $\endgroup$ – Antoine Conze Apr 12 at 16:50
  • 1
    $\begingroup$ There is no constraint on local volatility being positive, because $+\sigma dW$ and $-\sigma dW$ are both gaussians with mean zero and standard deviation $|\sigma| \sqrt{dt}$. It is just a convention. $\endgroup$ – Antoine Conze Apr 13 at 8:02
  • 1
    $\begingroup$ The simplest and most common extrapolation method is flat extrapolation, exactly as you suggest. $\endgroup$ – Antoine Conze Apr 14 at 9:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.