I am trying to implement a Monte Carlo Simulation using Local Volatility Model (Dupire’s Equation).

I’m pretty sure I can build a very good LV surface, however, I do not know how to use it in the MC Simulation.

The point is since I always start the simulation from the current spot price, in the first step I will always end up with the ar-the-money volatility at first place. Therefore, in case I want to price a plain Vanilla option in or out-of-the money, with a maturity equal to the first time step (first tenor of my surface) all the paths will use the at-the-money vol and price will not be consistent with market.

For sure I’m doing something wrong, can someone help me?

  • $\begingroup$ Your observation is valid if you are using a Euler scheme (the distribution at the first time step would be lognormal). In that case, you could use more time steps between now and the expiry of your option.. Otherwise, turn to a more elaborate scheme with better convergence properties (e.g. Milstein would involve also the "skew" of the local volatility function at each time step) $\endgroup$
    – Quantuple
    Commented Jul 19, 2019 at 7:26
  • $\begingroup$ Thanks for the comment, however I believe that simply reducing the first time step is not going to work since I will only generate paths even close to the current spot level, and the the volatilities are going to be closer from the at-the-money. Moreover, i can not see how changing the process can solve this problem as well. The question remains: how could I pricing a simple call spread at first maturity date, with only one simulation, since all the paths will begin from the at-the-money volatility? $\endgroup$
    – Ricardo
    Commented Jul 21, 2019 at 0:39
  • $\begingroup$ Maybe I wasn't clear, let me write up an answer. $\endgroup$
    – Quantuple
    Commented Jul 22, 2019 at 7:08

2 Answers 2


Let the risk-neutral dynamics under your LV model be given by $$ \frac{d S_t }{S_t } = \mu_t dt + \sigma(t,S_t) dW_t $$ Let's drop the drift contribution (not relevant here) and apply Itô's lemma to obtain: $$ d \ln(S_t) = -\frac{1}{2}\sigma^2(t,S_t) dt + \sigma(t,S_t) dW_t $$ In order to simulate from this SDE, you need to choose a particular discretisation scheme.

The most simple choice would be to opt for the Euler-Maruyama scheme yielding, conditional on the information available at $t$:

\begin{align} \ln(S_{t+\delta t}) &= \ln(S_{t}) - \frac{1}{2}\int_t^{t+\delta t} \sigma^2(u,S_u) du + \int_t^{t+\delta t} \sigma(u, S_u) dW_u \\ &\approx \ln(S_{t}) - \frac{1}{2} \sigma^2(t,S_t) \delta t + z \sqrt{\sigma^2(t, S_t)\delta t} \tag{1} \end{align} where we have also assumed a Euler discretisation of the time integrals + used Itô isometry. At the end of the day you see that indeed $S_{t+\delta t} \vert S_t$ will be lognormal.

So if you want to simulate from $t=0$ to $t=T$ ($T$ being your date of interest), using only one time step $\delta t = T$, you'll have a lognormal distribution as in Black-Scholes (or equivalently, no IV skew).

However, if you break the interval $[0,T]$ into $i=1,\dots,N$ sub-intervals $$ 0 =: t_0 < t_1 = \delta t < \dots < t_N := T $$ and apply the previous method to successively generate $S_{1} \vert S_0$ then $S_2 \vert S_1$ until $S_{T} \vert S_{T-\delta t}$, $S_{T}$ will not be lognormal anymore.

Intuitively this is because you will gradually start using a path-dependent volatility to simulate future price evolutions, contrary to the single volatility figure framework (i.e. Black-Scholes).

My other comment was related to other discretisation schemes where at each time step the conditional distribution won't be lognormal. This is because the path-dependence of the diffusion coefficient will be accounted for within the discretisation of the SDE itself (see e.g. Milstein). Whether with those you can use a single time step and hope to directly to match the theoretical distribution is then a convergence + discretisation bias question.


True, but you use LV at the money very "locally". If your K>S0 or K<S0, for your first step you will use LV(new K = S0,0) which considered at the money localy but not in global since S0!=K(at the end). It s very tricky and it s how the process of LV is defined.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.