期权成交量与未平仓合约数详解
成交量统计当天交易的合约,未平仓合约数统计仍在市场中的合约。本文解释二者定义、变化机制,并统计2026年7月6日美国期权市场全天成交情况。
期权成交量统计当天易手的合约数量;未平仓合约数统计当前存在的合约,即已开仓但尚未平仓的头寸。成交量在整个交易时段内逐笔累加;未平仓合约数则由期权清算公司(OCC)在收盘后每天重新计算一次。看跌期权/看涨期权比率基于成交量计算。本页将分别定义这两个指标,说明影响其变化的交易机制,统计2026年7月6日(星期一)美国期权市场全天的成交情况,并介绍官方未平仓合约数据的发布位置。
期权成交量是什么?
成交量是指当前交易时段内成交的期权合约数量。每笔交易都会按其成交数量计入;一笔500张合约的整笔交易计入500张,而不是买卖双方各计一次。成交量会在下一交易日开盘时重置为零。成交量是一个实时数据,会随着交易成交不断更新,并显示在由OPRA(期权价格报告机构)运营的综合行情带上。本页面根据已存储的行情带数据计算成交量。
什么是未平仓合约数?
未平仓合约数(OI)是指当前尚未了结的合约数量:这些合约已经开仓,但尚未通过反向交易、行权或到期平仓。该数据按合约分别统计;每个行权价、到期日和期权类型都有自己的数值。未平仓合约数不会重置,而是持续累积。
未平仓合约数不是实时数据。OCC 是所有美国上市期权背后的清算机构。每个交易日结束后,OCC 会核对开仓和闭仓头寸,并在下一交易日开盘前公布更新后的数量。经纪商期权链上下午两点显示的 OI,实际上只是前一晚的统计值。
本页使用的成交数据记录的是交易,而不是持仓。数据中没有未平仓合约数这一列,下面各面板显示的也都是成交量。它可以展示二者如何相互关联:一笔交易如何同时影响成交量和未平仓合约数,成交量中最多有多少可能转化为未平仓合约数,以及 OI 监测界面所关注的变化节奏。官方数据另有来源,下一节将说明查询位置。
单笔交易如何改变成交量和未平仓合约数?
每笔期权交易都有买卖双方;双方分别选择开仓或平仓。以下通过三笔假设交易,说明一份全新的合约如何变化:
- 交易者A买入开仓一份合约,交易者B卖出开仓。成交量:增加1。未平仓合约数:增加1。市场上新增一份合约,A持有多头,B持有空头。
- 随后,A卖出平仓,交易者C买入开仓。成交量:再增加1(当日累计为2)。未平仓合约数:不变。多头持有人发生变化,但市场上仍有一份未平仓合约。
- 最后,C卖出平仓,B买入平仓空头头寸。成交量:再增加1。未平仓合约数:减少1,回到零。双方都已平仓,该合约不再存在。
每笔交易都会增加成交量。只有买卖双方都开仓时,未平仓合约数才会增加;只有双方都平仓时,未平仓合约数才会减少;其他情况下则保持不变。这里有一个重要结论:某份合约当日的成交量,决定了其未平仓合约数隔夜变动的上限。逐笔成交记录不会显示每笔交易属于哪种开平仓组合;OCC会在收盘后完成结算。
一天的期权成交量是什么样?
下方面板汇总了2026年7月6日(星期一)美国期权市场的全部成交数据。
| 合约数(百万) | 交易数(百万) | 不同合约数 | 不同标的代码数 | 看涨合约数(百万) | 看跌合约数(百万) | 看跌/看涨比率 | 当日到期占比 |
|---|---|---|---|---|---|---|---|
| 60.6 | 10.5 | 340203 | 4654 | 35.5 | 25.1 | 0.71 | 38.8 |
每个数字背后的完整 SQL
SELECT
round(sum(volume) / 1e6, 1) AS contracts_m,
round(sum(transactions) / 1e6, 1) AS trades_m,
uniqExact(ticker) AS distinct_contracts,
uniqExact(substring(ticker, 3, length(ticker) - 17)) AS distinct_roots,
round(sumIf(volume, substring(ticker, length(ticker) - 8, 1) = 'C') / 1e6, 1) AS call_contracts_m,
round(sumIf(volume, substring(ticker, length(ticker) - 8, 1) = 'P') / 1e6, 1) AS put_contracts_m,
round(toFloat64(sumIf(volume, substring(ticker, length(ticker) - 8, 1) = 'P')) / toFloat64(sumIf(volume, substring(ticker, length(ticker) - 8, 1) = 'C')), 2) AS put_call_ratio,
round(100 * toFloat64(sumIf(volume, substring(ticker, length(ticker) - 14, 6) = '260706')) / toFloat64(sum(volume)), 1) AS same_day_expiry_pct
FROM global_markets.options_minute_aggs
WHERE window_start >= '2026-07-06 00:00:00' AND window_start < '2026-07-07 00:00:00'单个交易时段:60.6百万张合约,分布于10.5百万笔交易,涉及340203个不同合约和4654个标的代码。看涨期权成交量高于看跌期权,分别为35.5百万张和25.1百万张,put/call比率为0.71;所有成交量中,有38.8%来自当日到期的期权。
按半小时区间排列,同一交易时段的累计成交量变化如下:
| ET时间 | 合约数(百万) | 累计总数(百万) |
|---|---|---|
| 09:30 | 8.53 | 8.5 |
| 10:00 | 6.39 | 14.9 |
| 10:30 | 5.28 | 20.2 |
| 11:00 | 5.07 | 25.3 |
| 11:30 | 4.34 | 29.6 |
| 12:00 | 3.97 | 33.6 |
| 12:30 | 3.63 | 37.2 |
| 13:00 | 3.49 | 40.7 |
| 13:30 | 4 | 44.7 |
| 14:00 | 3.55 | 48.3 |
| 14:30 | 3.44 | 51.7 |
| 15:00 | 3.59 | 55.3 |
| 15:30 | 4.86 | 60.1 |
| 16:00 | 0.49 | 60.6 |
每个数字背后的完整 SQL
SELECT
formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
round(sum(volume) / 1e6, 2) AS contracts_m,
round(sum(sum(volume)) OVER (ORDER BY formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i')) / 1e6, 1) AS running_total_m
FROM global_markets.options_minute_aggs
WHERE window_start >= '2026-07-06 00:00:00' AND window_start < '2026-07-07 00:00:00'
GROUP BY et_time
ORDER BY et_time开盘半小时成交8.53百万张合约;到最后一笔成交时,累计成交量达到60.6百万张。(较小的16:00区间为美国东部时间下午4:00至4:15的指数期权尾盘时段。)图表中的每个点都代表成交量。OCC当天早上公布的计数在整个交易日内保持不变,下一次数据则在周二开盘前发布。
哪些单个合约的成交量最高?
每个期权的 OCC ticker 都编码了根代码、到期日、看涨/看跌类型和行权价;查询会解析这四项,因此表格内容一目了然:
| 合约 | 交易合约数 | 交易数 | 十个均于7月6日到期 | 十个均为SPY或QQQ |
|---|---|---|---|---|
| SPY $751 call, expires 2026-07-06 | 1082297 | 128107 | 1 | 1 |
| SPY $750 put, expires 2026-07-06 | 986392 | 106731 | 1 | 1 |
| SPY $752 call, expires 2026-07-06 | 911035 | 87708 | 1 | 1 |
| SPY $750 call, expires 2026-07-06 | 739555 | 116377 | 1 | 1 |
| SPY $751 put, expires 2026-07-06 | 735199 | 81507 | 1 | 1 |
| SPY $749 put, expires 2026-07-06 | 627447 | 74561 | 1 | 1 |
| SPY $753 call, expires 2026-07-06 | 587785 | 30301 | 1 | 1 |
| QQQ $725 call, expires 2026-07-06 | 520038 | 75367 | 1 | 1 |
| SPY $748 put, expires 2026-07-06 | 457351 | 48122 | 1 | 1 |
| QQQ $724 call, expires 2026-07-06 | 424104 | 66982 | 1 | 1 |
每个数字背后的完整 SQL
SELECT
contract,
contracts_traded,
trades,
toUInt8(min(expires_july_6) OVER ()) AS all_ten_expire_july_6,
toUInt8(min(root_is_spy_or_qqq) OVER ()) AS all_ten_spy_or_qqq
FROM (
SELECT
concat(substring(ticker, 3, length(ticker) - 17), ' $',
toString(round(toFloat64(toUInt32OrZero(substring(ticker, length(ticker) - 7, 8))) / 1000, 2)),
if(substring(ticker, length(ticker) - 8, 1) = 'P', ' put', ' call'),
', expires 20', substring(ticker, length(ticker) - 14, 2), '-', substring(ticker, length(ticker) - 12, 2), '-', substring(ticker, length(ticker) - 10, 2)) AS contract,
toUInt64(sum(volume)) AS contracts_traded,
toUInt64(sum(transactions)) AS trades,
substring(ticker, length(ticker) - 14, 6) = '260706' AS expires_july_6,
substring(ticker, 3, length(ticker) - 17) IN ('SPY', 'QQQ') AS root_is_spy_or_qqq
FROM global_markets.options_minute_aggs
WHERE window_start >= '2026-07-06 00:00:00' AND window_start < '2026-07-07 00:00:00'
AND match(substring(ticker, 3, length(ticker) - 17), '^[A-Z]+$')
AND substring(ticker, 3, length(ticker) - 17) NOT IN ('SPCX')
GROUP BY ticker
ORDER BY contracts_traded DESC, ticker ASC
LIMIT 10
)
ORDER BY contracts_traded DESC, contract ASC7月6日最活跃的单个合约是 SPY $751 call, expires 2026-07-06,共成交 1082297 张,分布在 128107 笔交易中。查看到期日:这十个合约均在同一个周一到期,并且属于两个根代码。每一行的成交量列都同时验证了这两点。合约在到期日当天交易,属于 0DTE期权,即距离到期日为零天的期权;它们构成了这张表:由 SPY 和 QQQ 行权价组成的紧密梯度。
现在将当日最大一笔成交放入未平仓合约数的计算中。SPY $751 call, expires 2026-07-06 在周一早间显示的任何未平仓合约数,都是前一晚的统计值,也是最后一次提及该合约的记录。全部 1082297 张合约的成交量都发生在最后交易日内;收盘时合约到期,下一份 OCC 文件会将其删除,按定义未平仓合约数归零。所有 0DTE 表格都适用这一点:这些合约在每日一次的未平仓合约数更新周期内完成交易并到期,其巨大成交量不会对应有意义的未平仓合约数记录。
哪些标的主导期权成交量?
按根代码汇总同一交易时段的数据。根代码是每个期权ticker的前导字母,通常对应标的资产的代码:
| 标的代码 | 合约数(百万) | 占成交记录百分比 | 不同合约数 | 当日到期占比 |
|---|---|---|---|---|
| SPY | 12.1 | 20 | 5747 | 70.2 |
| QQQ | 6.88 | 11.3 | 4661 | 72.4 |
| TSLA | 4.29 | 7.1 | 3266 | 65.4 |
| SPXW | 3.65 | 6 | 7407 | 73.2 |
| NVDA | 2.27 | 3.8 | 1984 | 49.3 |
| AAPL | 1.58 | 2.6 | 1706 | 56.9 |
| IWM | 1.35 | 2.2 | 1749 | 60.1 |
| AMZN | 0.79 | 1.3 | 1404 | 38.4 |
| META | 0.66 | 1.1 | 2730 | 55.1 |
| VIX | 0.65 | 1.1 | 405 | 0 |
每个数字背后的完整 SQL
SELECT
substring(ticker, 3, length(ticker) - 17) AS underlying_root,
round(sum(volume) / 1e6, 2) AS contracts_m,
round(100 * toFloat64(sum(volume)) / (SELECT toFloat64(sum(volume)) FROM global_markets.options_minute_aggs WHERE window_start >= '2026-07-06 00:00:00' AND window_start < '2026-07-07 00:00:00'), 1) AS pct_of_tape,
uniqExact(ticker) AS distinct_contracts,
round(100 * toFloat64(sumIf(volume, substring(ticker, length(ticker) - 14, 6) = '260706')) / toFloat64(sum(volume)), 1) AS same_day_expiry_pct
FROM global_markets.options_minute_aggs
WHERE window_start >= '2026-07-06 00:00:00' AND window_start < '2026-07-07 00:00:00'
AND match(substring(ticker, 3, length(ticker) - 17), '^[A-Z]+$')
AND substring(ticker, 3, length(ticker) - 17) NOT IN ('SPCX')
GROUP BY underlying_root
ORDER BY sum(volume) DESC, underlying_root ASC
LIMIT 10SPY以12.1百万张合约领跑当日,占单一根代码全部成交量的20%;其次是QQQ,成交量为6.88百万张(11.3%)。当日到期一栏与上表相互印证:领跑者的成交量中,有70.2%在当天下午到期。根代码并不总是对应可直接买入的代码。例如,标普500指数期权使用Cboe的SPX和SPXW根代码;同一标的会同时对应大量合约:仅领跑者名下就有5747种不同的行权价、到期日和期权类型组合成交。
当日成交量中有多少最终会进入未平仓量?
按距离到期日的时间分组拆分交易时段,未平仓量的影响可从下表直接看出:
| 到期时间 | 合约数(百万) | 成交量占比 | 不同合约数(千) | 合约数占比 |
|---|---|---|---|---|
| same day (0DTE) | 23.5 | 38.8 | 3 | 0.9 |
| 1-7 days | 15.3 | 25.3 | 47.1 | 13.8 |
| 8-31 days | 10.5 | 17.3 | 97.8 | 28.7 |
| 32-365 days | 10.5 | 17.3 | 168.8 | 49.6 |
| over a year | 0.8 | 1.3 | 23.6 | 6.9 |
每个数字背后的完整 SQL
WITH dateDiff('day', toDate('2026-07-06'), toDate(concat('20', substring(ticker, length(ticker) - 14, 2), '-', substring(ticker, length(ticker) - 12, 2), '-', substring(ticker, length(ticker) - 10, 2)))) AS dte
SELECT
multiIf(dte = 0, 'same day (0DTE)', dte <= 7, '1-7 days', dte <= 31, '8-31 days', dte <= 365, '32-365 days', 'over a year') AS expires_in,
round(sum(volume) / 1e6, 1) AS contracts_m,
round(100 * toFloat64(sum(volume)) / (SELECT toFloat64(sum(volume)) FROM global_markets.options_minute_aggs WHERE window_start >= '2026-07-06 00:00:00' AND window_start < '2026-07-07 00:00:00'), 1) AS pct_of_volume,
round(uniqExact(ticker) / 1e3, 1) AS distinct_contracts_k,
round(100 * toFloat64(uniqExact(ticker)) / (SELECT toFloat64(uniqExact(ticker)) FROM global_markets.options_minute_aggs WHERE window_start >= '2026-07-06 00:00:00' AND window_start < '2026-07-07 00:00:00'), 1) AS pct_of_contracts
FROM global_markets.options_minute_aggs
WHERE window_start >= '2026-07-06 00:00:00' AND window_start < '2026-07-07 00:00:00'
AND dte >= 0
GROUP BY expires_in
ORDER BY min(dte)当日到期合约最为极端:0.9%的当日独立合约数量(约3千张)贡献了38.8%的全部成交量,是所有分组中占比最高的部分,但这些成交都不可能出现在未来任何一次未平仓量数据中。另有25.3%的合约在一周内到期。上市合约整体则呈现相反特征:到期日在32至365天后的合约单独占独立合约数量的49.6%,而到期日在一年以上的合约占整体合约数量的6.9%,却仅贡献1.3%的成交量。期限较长的合约成交较为清淡,存续时间也更长,具备形成持续未平仓合约池的条件。
日常如何观察未平仓合约数量的变化?
未平仓合约数量监测页面会关注某份合约从一个交易日早盘数据到下一个交易日早盘数据的OI变化。以下是原始数据:一份长期合约连续十个交易日的情况,即到期日为2026年12月18日、行权价为620美元的SPY看跌期权:
| 交易时段 | 交易合约数 | 交易数 |
|---|---|---|
| 2026-06-22 | 15 | 7 |
| 2026-06-23 | 25 | 9 |
| 2026-06-24 | 26 | 10 |
| 2026-06-25 | 13 | 10 |
| 2026-06-26 | 21 | 11 |
| 2026-06-29 | 6 | 3 |
| 2026-06-30 | 9006 | 7 |
| 2026-07-01 | 9172 | 222 |
| 2026-07-02 | 10023 | 186 |
| 2026-07-06 | 20 | 7 |
每个数字背后的完整 SQL
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS session,
toUInt64(sum(volume)) AS contracts_traded,
toUInt64(sum(transactions)) AS trades
FROM global_markets.options_minute_aggs
WHERE window_start >= '2026-06-22 00:00:00' AND window_start < '2026-07-07 00:00:00'
AND ticker = 'O:SPY261218P00620000'
GROUP BY session
ORDER BY session连续六个交易日里,这份合约几乎没有成交,每天从未超过几十份,最低仅为6,出现在2026-06-29。在这些交易日中,其未平仓合约数量基本没有变化;上限规则会将隔夜变化限制在当天这几份合约的规模内。随后连续三个交易日分别成交了9006、9172和10023份合约。“交易笔数”一栏提供了更多信息:第一轮2026-06-30份合约的放量仅通过7笔交易完成,属于大宗订单;下一交易日的相近成交量则分散在222笔交易中。到2026-07-06时,成交记录已回落至20份合约。
仅凭成交量,无法判断这轮放量对未平仓合约数量产生了什么影响:可能是建立新仓、平仓,或只是持仓在不同交易者之间转手。次日上午公布的OCC数据可以给出答案:放量同时未平仓合约数量上升,通常意味着建立新仓;未平仓合约数量下降,通常意味着平仓;成交量很大但未平仓合约数量持平,则通常意味着持仓发生转手。交易者在监测页面上关注的,正是这种日环比变化。
在哪里可以查看未平仓合约数?
任何成交量表都不会提供这一数据。官方数据位于以下渠道:
- OCC:在 theocc.com 的市场数据栏目按合约公布每日成交量和未平仓合约数。数据每天早间更新,是其他平台转发的源头数据。
- 您的券商期权链:在成交量旁边查看“Open Interest”(或“Open Int”)列。该数据按行权价和到期日列示,显示前一晚的未平仓合约数,并在全天持续显示。
- 挂牌交易所:Cboe 及其他交易所会在市场统计页面发布成交量和未平仓合约数汇总。
需要注意的是,“最大痛点”(即最多期权价值将到期归零的行权价)需要完整的逐行权价未平仓合约分布数据。任何成交量表都无法计算最大痛点,本页面也不例外。请使用 OCC 或交易所数据查看最大痛点,不要依赖成交量界面。若想了解这一分布数据的实际用途,可查看真实 SPY 期权链上的最大痛点计算。该示例会逐一按行权价计算,并将结果与实际结算位置进行核对。
交易者如何结合成交量与未平仓合约判断市场?
将两者并列观察,可以从不同角度了解合约的流动性:一个反映当天的交易活跃度,另一个反映市场中持续存在的持仓规模:
- 成交量大,未平仓合约多。 当天交易活跃,且已有较大的持仓基础。这种组合通常对应最紧的报价市场。
- 成交量大,未平仓合约少。 换手旺盛,但延续持仓较少。这通常是当日到期交易或新建仓位的特征。
- 成交量小,未平仓合约多。 持仓较早建立,目前仍未平仓,但当天交易不活跃。
- 成交量小,未平仓合约少。 合约流动性较低,买卖报价更宽,规模不大的订单也可能推动价格变动;应先查看买卖价差。
两项数据都不能说明方向:成交量将买方和卖方的交易合并统计,未平仓合约则将每份合约的多头和空头各计为一份。因此,两名交易者可能对同一份活跃交易的合约持有相反仓位。
期权成交量与未平仓量常见问题
成交量与未平仓量有什么区别?
成交量统计当前交易时段内成交的期权合约数量,并在每天归零。未平仓量统计尚未到期、已建立但尚未平仓的合约数量,并延续至后续交易日。每笔交易都会增加成交量;未平仓量只有在开仓方与平仓方的组合发生变化时才会变动。
为什么未平仓量每天只更新一次?
未平仓量是结算机构统计的数据,而不是逐笔成交数据。公开逐笔成交记录不会标记交易属于开仓还是平仓。OCC会在交易时段结束后,汇总各结算会员的相关标记,并在下一交易日开盘前公布数据。
未平仓量上升或下降意味着什么?
未平仓量上升,意味着新开合约多于平仓合约,相关行权价出现净新增持仓。未平仓量下降,意味着持仓正在平仓。成交量较大但未平仓量持平,意味着持仓发生了转手。一天的成交量,是未平仓量在次日上午数据公布前最多可能变动的数量。
成交量会高于未平仓量吗?
会,短期限合约中这种情况很常见。一笔持仓若在同一交易日内先开仓后平仓,会计入两次成交量,但不会增加次日上午公布的未平仓量。当天到期的合约也不会出现在次日数据中。2026年7月6日,38.8%的美国期权成交量来自当日到期的合约。有关运作机制,请参阅什么是0DTE期权。
上文每个面板均对应一个可存储、可检查的查询。您可以展开SQL进行审计,也可以在Strasmore终端中将相同问题应用于任何交易时段。