My goal is to obtain a strictly positive variance-gamma process for the variance process such that,
$$Y_{t+1} = Y_t + \mu\Delta + \sqrt{v_t\Delta}\,\,\varepsilon^y_{t+1}\\
\qquad \qquad\quad \,\,\qquad v_{t+1} = v_t + \kappa (\theta-v_t)\Delta + \sigma_v\sqrt{v_t\Delta}\,\,\varepsilon^v_{t+1} + J^v_{t+1} \\
J^v_{t+1} = \gamma G_{t+1} + \sigma \sqrt{G_{t+1}}\,\, \varepsilon^g_{t+1} \\
G_{t+1} \sim \Gamma ( \frac{\Delta}{\nu}, \nu)$$
However, $J^v_{t+1}$ has to be non-negative in order to prevent the volatility from becoming negative. Does anyone have an idea about how to obtain such a process?
1 Answer
The simplest way to deal with negative variance-gamma process is to override them as they arise. There are at least two ways to do this
- In the full truncation scheme, a negative value for $v_t$ is floored at zero. Hence $v_t$ is replaced by $v_t^+=\max\{0,v_t\}$ everywhere in the discretization.
- In the reflection scheme, a negative value for $v_t$ is reflected with $-v_t$ . Hence $v_t$ is replaced by $|v_t|$ everywhere in the discretization.
The disadvantage of the full truncation scheme is that it creates zero variances, which is unrealistic because $Y_t$ never exhibit zero variance.
The disadvantage of the reflection scheme is that it reflects a large negative variance to a large positive variance. Hence, it transforms realizations of low volatility into high volatility.
Yet another way is to simulate $\ln v_t$ or $\sqrt{v_t}$ and then exponentiate or square the result.