I’m trying to figure out the discretization of the Heston model. In the choice of dt, I have seen several ways that people specify this number. Would it not just be 1/n where n is the number time steps? And the paper mentions that the wiener processes should be normally distributed with variance dt, but I often don’t see that mentioned and implementations seem to leave that out a lot. If using dt = 0.04, that sounds like a very small variance. Is that correct?

  • $\begingroup$ The size of a time step $dt$ should be as a big as possible (to reduce computational burden) but as small as possible (to reduce the scheme-dependent discrétisation bias). The variance of the increment of a Brownian driver is indeed $dt$ over that interval. But the instantaneous variance of $S_t$ (resp. $v_t$) over $dt$ is given by $v_t dt$ (resp. $\sigma \sqrr{v_t}$) $\endgroup$ – Quantuple Sep 10 '20 at 5:37

I would like to point out some things that might be helpful.

I’m trying to figure out the discretization of the Heston model. In the choice of dt ...

There exists many discretization schemes that could be implemented to simulate a system of stochastic differential equations (SDEs), such as the Heston model. One of them is the EulerMaruyama scheme, which has a $\frac{1}{2}$ strong order or $1$ weak order of convergence. I believe you are referring to this particular scheme.

The Heston model is given by:

\begin{aligned} dS(t) &= r \cdot S(t) \cdot dt + \sqrt{v(t)} \cdot S(t) \cdot dW(t), \\ dv(t) &= \kappa \cdot \left( \theta - v(t) \right) \cdot dt + \sqrt{v(t)} \cdot dZ(t) \end{aligned}


\begin{aligned} S(0) &= S_0, \\ v(0) &= v_0, \\ \langle dW(t), dZ(t) \rangle &= \rho \cdot dt. \end{aligned}

It is important to note that this system of SDEs has actually non-diagonal noise, since diffusion of the stock price dynamics has a non-null derivative with respect to the variance $v(t)$. This has an important impact in which discretization schemes can be applied. Fortunately, the EulerMaruyama is still aplicable in systems with non-diagonal noise. On the contrary, the EulerMaruyama may need more simulation paths and smaller $dt$ than other schemes in order to achieve convergence when pricing an option. I would recommend reading "Numerical Solution of Stochastic Differential Equations" from Kloeden and Platen to get more insight about the discretization schemes for SDEs.

Would it not just be 1/n where n is the number time steps?

Yes, of course: if n is the number of steps per year, you can either specify n and compute dt or specify dt and compute n. The problem is different: which n or dt should I select for my simulation?

In my opinion, the best way to figure out this is by conducting an analysis of the following aspects:

  1. For a System of SDEs with analytical solution, which $dt$ and $N$ (number of trajectories or paths) should I use in order to achieve convergence.

  2. You can compute the price of a derivative numerically (varying $dt$ and $N$) and analytically and check when you achieve convergence (the frontier of convergence).

  3. Check the cost-benefit of increasing trials, diminishing the time step and their consequences on the computational time.

Many other tests can be included, these are just a couple of them. Also, there are discretization schemes that use adaptive time steps! You can think about them by making a comparison with ODE solvers with adaptive time steps.

Hope it helps!

  • $\begingroup$ The problem that I am seeing mostly is that the choice of dt affects where the paths converge. Convergence isn't that big of an issue because I can always add more paths. But what choice of dt would give a more accurate convergence? It seems that depending on the way you look at it, dt could be the total number of steps or the number of steps annually. Say that I have 365 steps per year and the simulation is over 2 years, should dt equal $\frac{1}{365}$ or $\frac{1}{730}$? $\endgroup$ – Kevin K. Feb 9 at 14:34

Your Answer

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

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