Estimating Cross-Gamma with a Finite Difference Scheme
Summary
The document describes how to estimate cross-gamma for an instrument whose value depends on multiple underlying spot prices. Cross-gamma is the mixed second derivative of value with respect to two different spot levels, and it appears off the diagonal of a gamma matrix used in a delta-gamma risk approximation. The proposed method perturbs both spot levels up and down and combines the four resulting instrument values in a centered finite difference.
The perturbations are specified as small fractions of each spot, with the discussion giving one-percent as a usual choice. A Taylor expansion motivates the approximation by showing how the mixed derivative contributes to the combined changes in value. The method can be used when no closed-form cross-gamma is available, but the note does not examine sensitivity to perturbation size, numerical error, or simulation noise. Those considerations matter when applying the estimate to Monte Carlo valuation or portfolio risk.
Key ideas
- Cross-gamma is the mixed second derivative of instrument value with respect to two distinct spot levels.
- It occupies an off-diagonal entry of the gamma matrix.
- A centered finite difference estimates it from four joint up-and-down spot perturbations.
- The perturbation is expressed as a fraction of each spot level.
- Taylor expansion provides the rationale for the finite difference approximation.
Tags
Full text
# Compute cross-gamma
# Compute cross-gamma
I am trying to use delta-gamma method with montecarlo simulations to calculate the VAR of a portfolio consisting in options and equities.
To use the method I need to compute a gamma matrix, that has gammas in its diagonal and cross-gammas in the i,j components.
My question is how do I compute the cross-gammas? I have looked everywhere but cannot find a closed formula or method.
BR
## Answer by Gordon (score 1, accepted)
https://quant.stackexchange.com/a/18165
Consider an instrument value $f(S_0^1, \ldots, S_0^n)$ that depends on $n$ spot levels. Let $$\overrightarrow{S}_0=[S_0^1, \ldots, S_0^n]^T$$ be an $n$-dimensional vector representing the spot levels. We can approximate the cross gamma \begin{align*} \frac{\partial^2 f\big(\overrightarrow{S}_0\big)}{\partial S_0^i \partial S_0^j} \end{align*} by a finite difference scheme of the form \begin{align*} &\frac{1}{4 \varepsilon^2 S_0^i S_0^j}\Big[f\big(\overrightarrow{S}_0 + \varepsilon S_0^i\overrightarrow{1}_i + \varepsilon S_0^j\overrightarrow{1}_j\big) - f\big(\overrightarrow{S}_0 + \varepsilon S_0^i\overrightarrow{1}_i - \varepsilon S_0^j\overrightarrow{1}_j\big)\\ & \qquad\qquad - f\big(\overrightarrow{S}_0 - \varepsilon S_0^i\overrightarrow{1}_i + \varepsilon S_0^j\overrightarrow{1}_j\big) + f\big(\overrightarrow{S}_0 - \varepsilon S_0^i\overrightarrow{1}_i - \varepsilon S_0^j\overrightarrow{1}_j\big)\Big], \end{align*} where $\overrightarrow{1}_i$ is an $n$-dimensional vector with $1$ in the $i^{th}$ element and zeros elsewhere. Here, $\varepsilon$ is a small perturbation, which is usually set to $0.01$.
To justify the above, we use Taylor expansion. For example, \begin{align*} f\big(\overrightarrow{S}_0 + \Delta_i\overrightarrow{1}_i + \Delta_j\overrightarrow{1}_j\big)&\approx f\big(\overrightarrow{S}_0\big)+\Big(\Delta_i\frac{\partial }{\partial S_0^i}+ \Delta_j\frac{\partial }{\partial S_0^j}\Big)f\big(\overrightarrow{S}_0\big)\\ & \ \ + \frac{1}{2}\Big(\Delta_i\frac{\partial }{\partial S_0^i}+ \Delta_j\frac{\partial }{\partial S_0^j}\Big)^2f\big(\overrightarrow{S}_0\big) + o(\Delta_i \Delta_j ). \end{align*}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.