零日期权 0DTE 对市场波动结构的冲击
0DTE(当日到期期权)已占 SPX 期权成交量近半,它改变的不是市场方向,而是波动的『物理性质』。核心机制是 Gamma 的时间集中:模拟显示剩 4 小时的 ATM 期权 Gamma 是 1 月期的 5.8 倍,且随到期临近发散——同样一手期权,0DTE 逼出的对冲流强度高一个数量级。做市商净敞口方向决定日内动力学:800 条路径模拟中,正 Gamma 日对冲流高抛低吸,5 分钟收益自相关 -0.098、日频波动压到 17.0%;负 Gamma 日追涨杀跌,自相关 +0.074、日频波动放大到 19.6%——同一基本面冲击,隔着敞口符号,动量与均值回归策略适用性互换。4000 日模拟显示负 Gamma 日 |r|>2% 的概率是正 Gamma 日的 2.2 倍(10.85% vs 5.22%),尾盘 30 分钟波动强度随 0DTE 占比从 1.36 抬到 1.85。诚实边界:净敞口方向不可直接观测、日内 OI 快照严重滞后、放大机制是条件性而非常态(中阶)。
问题:当一半的期权成交在当天到期#
2016 年,SPX 每周只有三个到期日。现在每个交易日都有当日到期的期权(0DTE,zero days to expiration),而且这类合约占 SPX 期权总成交量的比例已长期在 40%~50% 区间。
这不是简单的「换个到期日交易」。0DTE 改变了期权市场对现货市场的反馈结构,原因只有一个:
Gamma 在时间维度上的极端集中。
期权的 Gamma(delta 对标的价格的敏感度)随到期临近向平值处坍缩。一张一个月后到期的期权,Gamma 平摊在很宽的价格区间上;一张 4 小时后到期的期权,Gamma 是一根扎在行权价上的尖刺。做市商持有的每一张期权都需要 delta 对冲,Gamma 越尖,同样的价格变动逼出的对冲交易量越大。
0DTE 的流行等于把整个期权市场的对冲流从「温和的背景噪音」改造成「日内高频的机械洪流」。这篇文章用模拟把这套机制拆开:Gamma 集中到什么程度、对冲流如何改写日内波动结构、以及为什么同一天的市场可以既被压制又被引爆。
Gamma 的时间集中:5.8 倍只是开始#
先看最基础的事实。Black-Scholes 框架下 ATM 期权的 Gamma 近似正比于 ——剩余期限 进了分母的平方根。
from scipy.stats import norm
import numpy as np
def bs_gamma(S, K, T, sigma, r=0.0):
d1 = (np.log(S/K) + (r + 0.5*sigma**2)*T) / (sigma*np.sqrt(T))
return norm.pdf(d1) / (S * sigma * np.sqrt(T))
# 同一张 ATM 期权,不同剩余期限
for label, T in [("剩4小时", 4/6.5/252), ("1天", 1/252),
("1周", 5/252), ("1月", 21/252)]:
print(label, round(bs_gamma(100, 100, T, 0.20), 4))python模拟结果(σ=20%,S=K=100):
| 剩余期限 | ATM Gamma 峰值 | 相对 1 月期 |
|---|---|---|
| 剩 4 小时(0DTE) | 0.404 | 5.8x |
| 1 天 | 0.317 | 4.6x |
| 1 周 | 0.142 | 2.0x |
| 1 月 | 0.069 | 1.0x |

注意两点。第一,5.8 倍只是「早盘还剩 4 小时」时的快照——Gamma 随 发散,到尾盘最后半小时,倍数还要再翻几倍。第二,Gamma 集中的同时宽度变窄:1 月期期权在 90~110 都有可观 Gamma,0DTE 的 Gamma 挤在 ±2 元以内。这意味着 0DTE 的对冲流是局部的、状态依赖的:价格在行权价附近时洪流汹涌,离开两块钱就迅速归零。
对冲流的方向:谁持有 Gamma 决定市场性格#
做市商的规则很机械:客户买期权,做市商就是卖方,持有负 Gamma;客户卖期权,做市商持有正 Gamma。然后 delta 对冲不看基本面,只看价格:
- 做市商正 Gamma:价格涨 → delta 变正 → 需要卖出标的。价格跌 → 需要买入。对冲流高抛低吸,像阻尼器一样压制波动;
- 做市商负 Gamma:价格涨 → 需要买入追涨,价格跌 → 需要卖出杀跌。对冲流顺势加压,像放大器。
我们用一个最小模型验证:78 根 5 分钟 bar,基本面冲击相同,对冲流对上一根 bar 的价格变动做滞后反应,价格冲击系数 λ=0.15、对冲强度 0.6,跑 800 条路径:
def simulate(gamma_sign, intensity):
# gamma_sign=+1: 做市商正gamma(反向对冲) -1: 负gamma(顺向)
prev_r = 0.0
for i in range(n_steps):
r_fund = shock[i] # 基本面冲击
r_hedge = -gamma_sign * lam * intensity * prev_r # 对冲流
r = r_fund + r_hedge
prev_r = rpython| 场景 | 5分钟收益自相关 | 日频年化波动 |
|---|---|---|
| 无对冲流 | -0.014 | 17.4% |
| 正 Gamma(客户净卖 0DTE) | -0.098 | 17.0% |
| 负 Gamma(客户净买 0DTE) | +0.074 | 19.6% |

