0DTE期权风险高吗?Gamma和Theta怎么看
比较SPY当日到期期权与一个月期权的Gamma、Theta和权利金,了解标的需要波动多远才能翻倍,判断风险究竟来自合约还是仓位。
0DTE期权风险高吗?从机制上看,是的:当日到期期权将一个月期期权的gamma和theta压缩在一个交易时段内,其权利金可能因SPY在普通一周内的波动而翻倍或归零。不过,真正导致散户账户资金耗尽的通常不是这种工具,而是仓位规模。以下数据来自2026年6月实际交易的SPY合约。
为什么0DTE期权比期限更长的期权风险更高?
0DTE期权是在最后交易日交易的合约(DTE指距离到期的天数;什么是0DTE期权一文介绍了基本概念)。当合约剩余时间从数周缩短至数小时时,会发生三项变化。
没有时间修复损失。剩余30天的合约可以承受不利波动并等待价格回升;当日到期的合约则无法等待。对于平值0DTE期权,权利金中的每一美元时间价值都会在收盘时归零。
Gamma高度集中。Delta表示期权对标的资产一美元变动的敏感度;Gamma表示标的资产变动时Delta的变化速度。临近到期时,Gamma会在行权价附近集中,SPY的小幅波动也可能使合约Delta从接近0大幅升至接近1(期权Gamma解析介绍了其运行机制)。
相对于权利金而言,Theta极高。Theta表示期权仅因时间流逝每天损失的价值;对于当日到期合约,按定义,Theta对应整个权利金(期权Theta介绍了合约存续期内的变化曲线)。
第一张图对这一点进行了定价分析。我们提取了2026年6月每个交易日的所有平值SPY看涨期权(行权价与SPY收盘价的偏离幅度不超过四分之一个百分点),按距离到期的天数对合约分组,并计算其平均权利金,以及SPY需要上涨多少才能收回权利金成本。
剩余一个日历日的合约平均成本为$3.02,相当于SPY价格的0.41%;相比之下,剩余21至45天的合约成本为$14.27(1.92%)。breakeven_move_pct列表示,期权到期时,SPY收盘价必须高于行权价多少,该看涨期权的价值才等于其成本;double_move_pct是这一幅度的两倍。delta_move_pct列是针对当日交易的一级近似值:仅凭合约当前的Delta,SPY需要变动到什么幅度,合约才能赚回或损失全部权利金。对于次日到期合约,该数值为0.79%;对于剩余一个月的合约,该数值为3.56%。请将这两项数据与下方到期日面板中的SPY日波动进行比较。
SPY需要移动多少,才能让0DTE期权权利金翻倍或归零?
按每一美元权利金比较才公平,因为一份具有较大希腊值的低价合约,可能与一份希腊值较小的高价合约承载相同的美元敞口。下一面板将同一组2026年6月合约的gamma和theta除以权利金,并将每一档表示为21至45天档的倍数。
| 到期天数区间 | 每美元权利金的Gamma | 每日Theta (%) | 相对月外Gamma比率 | 相对月外Theta比率 |
|---|---|---|---|---|
| 1 day (next session) | 0.0295 | 51.8 | 31.8 | 28.7 |
| 2-5 days | 0.0093 | 17 | 10 | 9.4 |
| 6-10 days | 0.0047 | 6.9 | 5.1 | 3.9 |
| 11-20 days | 0.0023 | 3.9 | 2.5 | 2.2 |
| 21-45 days | 0.0009 | 1.8 | 1 | 1 |
每个数字背后的完整 SQL
WITH atm_calls AS
(
SELECT
days_to_expiry AS dte,
toFloat64(option_close) AS premium,
toFloat64(gamma) AS gma,
toFloat64(theta) AS tht
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND lower(toString(option_type)) IN ('call', 'c')
AND date >= toDate('2026-06-01')
AND date < toDate('2026-07-01')
AND days_to_expiry > 0
AND days_to_expiry <= 45
AND iv_converged = 1
AND volume > 0
AND option_close > 0
AND toFloat64(delta) BETWEEN 0.2 AND 0.8
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.0025
),
ladder AS
(
SELECT
multiIf(dte <= 1, '1 day (next session)',
dte <= 5, '2-5 days',
dte <= 10, '6-10 days',
dte <= 20, '11-20 days',
'21-45 days') AS dte_bucket,
min(dte) AS dte_lo,
avg(gma / premium) AS gamma_raw,
avg(abs(tht) / premium) * 100 AS theta_raw
FROM atm_calls
GROUP BY dte_bucket
)
SELECT
dte_bucket,
round(gamma_raw, 4) AS gamma_per_premium_dollar,
round(theta_raw, 1) AS theta_pct_per_day,
round(gamma_raw / (SELECT gamma_raw FROM ladder WHERE dte_bucket = '21-45 days'), 1) AS gamma_ratio_vs_month_out,
round(theta_raw / (SELECT theta_raw FROM ladder WHERE dte_bucket = '21-45 days'), 1) AS theta_ratio_vs_month_out
FROM ladder
ORDER BY dte_lo按每一美元权利金计算,次日到期合约的gamma为0.0295,而一个月后到期合约为0.0009,即31.8比1。次日到期合约的theta每天消耗权利金的51.8%,一个月后到期合约则为1.8%,即28.7比1。
收盘时的翻倍和归零计算只取决于到期收益。看涨期权的价值等于SPY收盘价减去行权价,或为零。若在平值买入,SPY收盘价高于行权价两个权利金时,期权价值翻倍(相当于次日到期合约SPY价格的0.81%);若SPY收盘价等于或低于行权价,期权价值归零。价格不变就足以使其归零。一个月后到期合约需要在到期时高于行权价3.84%,才能实现翻倍;SPY有数周时间达到该水平,投资者也可以在此期间卖出期权。收益结构相同,但时间窗口不同;期权在此期间的价格变化,则由希腊值反映时间因素的影响。
为什么Gamma会集中在行权价附近
Gamma在标的价格所在位置达到峰值,向两侧逐渐下降。距离到期日越近,峰值越尖锐。图中将Gamma表示为SPY价格变动1%带来的Delta变化,即Gamma乘以SPY价格再除以100。数据按平值两侧每0.5%的价格区间计算,覆盖2026年6月。图中采用高于现货价格的虚值看涨期权,以及低于现货价格的虚值看跌期权。同一行权价的两者具有相同的Gamma。
| 价内程度 | 次日Delta变化 | 月外Delta变化 |
|---|---|---|
| -2% | 0.078 | 0.071 |
| -1.5% | 0.131 | 0.077 |
| -1% | 0.224 | 0.081 |
| -0.5% | 0.372 | 0.087 |
| 0% | 0.497 | 0.092 |
| +0.5% | 0.388 | 0.097 |
| +1% | 0.211 | 0.098 |
| +1.5% | 0.094 | 0.097 |
| +2% | 0.042 | 0.095 |
每个数字背后的完整 SQL
SELECT
concat(if(half_pct > 0, '+', ''), toString(half_pct / 2), '%') AS moneyness,
round(avgIf(gma * spot / 100, dte <= 1), 3) AS next_day_delta_shift,
round(avgIf(gma * spot / 100, dte BETWEEN 21 AND 45), 3) AS month_out_delta_shift
FROM
(
SELECT
toInt32(round((toFloat64(strike_price) / toFloat64(underlying_close) - 1) * 200)) AS half_pct,
days_to_expiry AS dte,
toFloat64(gamma) AS gma,
toFloat64(underlying_close) AS spot
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND date >= toDate('2026-06-01')
AND date < toDate('2026-07-01')
AND ((days_to_expiry > 0 AND days_to_expiry <= 1) OR days_to_expiry BETWEEN 21 AND 45)
AND iv_converged = 1
AND volume > 0
AND option_close > 0
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.0225
AND ((lower(toString(option_type)) IN ('call', 'c') AND strike_price >= underlying_close)
OR (lower(toString(option_type)) IN ('put', 'p') AND strike_price < underlying_close))
)
GROUP BY half_pct
HAVING countIf(dte <= 1) > 0 AND countIf(dte BETWEEN 21 AND 45) > 0
ORDER BY half_pct在行权价处,标的价格变动1%会使次日到期合约的Delta变动0.497,使月度到期合约的Delta变动0.092。高于平值2%处,这两个数值分别为0.042和0.095。一条线呈尖峰形,另一条则较为平缓。临近行权价的当日到期合约,每当SPY变动几美元,其方向性敞口就会重新调整。这正是到期日钉住风险的集中体现。
一个月内在同一天买入 SPY 看涨期权的实际结果
希腊字母描述的是价格在局部范围内的变化。要观察完整结果,下面的面板按到期日逐份分析合约:针对 2026 年 6 月的每个 SPY 到期日,选取行权价最接近到期日前一交易日 SPY 收盘价的看涨期权,记录该晚的收盘价(即次日开盘时屏幕上显示的价格,不考虑任何跳空),然后在到期日收盘时为合约估值:SPY 收盘价减去行权价;如果 SPY 收于行权价或以下,则价值为零。期权到期后,看涨期权的价值就是如此。
| 到期日 | 到期标签 | 前收权利金 | 到期价值 | 剩余权利金 (%) | SPY变动 (%) |
|---|---|---|---|---|---|
| 2026-06-01 | Mon Jun 1 | 2.5 | 0.58 | 23 | 0.12 |
| 2026-06-02 | Tue Jun 2 | 2.71 | 2.63 | 97 | 0.4 |
| 2026-06-03 | Wed Jun 3 | 1.62 | 0 | 0 | -1.2 |
| 2026-06-04 | Thu Jun 4 | 3.99 | 3.56 | 89 | 0.53 |
| 2026-06-05 | Fri Jun 5 | 2.98 | 0 | 0 | -2.54 |
| 2026-06-08 | Mon Jun 8 | 3.95 | 3.72 | 94 | 0.46 |
| 2026-06-09 | Tue Jun 9 | 2.75 | 0 | 0 | -0.41 |
| 2026-06-10 | Wed Jun 10 | 3.61 | 0 | 0 | -1.74 |
| 2026-06-11 | Thu Jun 11 | 5.44 | 16.48 | 303 | 2.3 |
| 2026-06-12 | Fri Jun 12 | 3.5 | 3.45 | 99 | 0.4 |
| 2026-06-15 | Mon Jun 15 | 3.48 | 11.91 | 342 | 1.54 |
| 2026-06-16 | Tue Jun 16 | 2.22 | 0 | 0 | -0.42 |
| 2026-06-17 | Wed Jun 17 | 2.23 | 0 | 0 | -0.69 |
| 2026-06-18 | Thu Jun 18 | 0.89 | 0.94 | 106 | 0.18 |
| 2026-06-22 | Mon Jun 22 | 3.15 | 0 | 0 | -0.44 |
| 2026-06-23 | Tue Jun 23 | 2.78 | 0 | 0 | -1.16 |
| 2026-06-24 | Wed Jun 24 | 2.75 | 2.2 | 80 | 0.3 |
| 2026-06-25 | Thu Jun 25 | 2.68 | 0 | 0 | -0.61 |
| 2026-06-26 | Fri Jun 26 | 3.61 | 0 | 0 | -0.2 |
| 2026-06-29 | Mon Jun 29 | 3.86 | 9.76 | 253 | 1.31 |
每个数字背后的完整 SQL
WITH spy_by_day AS
(
SELECT
toDate(date) AS d,
medianExact(toFloat64(underlying_close)) AS spot
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND date >= toDate('2026-06-01')
AND date < toDate('2026-07-01')
AND underlying_close > 0
GROUP BY d
),
last_sessions AS
(
SELECT
toDate(expiration_date) AS exp_date,
max(toDate(date)) AS prior_session
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND expiration_date >= toDate('2026-06-01')
AND expiration_date < toDate('2026-07-01')
AND date >= toDate('2026-05-22')
AND date < expiration_date
AND volume > 0
GROUP BY exp_date
),
atm AS
(
SELECT
toDate(g.expiration_date) AS exp_date,
argMin(toFloat64(g.strike_price), abs(toFloat64(g.strike_price) - toFloat64(g.underlying_close))) AS strike,
argMin(toFloat64(g.option_close), abs(toFloat64(g.strike_price) - toFloat64(g.underlying_close))) AS premium_before,
argMin(toFloat64(g.underlying_close), abs(toFloat64(g.strike_price) - toFloat64(g.underlying_close))) AS spy_before
FROM global_markets.options_greeks AS g
INNER JOIN last_sessions AS ls
ON ls.exp_date = toDate(g.expiration_date) AND ls.prior_session = toDate(g.date)
WHERE g.underlying_symbol = 'SPY'
AND lower(toString(g.option_type)) IN ('call', 'c')
AND g.date >= toDate('2026-05-22')
AND g.date < toDate('2026-07-01')
AND g.volume > 0
AND g.option_close > 0
GROUP BY exp_date
)
SELECT
toString(a.exp_date) AS expiry_date,
concat(formatDateTime(a.exp_date, '%a %b '), toString(toDayOfMonth(a.exp_date))) AS expiry_label,
round(a.premium_before, 2) AS premium_prior_close,
round(greatest(s.spot - a.strike, 0.0), 2) AS value_at_expiry,
round(greatest(s.spot - a.strike, 0.0) / a.premium_before * 100, 0) AS pct_of_premium_left,
round((s.spot / a.spy_before - 1) * 100, 2) AS spy_move_pct
FROM atm AS a
INNER JOIN spy_by_day AS s
ON s.d = a.exp_date
ORDER BY a.exp_date在 Mon Jun 1,该合约前一晚收于 $2.5,到期日收盘时价值为 $0.58,相当于权利金的 23%;两个收盘价之间,SPY 变动了 0.12%。最后一行 Tue Jun 30 则从 $2.31 变为 $5.3,期间 SPY 变动了 0.75%。按结果排序如下:
| 结果 | 到期日 |
|---|---|
| 1. Finished at or near zero (5% of the premium or less) | 10 |
| 2. Lost more than half | 1 |
| 3. Lost up to half | 5 |
| 4. Gained, less than doubled | 1 |
| 5. Doubled or better | 4 |
每个数字背后的完整 SQL
WITH spy_by_day AS
(
SELECT
toDate(date) AS d,
medianExact(toFloat64(underlying_close)) AS spot
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND date >= toDate('2026-06-01')
AND date < toDate('2026-07-01')
AND underlying_close > 0
GROUP BY d
),
last_sessions AS
(
SELECT
toDate(expiration_date) AS exp_date,
max(toDate(date)) AS prior_session
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND expiration_date >= toDate('2026-06-01')
AND expiration_date < toDate('2026-07-01')
AND date >= toDate('2026-05-22')
AND date < expiration_date
AND volume > 0
GROUP BY exp_date
),
atm AS
(
SELECT
toDate(g.expiration_date) AS exp_date,
argMin(toFloat64(g.strike_price), abs(toFloat64(g.strike_price) - toFloat64(g.underlying_close))) AS strike,
argMin(toFloat64(g.option_close), abs(toFloat64(g.strike_price) - toFloat64(g.underlying_close))) AS premium_before
FROM global_markets.options_greeks AS g
INNER JOIN last_sessions AS ls
ON ls.exp_date = toDate(g.expiration_date) AND ls.prior_session = toDate(g.date)
WHERE g.underlying_symbol = 'SPY'
AND lower(toString(g.option_type)) IN ('call', 'c')
AND g.date >= toDate('2026-05-22')
AND g.date < toDate('2026-07-01')
AND g.volume > 0
AND g.option_close > 0
GROUP BY exp_date
),
outcomes AS
(
SELECT
a.exp_date AS exp_date,
greatest(s.spot - a.strike, 0.0) / a.premium_before AS premium_ratio
FROM atm AS a
INNER JOIN spy_by_day AS s
ON s.d = a.exp_date
)
SELECT
tupleElement(b, 1) AS outcome,
countIf(o.premium_ratio >= tupleElement(b, 2) AND o.premium_ratio < tupleElement(b, 3)) AS expiries
FROM
(
SELECT arrayJoin([
('1. Finished at or near zero (5% of the premium or less)', -1.0, 0.05),
('2. Lost more than half', 0.05, 0.5),
('3. Lost up to half', 0.5, 1.0),
('4. Gained, less than doubled', 1.0, 2.0),
('5. Doubled or better', 2.0, 1000000.0)
]) AS b
) AS buckets
CROSS JOIN outcomes AS o
GROUP BY outcome
ORDER BY outcome在 21 个到期日中,10 个合约最终归零或接近归零,1 个合约跌幅超过一半,5 个合约跌幅不超过一半,1 个合约上涨但未翻倍,4 个合约翻倍或涨幅更高。实际交易不会完全采用这种方式(大多数 0DTE 仓位会在当日开仓并平仓),而且这项统计并不能说明是否盈利。它反映的是结果的离散程度:几美元的权利金在一个交易日内、随着一个个到期日过去,可能变成原来的一个零头,也可能变成原来的数倍。
看似便宜的远价外行权价为何成本更高
距平值两到三个百分点的当日到期合约,交易价格只有几美分,买卖盘价差却往往达到几美分。假设买价为0.08美元、卖价为0.12美元,0.04美元的价差相当于0.10美元中间价的40%。这部分成本在 SPY 价格发生任何变动前就已经付出。相比之下,报价为2.48至2.50美元的平值合约,成交价差不到1%。远价外行权价的Delta也较低,因此需要标的大幅波动才可能产生收益;其低廉的价格还容易诱使投资者加大仓位。以美元计价便宜,并不意味着价差成本低,获利概率也不高。
SPX与SPY:现金结算、指派和下午5:30截止时间
SPX指数期权采用现金结算和欧式行权方式:合约到期时,以结算值与行权价之间的差额进行现金结算,不涉及股票,也不存在指派。SPY和QQQ期权采用美式行权方式并进行实物交割。若SPY看涨期权到期时高于行权价哪怕一美分,每张合约也会对应100股;看跌期权则对应100股空头。持有人可在到期日美东时间下午5:30 OCC截止时间前提交行权指令,时间明显晚于下午4:00收盘(券商通常会设定更早的截止时间)。SPY在收盘后仍会交易,因此,一份收盘时低于行权价几美分的合约仍可能转为价内,并被行权到卖方头上,而卖方可能以为合约已经到期失效。出于这一原因,SPY的0DTE卖出期权交易者通常会在收盘前平仓;许多指数交易者则偏好SPX,税务处理另见SPX与SPY期权。SPX月度合约在开盘时结算,周度合约在收盘时结算;上午结算与下午结算期权详细介绍了两者的区别。
风险来自工具本身,还是仓位规模?
当日到期合约如今已占据指数期权交易的大多数。Cboe报告称,2025年2月,0DTE占SPX期权成交量的56%,创当时纪录;2025年第三季度,0DTE占SPX日均成交量的57%。其中大部分成交由持仓数分钟至数小时的交易者完成。这些交易者通常将仓位控制在账户资金的一定比例内。上述交易机制对他们和其他交易者并无不同。
真正导致账户大幅亏损的差异在于仓位规模。单份合约的结果分布由希腊值和收益结构决定;账户层面的结果,则是这一分布乘以合约数量。一份2美元的合约看起来很便宜。买入10份就是2,000美元,到下午4点可能归零。对于10,000美元的账户而言,一次下午的交易就可能造成20%的回撤;而弥补20%的亏损,需要获得25%的收益。最大回撤指南介绍了这一计算方式,期权交易的风险有多大则将同一分析框架应用于期限更长的合约。
零日期权交易的风险确定性示例
风险确定,意味着最大亏损在入场时已知且已支付。对初学者而言,以下两种结构符合这一要求:
- 买入看涨期权或看跌期权。最大亏损就是权利金。上方图表展示了该权利金在一个交易日内的变化。
- 借记垂直价差:在同一到期日买入一个行权价的期权,同时卖出更远行权价的期权。最大亏损是净借记;最大收益是两个行权价之间的距离减去该借记。卖出的一腿可以降低成本,同时限制收益和 gamma。
贷记价差同样具有明确的最大亏损,即行权价宽度减去收到的权利金。但它在赚取 theta 的同时,也承担集中 gamma 风险;在 SPY 中,空头腿还可能被指派。裸卖期权完全没有明确的最大亏损(裸卖期权的保证金解释了原因)。0DTE 策略指南将介绍每种结构的具体用法。
本页其余内容——gamma、theta、价差和结算规则——都是合约本身的属性,无法由交易者调低。交易者能够设定的唯一变量是合约数量。发布仓位管理规则的交易者通常遵循一项惯例:将单笔 0DTE 仓位的权利金控制在账户资产中一个较小且固定的比例,1% 是经常被引用的数值。控制在这一规模时,即使全部亏损,也只是一次常见的糟糕交易日,而不是需要数月才能收复的回撤。
常见问题
0DTE期权是否比普通期权风险更高?
按每美元权利金计算,是的。2026年6月,一份剩余一天到期的平值 SPY 看涨期权,其 gamma 是21至45天期合约的 31.8 倍,日 theta 是 28.7 倍,而且没有时间从不利走势中恢复。买入合约的美元风险仍以权利金为上限;会扩大的风险来自持仓规模。
0DTE期权的亏损会超过买入成本吗?
买入期权时不会:多头看涨或看跌期权最多亏损权利金。卖出未备兑期权的亏损可能远超收到的权利金;在 SPY 或 QQQ 中,到期时处于价内的空头期权会被指派,每份合约对应100股。定义风险的价差策略将亏损上限设为执行价差额减去收到的权利金。
如果0DTE SPY期权到期时处于价内,会发生什么?
如果到期时价内幅度达到0.01美元或以上,期权将自动行权:看涨期权每份合约转为100股 SPY,看跌期权每份合约转为100股 SPY 空头,并于下一个营业日结算。持有人也可以在 OCC 规定的美国东部时间下午5:30截止时间前提交行权指令或放弃行权,券商通常会设定更早的截止时间。SPX期权则采用现金结算,不涉及股票。
0DTE期权的 gamma 是否更高?
是的,而且 gamma 会集中在执行价附近。2026年6月,SPY 上涨或下跌1%时,剩余一天到期的平值合约 delta 变动了 0.497,而21至45天期合约的变动为 0.092;当价格偏离平值达到2%时,次日期权的该数值降至 0.042。
什么是定义风险的0DTE交易?
指开仓时就确定最大亏损的交易:多头看涨或看跌期权最多亏损权利金,借方价差最多亏损净借方金额。交易结构决定最大亏损;合约数量决定这一最大亏损是否在可承受范围内。
上方每个面板都附带生成相应数据的 SQL。若要在 QQQ 上运行相同的阶梯分析,或改用其他月份,请在 Strasmore 终端中打开任意查询并修改标的代码或日期。