Choosing Time Steps for Heston Model Simulation
Summary
The document explains how the time increment in a simulated Heston model relates to the number of steps per year: once the time unit is fixed, choosing one determines the other. Its main example is the Euler–Maruyama discretization of the stock and variance stochastic differential equations, whose correlated Brownian increments have variance equal to the time step. Thus an increment such as 0.04 specifies the variance of each Brownian increment, rather than implying that the model’s overall variance is that small.
It gives no universal best time step. Instead, it recommends comparing simulated derivative prices across time-step sizes and path counts with an analytical price when available, then weighing convergence against computation cost. The discussion notes that correlated, non-diagonal noise can affect scheme choice and that Euler–Maruyama may require more paths or smaller increments than other methods. It also mentions adaptive time steps, without prescribing a scheme or reporting numerical convergence results.
Key ideas
- The time step and steps per year are reciprocals when the time unit is one year.
- Brownian increments in Euler–Maruyama have variance equal to the time step.
- The Heston stock and variance dynamics use correlated noise.
- Assess time-step and path-count choices by checking price convergence against an analytical value when one is available.
- Smaller increments and more paths can improve convergence while increasing computation cost.
Tags
Full text
# Heston Discretization dt
# Heston Discretization dt
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?
## Answer by rvignolo (score 1)
https://quant.stackexchange.com/a/57929
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}
with:
\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:
- 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.
- 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).
- 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!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.