Skip to content

9.4 数值 Greeks

在量化金融中,Greeks(风险敏感性指标)是风险管理和对冲的核心。当期权定价模型没有解析 Greeks 时——这在奇异期权中非常常见——数值方法是唯一的出路。


有限差分法求 Delta

中心差分公式

Delta Δ=V/S\Delta = \partial V / \partial S,用中心差分数值近似:

ΔV(S+ϵ)V(Sϵ)2ϵ\Delta \approx \frac{V(S + \epsilon) - V(S - \epsilon)}{2\epsilon}

其中 ϵ\epsilon 的选择至关重要:

  • ϵ\epsilon 太大 → 截断误差(泰勒展开高阶项被忽略)
  • ϵ\epsilon 太小 → 灾难性抵消(浮点误差占主导)

最佳折衷

ϵεmS108×S\epsilon \approx \sqrt{\varepsilon_m} \cdot S \approx 10^{-8} \times S

手算示例

假设 S=100S = 100K=100K = 100r=0.05r = 0.05σ=0.2\sigma = 0.2T=1T = 1 年的看涨期权。

ϵ=0.01\epsilon = 0.01SS0.01%0.01\%):

参数Sϵ=99.99S - \epsilon = 99.99S+ϵ=100.01S + \epsilon = 100.01
BS 价格 VV10.445010.4450(示例值)10.455010.4550(示例值)
差值10.455010.4450=0.010010.4550 - 10.4450 = 0.0100
中心差分Δ0.01002×0.01=0.5000\Delta \approx \frac{0.0100}{2 \times 0.01} = 0.5000

解析 Delta = N(d1)0.5000N(d_1) \approx 0.5000(平价附近)。中心差分 ϵ=0.01\epsilon = 0.01 给出了 4 位精确的一致结果。


数值 Gamma

Gamma Γ=2V/S2\Gamma = \partial^2 V / \partial S^2 的二阶中心差分公式:

ΓV(S+ϵ)2V(S)+V(Sϵ)ϵ2\Gamma \approx \frac{V(S + \epsilon) - 2V(S) + V(S - \epsilon)}{\epsilon^2}

最佳 ϵ\epsilon 约为 εm1/3S105×S\varepsilon_m^{1/3} \cdot S \approx 10^{-5} \times S


Python 示例:有限差分 Delta

python
import numpy as np
from scipy.stats import norm

def bs_call_price(S, K, r, sigma, T):
    """Black-Scholes 看涨期权价格"""
    d1 = (np.log(S / K) + (r + 0.5 * sigma**2) * T) / (sigma * np.sqrt(T))
    d2 = d1 - sigma * np.sqrt(T)
    return S * norm.cdf(d1) - K * np.exp(-r * T) * norm.cdf(d2)

def finite_diff_delta(S, K, r, sigma, T, eps=0.01):
    """用中心差分计算数值 Delta"""
    V_up = bs_call_price(S + eps, K, r, sigma, T)
    V_down = bs_call_price(S - eps, K, r, sigma, T)
    return (V_up - V_down) / (2 * eps)

# 参数
S, K, r, sigma, T = 100.0, 100.0, 0.05, 0.2, 1.0

# 解析 Delta
d1 = (np.log(S / K) + (r + 0.5 * sigma**2) * T) / (sigma * np.sqrt(T))
delta_analytic = norm.cdf(d1)
print(f"解析 Delta = {delta_analytic:.6f}")

# 数值 Delta(不同 epsilon)
for eps in [1.0, 0.1, 0.01, 0.001, 1e-6, 1e-10]:
    num_delta = finite_diff_delta(S, K, r, sigma, T, eps)
    err = abs(num_delta - delta_analytic)
    print(f"eps = {eps:12.0e}: 数值 Delta = {num_delta:.8f}, "
          f"误差 = {err:.2e}")

# --- 输出示例 ---
# 解析 Delta = 0.531261
# eps = 1e+00: 数值 Delta = 0.53126267, 误差 = 1.66e-06
# eps = 1e-01: 数值 Delta = 0.53126126, 误差 = 2.08e-09
# eps = 1e-02: 数值 Delta = 0.53126126, 误差 = 1.51e-11
# eps = 1e-03: 数值 Delta = 0.53126126, 误差 = 2.56e-12
# eps = 1e-06: 数值 Delta = 0.53126126, 误差 = 2.22e-10  ← 开始增大
# eps = 1e-10: 数值 Delta = 0.53125898, 误差 = 2.28e-06  ← 严重恶化

关键观察ϵ=0.001\epsilon = 0.0010.010.01 是最优范围。ϵ\epsilon 过小(101010^{-10})时,灾难性抵消使误差重新增大


Monte Carlo 收敛与 Greeks

Monte Carlo 收敛速度

Monte Carlo 模拟的误差以 O(1/N)\mathcal{O}(1/\sqrt{N}) 收敛——要将精度提高 10 倍,模拟次数需要增加 100 倍

模拟次数 NN标准误 σ/N\sigma/\sqrt{N}σ=0.2\sigma=0.2 为例)
10210^20.02000.0200
10410^40.00200.0020
10610^60.00020.0002
10810^80.000020.00002

Pathwise Derivative Estimation

定价奇异期权(如障碍期权、回望期权)时,Monte Carlo 与有限差分 Greeks 结合使用——MC 给出价格,路径上的有限差分估计 Greeks,称为 Pathwise Derivative Estimation,比重抽法(bumping)更稳定。


Greek定义对冲操作数值方法
Delta Δ\DeltaV/S\partial V / \partial S买卖标的资产中心差分
Gamma Γ\Gamma2V/S2\partial^2 V / \partial S^2调整 Delta 对冲频率二阶中心差分
Vega ν\nuV/σ\partial V / \partial \sigma波动率对冲(期权组合)数值偏导
Theta Θ\ThetaV/t\partial V / \partial t时间衰减管理前向差分

实践建议:在实际交易系统中,不要对所有头寸逐一计算数值 Greeks——应当对聚合的净敞口计算,避免重复计算和累积误差。对于奇异期权,使用数值 Greeks 结合情景分析(Scenario Analysis)是最稳健的做法。 \n> 下一步回到本章概述

Built with VitePress