第三章:Gamma(Γ)深度解析
Gamma,说实话,是期权希腊字母里最让我又爱又恨的一个。爱它,是因为它代表着Delta的变化速度,是动态对冲的核心;恨它,是因为一旦Gamma放大,你的持仓就像坐上了过山车,稍不留神就翻车。今天,我们就来彻底搞懂Gamma。
一、Gamma的定义与计算
Gamma,用数学语言说,是期权价格对标的资产价格的二阶偏导数。但说白了,它就是Delta的变化率——标的资产价格每变动1块钱,Delta会跟着变多少。
核心公式:
Γ = ∂²V / ∂S² = ∂Δ / ∂S
其中V是期权价格,S是标的资产价格,Δ是Delta。
嗯,这里要注意:Gamma对于期权买方是正的,对于卖方是负的。我刚开始做交易时,总把正负号搞反,结果吃了不少亏。
举个例子,假设某看涨期权的Gamma是0.05,Delta是0.6。当标的资产价格上涨1元时,Delta会变成0.65;再涨1元,Delta变成0.70。你看,Delta的变化速度就是由Gamma决定的。
计算Gamma,最常用的是Black-Scholes模型下的公式:
# Python计算Gamma
import numpy as np
from scipy.stats import norm
def gamma_bs(S, K, T, r, sigma, option_type='call'):
"""
计算欧式期权的Gamma
S: 标的资产价格
K: 行权价
T: 剩余到期时间(年)
r: 无风险利率
sigma: 波动率
"""
d1 = (np.log(S/K) + (r + 0.5*sigma**2)*T) / (sigma*np.sqrt(T))
gamma = norm.pdf(d1) / (S * sigma * np.sqrt(T))
return gamma
# 举个例子
S, K, T, r, sigma = 100, 100, 0.5, 0.03, 0.2
gamma = gamma_bs(S, K, T, r, sigma)
print(f"Gamma = {gamma:.4f}")
# 输出: Gamma = 0.0199
我在项目中遇到过,很多新手直接用这个公式算完就完事了,完全没考虑实际交易中的离散对冲问题。其实,理论Gamma和实际Gamma之间,差着一个「对冲频率」的距离。
二、Gamma与Delta的关系
Gamma和Delta的关系,就像速度和加速度。Delta是期权价格对标的资产价格的速度,Gamma就是加速度。
为什么会这样?你想想看:
- 平值期权(ATM):Gamma最大,Delta变化最剧烈。标的资产稍微动一下,Delta就变一大截。
- 深度实值(ITM):Delta接近1或-1,Gamma接近0。Delta基本不动了。
- 深度虚值(OTM):Delta接近0,Gamma也接近0。期权基本没反应。
我记得有一次,我持有一个平值期权的多头头寸,Gamma高达0.08。那天市场波动特别大,标的资产在半小时内上下波动了5块钱。我的Delta从0.5变成了0.9,又变回0.3,来回折腾。这就是Gamma的威力——它让Delta变得不稳定。
个人经验:当Gamma很大时,不要以为对冲一次就完事了。我建议至少每小时重新计算一次Delta,必要时随时调整。尤其是临近到期时,平值期权的Gamma会急剧放大。
三、Gamma的风险特征
Gamma的风险,说白了就是「非线性风险」。Delta是线性的,Gamma是非线性的。这个非线性,让很多做线性思维的人栽了跟头。
主要风险特征:
- 凸性风险:期权买方是正Gamma,价格涨时Delta变大,跌时Delta变小,天然有利于方向性交易。但卖方是负Gamma,价格涨时Delta变小,跌时Delta变大,越亏越要补仓。
- 时间衰减:Gamma和Theta(时间价值)是死对头。正Gamma需要支付时间成本,负Gamma则收取时间价值。我见过太多人只盯着Gamma赚钱,忽略了Theta在背后悄悄吸血。
- 波动率敏感:Gamma在低波动率环境下会放大,高波动率环境下会缩小。这个特性很多人不知道。
避坑指南:我曾经在波动率极低的时候卖出了大量平值期权,想着Gamma不大,风险可控。结果市场突然爆发,波动率飙升,Gamma瞬间放大,Delta对冲完全跟不上节奏,一天亏了半个月的利润。记住:低波动率环境下的Gamma风险,往往被低估。
四、Gamma中性策略
Gamma中性,就是让整个持仓的Gamma为0。这样,无论标的资产怎么波动,Delta都不会变,对冲起来就轻松多了。
怎么做?很简单:
- 如果你持有正Gamma的头寸(比如买入期权),就卖出一些期权来对冲。
- 如果你持有负Gamma的头寸(比如卖出期权),就买入一些期权来对冲。
但要注意,Gamma中性不是一劳永逸的。随着标的资产价格变化、时间流逝、波动率变化,Gamma会重新变得非中性。所以,需要动态调整。
举个例子:
# 构建Gamma中性组合
# 假设我们持有1手看涨期权(Gamma=0.05)
# 需要卖出多少手看跌期权(Gamma=0.03)来对冲?
gamma_long = 0.05 # 多头Gamma
gamma_short = 0.03 # 空头Gamma(每手)
# 需要卖出的手数
hedge_ratio = gamma_long / gamma_short
print(f"需要卖出 {hedge_ratio:.2f} 手看跌期权")
# 输出: 需要卖出 1.67 手看跌期权
嗯,这里要注意:实际交易中,你很难精确到0.67手,所以通常用期货或ETF来微调Delta,用期权来调整Gamma。
五、Gamma Scalping技巧
Gamma Scalping,说白了就是利用正Gamma的特性,在标的资产价格波动中赚取利润。这是期权交易中最经典的策略之一。
核心逻辑:
- 买入平值期权(正Gamma)
- 动态对冲Delta,保持Delta中性
- 每次标的资产价格波动,你都通过低买高卖赚取差价
我个人的操作习惯是这样的:
- 选择标的:波动率适中、流动性好的品种。太死板的标的没波动,赚不到钱;太疯狂的标的,对冲成本太高。
- 选择期权:平值或轻度虚值,剩余时间30-60天。Gamma够大,时间价值衰减还能接受。
- 对冲频率:我一般设定一个Delta阈值,比如Delta变化超过0.05就重新对冲。太频繁了手续费吃掉利润,太慢了风险暴露太大。
举个例子:
# Gamma Scalping模拟
import numpy as np
def gamma_scalping_simulation(S0, K, T, r, sigma, n_steps, threshold=0.05):
"""
模拟Gamma Scalping过程
"""
dt = T / n_steps
S = S0
delta = 0.5 # 初始Delta(平值)
gamma = gamma_bs(S, K, T, r, sigma)
cash = 0
position = 0 # 持有的标的资产数量
for i in range(n_steps):
# 模拟价格变动
dS = np.random.normal(0, sigma * np.sqrt(dt))
S_new = S * np.exp(dS)
# 计算新Delta
delta_new = norm.cdf((np.log(S_new/K) + (r + 0.5*sigma**2)*(T-i*dt)) /
(sigma * np.sqrt(T-i*dt)))
# 如果Delta变化超过阈值,重新对冲
if abs(delta_new - delta) > threshold:
# 卖出或买入标的资产
trade = position - delta_new
cash += trade * S_new
position = delta_new
delta = delta_new
S = S_new
# 最终平仓
cash += position * S
return cash
# 运行模拟
result = gamma_scalping_simulation(100, 100, 0.5, 0.03, 0.2, 1000)
print(f"Scalping利润: ${result:.2f}")
技巧分享:Gamma Scalping最怕的是「窄幅震荡」。标的资产价格来回波动,但幅度很小,每次对冲赚的钱还不够手续费。我一般会结合波动率判断——如果隐含波动率低于历史波动率,Gamma Scalping的成功率会高很多。
最后说一句,Gamma是一把双刃剑。用好了,它是你盈利的加速器;用不好,它是你爆仓的催化剂。我个人建议,新手先从模拟盘开始,把Gamma的特性摸透了再上实盘。毕竟,市场不会给你第二次机会。