Greeks and Sensitivity Estimation¶
The Greeks represent sensitivities of an option's value with respect to various parameters. When using finite difference methods to solve the Black-Scholes equation, we can estimate these sensitivities directly from the numerical solution grid.
Key Greeks¶
| Greek | Meaning | Formula |
|---|---|---|
| Delta | \(\frac{\partial V}{\partial S}\) | Option price sensitivity to stock price |
| Gamma | \(\frac{\partial^2 V}{\partial S^2}\) | Sensitivity of Delta (convexity) |
| Theta | \(-\frac{\partial V}{\partial t}\) | Sensitivity to passage of time (decay) |
Delta (First Derivative in Space)¶
Approximate Delta at node \(i\) using central differences:
At the edges (\(i = 0\) or \(i = M\)), use forward or backward difference instead.
Gamma (Second Derivative in Space)¶
High Gamma near the strike means small moves in \(S\) cause big changes in Delta.
Theta (Time Derivative)¶
Given two time levels (\(V^{n+1}\) and \(V^n\)):
In practice, we often use the final two time steps for this estimate.
Python Example: Delta and Gamma Estimation¶
```python import numpy as np
def estimate_delta_gamma(S, V): dS = S[1] - S[0] delta = np.zeros_like(V) gamma = np.zeros_like(V)
# Central differences for interior points
for i in range(1, len(S) - 1):
delta[i] = (V[i + 1] - V[i - 1]) / (2 * dS)
gamma[i] = (V[i + 1] - 2 * V[i] + V[i - 1]) / (dS ** 2)
# One-sided differences for boundaries
delta[0] = (V[1] - V[0]) / dS
delta[-1] = (V[-1] - V[-2]) / dS
gamma[0] = gamma[1]
gamma[-1] = gamma[-2]
return delta, gamma
```
Python Example: Plotting Greeks¶
```python import matplotlib.pyplot as plt
delta, gamma = estimate_delta_gamma(S, V_cn)
fig, ax = plt.subplots(2, 1, figsize=(10, 8), sharex=True)
ax[0].plot(S, delta, label="Delta", color='blue') ax[0].set_ylabel("Delta") ax[0].legend() ax[0].grid(True)
ax[1].plot(S, gamma, label="Gamma", color='green') ax[1].set_xlabel("Stock Price") ax[1].set_ylabel("Gamma") ax[1].legend() ax[1].grid(True)
plt.suptitle("Greeks Estimated from Crank-Nicolson FDM Solution") plt.tight_layout() plt.show() ```
Practical Considerations¶
- Grid resolution: Delta and Gamma are sensitive to the grid — refine \(\Delta S\) for more accurate Greek estimates.
- Smoothing: For visual plots or real-time computation, smoothing filters or interpolation may be applied.
- Theta estimation: Requires access to values at multiple time levels; Crank-Nicolson is backward in time, so stored values can be reused.
Summary¶
- The Greeks are essential tools derived from the option price grid.
- Finite difference methods naturally yield accurate estimates for Delta, Gamma, and Theta.
- Proper numerical differentiation and grid resolution ensure reliable sensitivity analysis.
Exercises¶
Exercise 1. Given a uniform spatial grid with \(\Delta S = 2\) and the following option values at time \(t = 0\): \(V_{i-1} = 8.50\), \(V_i = 10.25\), \(V_{i+1} = 12.40\), compute the central difference estimates for Delta and Gamma at node \(i\).
Solution to Exercise 1
Using the central difference formulas with \(\Delta S = 2\), \(V_{i-1} = 8.50\), \(V_i = 10.25\), \(V_{i+1} = 12.40\):
Delta:
Gamma:
Therefore \(\Delta_i = 0.975\) and \(\Gamma_i = 0.10\).
Exercise 2. The forward difference formula for Delta is \(\Delta_i \approx (V_{i+1} - V_i)/\Delta S\), while the central difference formula is \(\Delta_i \approx (V_{i+1} - V_{i-1})/(2\Delta S)\). Using Taylor expansion, show that the forward difference has truncation error \(O(\Delta S)\) while the central difference has truncation error \(O((\Delta S)^2)\).
Solution to Exercise 2
Forward difference: Expand \(V(S + \Delta S)\) in a Taylor series around \(S_i\):
The forward difference gives:
The truncation error is \(\frac{1}{2}V_{SS}\Delta S + O((\Delta S)^2) = O(\Delta S)\).
Central difference: Expand both \(V(S + \Delta S)\) and \(V(S - \Delta S)\):
Subtracting:
The truncation error is \(\frac{1}{6}V_{SSS}(\Delta S)^2 + O((\Delta S)^4) = O((\Delta S)^2)\). The central difference is one order more accurate because the leading error term (involving \(V_{SS}\)) cancels by symmetry.
Exercise 3. Suppose you have computed from the FDM grid: \(V = 10.45\), \(\Delta = 0.55\), \(\Gamma = 0.04\), at a node where \(S = 100\), with parameters \(r = 0.05\) and \(\sigma = 0.20\). Use the Black-Scholes PDE to estimate Theta. Verify that the PDE residual
is close to zero.
Solution to Exercise 3
We are given \(V = 10.45\), \(\Delta = 0.55\), \(\Gamma = 0.04\), \(S = 100\), \(r = 0.05\), and \(\sigma = 0.20\). The Black-Scholes PDE states:
Solving for Theta:
Substituting:
Verification: the PDE residual is
The residual is exactly zero because we derived \(\Theta\) from the PDE itself. In practice, if \(\Theta\) were estimated independently (e.g., from time stepping), the residual would be nonzero but small, serving as a consistency check.
Exercise 4. Explain why Gamma estimates are more sensitive to grid resolution than Delta estimates. If the option price has error \(\varepsilon\) at each grid node, derive the amplified error in the central difference formulas for Delta and Gamma in terms of \(\varepsilon\) and \(\Delta S\).
Solution to Exercise 4
Gamma involves a second difference, dividing by \((\Delta S)^2\), while delta involves a first difference, dividing by \(\Delta S\). If each grid node has a price error of magnitude \(\varepsilon\), the amplified errors are:
Delta error: The central difference for delta gives:
Gamma error: The central second difference gives:
The gamma error is amplified by \(1/(\Delta S)^2\) compared to \(1/\Delta S\) for delta. For small \(\Delta S\), this means gamma estimates are far more sensitive to noise in the solution. For example, with \(\varepsilon = 10^{-4}\) and \(\Delta S = 0.5\): the delta error bound is \(2 \times 10^{-4}\) while the gamma error bound is \(1.6 \times 10^{-3}\), which is 8 times larger.
Exercise 5. A Crank-Nicolson FDM solver produces option values at the final two time levels: \(V_i^{N} = 10.25\) and \(V_i^{N-1} = 10.38\) with \(\Delta t = 0.01\). Estimate Theta using the backward difference formula. If Delta and Gamma at this node are \(\Delta = 0.55\) and \(\Gamma = 0.04\), and \(S = 100\), \(r = 0.05\), \(\sigma = 0.20\), compare this estimate to the PDE-based Theta.
Solution to Exercise 5
Theta estimate from backward difference:
Wait --- the sign convention matters. Since the solver marches backward in time (from \(T\) to \(0\)), the final level \(N\) corresponds to \(t = 0\) and level \(N-1\) is one step closer to \(T\). In the time-to-maturity variable \(\tau = T - t\), we have \(u^N\) at \(\tau = T\) and \(u^{N-1}\) at \(\tau = T - \Delta\tau\). The theta in calendar time is:
This positive value seems unusual. However, interpreting the values directly: \(V_i^N = 10.25\) is the current price and \(V_i^{N-1} = 10.38\) is the price at a slightly later time (one step back toward maturity). The option price is higher at the earlier time, so the option loses value as time passes, giving a negative theta in the standard convention:
PDE-based theta with \(\Delta = 0.55\), \(\Gamma = 0.04\), \(S = 100\), \(r = 0.05\), \(\sigma = 0.20\), \(V = 10.25\):
The time-step estimate of \(13.0\) and the PDE-based estimate of \(-10.2375\) differ significantly in magnitude and sign. The discrepancy arises because the backward difference is only \(O(\Delta t)\) accurate and the given values may correspond to different points on the time grid. The PDE-based estimate is more reliable because it avoids time-differencing error.
Exercise 6. Consider a non-uniform spatial grid where \(S_{i-1} = 96\), \(S_i = 100\), \(S_{i+1} = 106\). Derive modified central difference formulas for Delta and Gamma that account for the unequal spacings \(h_- = S_i - S_{i-1}\) and \(h_+ = S_{i+1} - S_i\).
Solution to Exercise 6
With unequal spacings \(h_- = S_i - S_{i-1} = 100 - 96 = 4\) and \(h_+ = S_{i+1} - S_i = 106 - 100 = 6\), we derive the modified formulas using Taylor expansions.
Expand \(V_{i+1}\) and \(V_{i-1}\) around \(S_i\):
Non-uniform Delta: Multiply the first equation by \(h_-^2\) and the second by \(h_+^2\), then subtract to eliminate the \(V_{SS}\) term:
Solving for \(V_S\):
Non-uniform Gamma: Multiply the first expansion by \(h_-\) and the second by \(h_+\), then add to eliminate the \(V_S\) term:
Solving for \(V_{SS}\):
These formulas reduce to the standard central difference formulas when \(h_+ = h_- = \Delta S\).