Skip to content
All library documents

Diagnosing Flat Paths in Full-Truncation Heston Simulations

Article Quant Q&A · Author: AQT

Summary

The document presents a question about Monte Carlo paths generated for the Heston stochastic volatility model using a full-truncation Euler scheme. It gives discrete-time equations for variance and asset price, along with a set of silver-market parameters and spreadsheet formulas. The author reports that simulated variance and price paths sometimes appear nearly constant after the variance becomes negative, and asks why changing the mean-reversion parameter does not resolve the behavior.

The material is useful as an illustration of how discretization, treatment of negative variance, and implementation details affect simulated paths. However, it does not include an answer or establish the cause of the reported behavior. The displayed formulas and spreadsheet setup are the evidence available, so readers should treat the issue as unresolved and verify the recurrence and indexing in their own implementation before drawing conclusions about the model or scheme.

Key ideas

  • The Heston model couples an asset-price process with a mean-reverting stochastic variance process.
  • Full-truncation Euler discretization uses a nonnegative variance input in drift and diffusion calculations.
  • The document reports unusually flat simulated paths after variance becomes negative.
  • No diagnosis is provided, so the reported behavior remains an implementation question.

Tags

Full text
# Heston model: odd simulations of variance and asset price process path


# Heston model: odd simulations of variance and asset price process path












I've done Monte Carlo simulations of asset and variance processes of the Heston model on Silver via a Full Truncation of Euler discretisation scheme to learn and see for myself how the simulation paths of both processes map out. However, the paths don't seem to look "correct". FYI, the workings are done in Excel for clarity and simplicity.

Without further ado, the formulas are as follows:

\begin{eqnarray} \ v_{t+\Delta t} &=& \ v_t + \kappa (\theta - \ v_t^{+}) \Delta t + \sigma \sqrt{\ v_t^{+} \Delta t} Z_V, \end{eqnarray}

\begin{eqnarray} S_{t+\Delta t} = S_t \exp \left( \left(\mu - \frac{1}{2} v_t^{+} \right) \Delta t + \sqrt{v_t^{+} \Delta t}* \left( \rho Z_V + \sqrt{1-\rho^2}Z_2 \right) \right) \end{eqnarray}

Where $v_{t+\Delta t}$ is the stochastic variance process and $S_{t+\Delta t}$ the asset price process. The following pictures are how both processes map out:

THE PROBLEM Now even at first look, both simulation path processes look "wrong" as there are almost constant paths simulated. Interestingly enough, this happens when $v_{t+\Delta t}$ at any moment of the time step becomes negative. I understand that the Euler scheme makes the variance process more vulnerable to produce negative values. As I understand it, when $v_{t+\Delta t}$ becomes negative, the next time step variance process only calculates on $v_{t}+κθ$ by virtue of absorption of the full truncation scheme. But the value does not seem to budge out of negative territory even after adjusting $κ$ values to close to 0 or even as high as 5. The parameters and formulas in Excel are as below.

```
S0                          = 25.07400         //U17, column U
long-run variance (θ)       = 0.0487%          //$AJ$2
variance mean-reversion (κ) = 0.9464657        //$AJ$3
volatility of variance (σ)  = 0.361234915      //$AJ$4
correlation (ρ)             = -0.153147735     //$AJ$5, used in asset price process formula
starting variance (v0)      = 0.0988%          //$AJ$6 at time step 1 only
drift (μ)                   = 2.60%
time step (Δt)              = 1/10             //($V$12/$AE$12), 0.4 weeks time step each for 10 time steps total (4 weeks or 1 month price projection)

//Excel formulas for variance process v(t+Δt)
time step 1 = $AJ$6+$AJ$3*($AJ$2-$AJ$6)*($V$12/$AE$12)+$AJ$4*SQRT($AJ$6*($V$12/$AE$12))*AS17
t.step 2-10 = AG17+$AJ$3*($AJ$2-IF(AG17<0,0,AG17))*($V$12/$AE$12)+$AJ$4*SQRT(IF(AG17<0,0,AG17)*($V$12/$AE$12))*AT17

formula used= v(t)+κ[θ−v(t)]Δt + σ√[v(t)*Δt]Zv

//Excel formulas for price process S(t+Δt)
t.step 1-10 = U17*EXP(($C$26-IF(AG17<0,0,AG17)/2)*($V$12/$AE$12)+SQRT(IF(AG17<0,0,AG17)*($V$12/$AE$12))*($AJ$5*AS17+SQRT(1-$AJ$5^2)*NORM.S.INV(RAND())))

formula used= S(t)*exp[[μ−0.5v(t)]Δt+√[v(t)*Δt]∗[ρZv+√(1−ρ^2)*Z2]]
```

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.