关键读法:三组的基本面冲击分布完全相同,唯一区别是对冲流的符号。正 Gamma 日每一步价格变动都被部分「拉回」,产生负自相关,日频波动被压缩;负 Gamma 日每一步被「顺推」,产生正自相关,日频波动放大 15%。
对策略的直接含义:同一个市场,隔着做市商敞口的符号,动量策略和均值回归策略的适用性直接互换。正 Gamma 日做日内动量是在跟对冲洪流对着干;负 Gamma 日做均值回归是在接飞刀。
日内结构:尾盘的波动翘尾被 0DTE 改陡#
0DTE 有一个多日期权没有的特征:它的 Gamma 在一天之内完成从平缓到发散的全过程。早盘剩 6 小时,Gamma 还算温和;尾盘剩 30 分钟,ATM Gamma 爆表。这意味着 0DTE 的对冲流强度有一个内生的日内爬坡。
把经典的日内波动 U 形(开盘高、午盘低、尾盘翘)作为基线,叠加随 Gamma 剖面增强的 0DTE 对冲贡献(假设当日为负 Gamma 敞口):
| 尾盘 30 分钟相对波动强度 | 数值 |
|---|---|
| 无 0DTE 对冲流 | 1.36 |
| 0DTE 占比 30% | 1.65 |
| 0DTE 占比 50% | 1.85 |

这与美股市场近年被反复讨论的现象一致:尾盘半小时的成交与波动占比上升,且大幅日内反转(或加速)更频繁地发生在 14:00 之后——那正是 0DTE Gamma 开始发散、做市商对冲误差容忍度归零的时段。
尾部:负 Gamma 日的大波动概率翻倍#
对风险管理者,最重要的输出是日收益分布的形状。用同一套基本面冲击跑 4000 个交易日,只切换敞口符号:
| 正 Gamma 日 | 负 Gamma 日 | |
|---|---|---|
| 日收益 σ | 1.03% | 1.24% |
| |r|>2% 概率 | 5.22% | 11.25% |

同样的信息流,负 Gamma 日出现 2% 以上大波动的概率是正 Gamma 日的 2.2 倍。这就是「0DTE 加剧市场脆弱性」的准确表述——它不是每天都在放大波动,而是在客户净买入 0DTE、做市商被迫负 Gamma 的日子里,把本来 1.5% 的下跌加速成 2.5% 的下跌。2024 年 8 月 5 日的日元套息交易平仓日、以及多次 CPI 发布日的 V 形反转,都被广泛归因于这类对冲流的临界放大。
反过来,在平静期客户以卖出 0DTE 收权利金为主,做市商正 Gamma,指数呈现「阴跌不动、波动极低」的钉住状态——这也是 2023-2024 年 VIX 长期低位的结构性解释之一。
怎么用:监测而非预测#
对量化交易者,0DTE 的正确打开方式是把做市商 Gamma 敞口当作 regime 变量:
- 估计净敞口方向:从期权成交与持仓数据聚合 GEX(Gamma Exposure)剖面,定位 Gamma 翻转点。价格在翻转点上方按正 Gamma 环境处理,下方按负 Gamma 处理;
- 日内策略切换:正 Gamma 环境下均值回归胜率提升,负 Gamma 环境下动量与突破策略占优、且需放宽止损(波动被放大是结构性的,不是噪声);
- 尾盘风控:0DTE 占比高的日子,避免在最后 30 分钟挂大额市价单——你的对手盘里有一台不看价格、只算 delta 的对冲机器;
- 波动交易:负 Gamma 日的已实现波动系统性高于隐含定价时,买入日内跨式的期望改善;正 Gamma 日反之。
诚实边界#
方向不可直接观测。 GEX 计算依赖「客户买 call 卖 put」之类的符号惯例,散户爆买 call 的日子(meme 股、事件日)惯例整体算反。0DTE 恰恰是散户参与度最高的品种,符号误判风险最大。
OI 快照滞后。 0DTE 的持仓在日内从零建立、到收盘归零,隔夜 OI 数据完全失效,日内成交流推断有噪声。
放大是条件性的。 本文模拟中对冲强度、价格冲击系数都是外生常数;真实市场中做市商会调整对冲频率、用期权对冲期权,反馈强度在危机中非线性跳升、在平静期远低于模型。把 0DTE 当作「每天都在制造崩盘」是对机制的误读——它是干柴,不是火柴。