什么是三巫日?成交量与波动率分析
三巫日指股指期货、股指期权与个股期权同时到期的季度交易日,本文通过真实数据为您深度解析其对市场成交量与波动率的影响。
“三巫日”是指每年的季度交易日,即 3 月、6 月、9 月和 12 月的第三个星期五。在这一天,股指期货、股指期权和个股期权将同时到期。每年有四次这样的交易日,所有到期的衍生品都必须同时进行结算、平仓或展期。同时,指数基金也会在收盘竞价中执行预定的调仓。下文通过真实交易数据,记录了过去八个三巫日的成交量、波动率、收盘竞价及行权价。关于具体日期——包括因 Juneteenth 节期调整而将 2026 年 6 月份日期移至周四的情况——请参阅 2026 年三巫日日期。
三重分股日(Triple Witching Day)哪些合约会到期?
三种合约家族在季度日期上重合:股指期货(及其期权)、股指期权,以及个股期权。个股期权在每个月的第三个星期五到期;而季度日期的特殊之处在于,股指期货和股指期权的周期在此叠加。
两种结算方式将交易日分为两部分。许多股指期货和股指期权采用 AM 结算:它们在交易日前一天的下午停止交易,并根据成分股开盘价计算出的价格进行结算,这会将资金流引入当日早晨的 开盘竞价。个股期权和 ETF 期权采用 PM 结算,交易持续至下午 4:00 收盘。
当天的第三个环节并非衍生品。各大指数家族会将成分股调整(如新增、剔除、股数更新)安排在这些相同的季度日期,指数基金会在收盘时针对这些调整进行交易。再平衡资金流与到期头寸会在同一天的 收盘竞价 中汇合。
为什么被称为“巫术时刻”?
该名称借用了民间传说中的“巫术时刻”(witching hour),意指怪异事件发生的时刻。20世纪80年代,指数期货(S&P 500 期货于1982年上市)与指数期权(自1973年起在交易所上市)与个股期权共同进入了季度结算周期。这些日期交易结束前的最后一个小时因波动剧烈而闻名,因此被称为“三巫时刻”(triple witching hour)。随后,交易所将主要指数合约的结算方式从收盘价改为开盘价,从而缓解了最后一个小时的剧烈波动。“四巫时刻”(quadruple witching)出现在21世纪初美国上市的个股期货之后;由于相关交易场所已于2020年关闭,这两个术语现在指代相同的四个日期。
三重分股日日期:2024–2027
规则很简单:每年3月、6月、9月和12月的第三个星期五。若该周五遇上交易所休市,到期日将提前至前一个交易日。完整日历及周、日周期请参阅 期权到期日。
- 2024年: 3月15日、6月21日、9月20日、12月20日
- 2025年: 3月21日、6月20日、9月19日、12月19日
- 2026年: 3月20日、6月18日(因6月19日 Juneteenth 节假日美股休市,日期提前)、9月18日、12月18日
- 2027年: 3月19日、6月18日、9月17日、12月17日
下一个三重分股日是2026年9月18日,星期五。
期末结算日(Witching Session)的成交量究竟有多大?
自 2024 年底以来,我们将每个季度的期末结算日成交量,与同月内其他交易日的成交量中位数进行了对比。最后一列用于验证“结算日即月内成交最活跃日”这一说法:该列通过减去当月成交量最大的非结算日得出。正值表示结算日是当月最活跃的一天,负值则表示其他交易日成交量更高。
每个数字背后的完整 SQL
WITH daily AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
sum(toFloat64(volume)) / 1e9 AS shares_b
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2024-09-01 04:00:00'
AND window_start < '2026-07-01 04:00:00'
AND toMonth(toTimeZone(window_start, 'America/New_York')) IN (3, 6, 9, 12)
GROUP BY day
),
witching AS (
SELECT toStartOfMonth(day) AS m,
maxIf(day, day <= addDays(toStartOfMonth(day),
((5 - toDayOfWeek(toStartOfMonth(day)) + 7) % 7) + 14)) AS witching_day
FROM daily
GROUP BY m
)
SELECT toString(w.witching_day) AS witching_session,
round(anyIf(d.shares_b, d.day = w.witching_day), 1) AS witching_shares_b,
round(quantileDeterministicIf(0.5)(d.shares_b, cityHash64(toString(d.day)), d.day != w.witching_day), 1) AS other_days_median_b,
round(anyIf(d.shares_b, d.day = w.witching_day)
/ quantileDeterministicIf(0.5)(d.shares_b, cityHash64(toString(d.day)), d.day != w.witching_day), 2) AS times_median,
round(anyIf(d.shares_b, d.day = w.witching_day) - maxIf(d.shares_b, d.day != w.witching_day), 2) AS gap_to_next_heaviest
FROM daily AS d
INNER JOIN witching AS w ON toStartOfMonth(d.day) = w.m
GROUP BY w.witching_day
HAVING countIf(d.day != w.witching_day) > 0
ORDER BY w.witching_day成交量溢价是真实且可重复的。最近一次结算日 2026-06-18 的成交量为 26.7 十亿股,而当月其他交易日的成交量中位数为 20.1 十亿股——即典型交易日的 1.33 倍,且比 6 月份成交量次高的交易日多出 1.15 十亿股。第一行 2024-09-20 也呈现了类似的 1.34 倍倍数。
但这并非绝对规律,数据也证明了这一点。2025-03-21 的成交量仅为当月中位数的 0.97 倍——略低于普通交易日,且比当月成交量最大的交易日少了 -4.03 十亿股。最后一列显示了这两种情况:结算日是当月最繁忙交易日的强力指标,但并非必然。指数成分股调整、季末资金流和宏观数据发布,都可能产生成交量超过结算日的交易日。
为什么 2026 年 6 月的巫师日落在周四
2026 年 6 月的第三个星期五是 6 月 19 日(Juneteenth),届时美国交易所休市。因此,整个季度末的到期日提前到了 6 月 18 日,星期四。期权交易数据展示了未平仓头寸的分布情况:以下是 6 月 1 日至 18 日期间,按合约到期日分组的成交量。
每个数字背后的完整 SQL
SELECT toString(expiry) AS expiry,
round(sum(vol) / 1e6, 1) AS contracts_mm
FROM (
SELECT toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6))) AS expiry,
toFloat64(volume) AS vol
FROM global_markets.options_minute_aggs
WHERE window_start >= '2026-06-01 04:00:00'
AND window_start < '2026-06-19 04:00:00'
)
WHERE expiry IS NOT NULL
GROUP BY expiry
ORDER BY contracts_mm DESC
LIMIT 8在 14 个交易日内,到期日为 2026-06-18 的合约成交量达到 193.7 万份;相比之下,交易量次大的到期日 2026-06-12 的成交量为 113.1 万份。未平仓合约会在数月内向季度到期日集中,交易量也随之增加。
期权合约还是股票——究竟是什么在激增?
大多数解释性文章忽略了一个区别。头寸通常在季度到期日前累积,而期权合约在到期当日的换手并不显著。下表展示了“巫师日”与此前两个普通周五的对比,并分别列出了当日到期的 0DTE 股票成交量。
巫师日处理了 79.2 百万份合约;而 2026-06-05 的普通周五处理了 103.1 百万份——成交量反而更高。变化在于结构:巫师日成交量中有 48.7% 的合约在当日到期,而普通周五的这一比例仅为 43.9% 和 44.7%。巫师日的特征并非“期权交易量激增”,而是股票市场变得活跃。指数结算和基金调仓是通过股票而非合约执行的。
三重期权到期日会推高波动率吗?
成交量与波动率是两个不同的概念,而后者很少被验证。本小组研究了 SPY 在每个期权到期日的日内最高价与最低价之差(占开盘价的百分比),以及开盘至收盘的绝对涨跌幅。我们将这些数据分别与该月份其他交易日的统计中位数进行对比。
每个数字背后的完整 SQL
WITH daily AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
toFloat64(max(high) - min(low)) / toFloat64(argMin(open, window_start)) * 100 AS range_pct,
abs(toFloat64(argMax(close, window_start)) - toFloat64(argMin(open, window_start)))
/ toFloat64(argMin(open, window_start)) * 100 AS net_move_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= '2024-09-01 04:00:00'
AND window_start < '2026-07-01 04:00:00'
AND toMonth(toTimeZone(window_start, 'America/New_York')) IN (3, 6, 9, 12)
AND toHour(toTimeZone(window_start, 'America/New_York')) >= 9
AND toHour(toTimeZone(window_start, 'America/New_York')) < 16
AND NOT (toHour(toTimeZone(window_start, 'America/New_York')) = 9
AND toMinute(toTimeZone(window_start, 'America/New_York')) < 30)
GROUP BY day
),
witching AS (
SELECT toStartOfMonth(day) AS m,
maxIf(day, day <= addDays(toStartOfMonth(day),
((5 - toDayOfWeek(toStartOfMonth(day)) + 7) % 7) + 14)) AS witching_day
FROM daily
GROUP BY m
)
SELECT toString(w.witching_day) AS witching_session,
round(anyIf(d.range_pct, d.day = w.witching_day), 2) AS witching_range_pct,
round(quantileDeterministicIf(0.5)(d.range_pct, cityHash64(toString(d.day)), d.day != w.witching_day), 2) AS other_days_median_range_pct,
round(anyIf(d.net_move_pct, d.day = w.witching_day), 2) AS witching_net_move_pct,
round(quantileDeterministicIf(0.5)(d.net_move_pct, cityHash64(toString(d.day)), d.day != w.witching_day), 2) AS other_days_median_net_move_pct
FROM daily AS d
INNER JOIN witching AS w ON toStartOfMonth(d.day) = w.m
GROUP BY w.witching_day
HAVING countIf(d.day != w.witching_day) > 0
ORDER BY w.witching_day结论是:并无系统性影响。期权到期日的波动情况分布在当月波动中位数的两侧。2024-12-20 的波动幅度为 2.55,对比 0.61 的中位数——这是一个极端的交易日。但最近一次交易日 2026-06-18 的波动幅度仅为 0.58,对比 1.12 的中位数;其开盘至收盘的净涨跌幅为 0.16,对比 0.55 的中位数。该月成交量最大的交易日,其价格波动反而是最平稳的交易日之一。
这才是该课题的核心事实。期权到期日集中了“计划内、机械化”的资金流。由于机械化交易的特性,资金流向是双向的——每一笔展期头寸都会平仓一个合约并开启另一个合约,每一个指数成分股的调入都伴随着调出。这种机制产生的结果是:成交量巨大,但价格走势平稳。
收盘竞价分析
收盘阶段是当日市场最显著的特征。通过对比指数权重股调仓日与典型的 6 月交易日,我们可以观察收盘竞价窗口(即美东时间 15:59 至 16:00 的 K 线,包含竞价成交价)的资金流向。
每个数字背后的完整 SQL
WITH sessions AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
sumIf(toFloat64(close) * toFloat64(volume),
toHour(toTimeZone(window_start, 'America/New_York')) = 16
OR (toHour(toTimeZone(window_start, 'America/New_York')) = 15
AND toMinute(toTimeZone(window_start, 'America/New_York')) = 59)) AS close_dollars,
sum(toFloat64(close) * toFloat64(volume)) AS day_dollars
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-06-01 04:00:00'
AND window_start < '2026-07-01 04:00:00'
AND toHour(toTimeZone(window_start, 'America/New_York')) >= 9
AND toHour(toTimeZone(window_start, 'America/New_York')) <= 16
AND NOT (toHour(toTimeZone(window_start, 'America/New_York')) = 9
AND toMinute(toTimeZone(window_start, 'America/New_York')) < 30)
AND NOT (toHour(toTimeZone(window_start, 'America/New_York')) = 16
AND toMinute(toTimeZone(window_start, 'America/New_York')) > 0)
GROUP BY day
)
SELECT round(anyIf(close_dollars, day = '2026-06-18') / 1e9, 1) AS witching_close_dollars_b,
round(quantileDeterministicIf(0.5)(close_dollars, cityHash64(toString(day)), day != '2026-06-18') / 1e9, 1) AS other_june_median_close_dollars_b,
round(anyIf(close_dollars, day = '2026-06-18')
/ quantileDeterministicIf(0.5)(close_dollars, cityHash64(toString(day)), day != '2026-06-18'), 2) AS times_median,
round(anyIf(close_dollars / day_dollars, day = '2026-06-18') * 100, 1) AS witching_close_pct_of_day,
round(quantileDeterministicIf(0.5)(close_dollars / day_dollars, cityHash64(toString(day)), day != '2026-06-18') * 100, 1) AS other_june_median_close_pct_of_day
FROM sessions
HAVING countIf(day != '2026-06-18') > 0在指数权重股调仓日,该窗口的股票成交额为 $56.1 十亿,而 6 月份的中位数交易额为 $36.1 十亿,即为后者的 1.56 倍。此外,该窗口的成交额占当日总成交额的 4.9,而典型交易日的这一比例为 3.7。仅两分钟的交易时间,却占据了总成交额的五十分之一:这正是规模达数十亿美元的指数基金进行调仓并寻找对手方的地方。
钉住风险:价格会向大行权价靠拢吗?
“钉住风险”(Pin risk)及其相关的“最大痛点”(max pain)是一种民间理论。该理论认为,随着交易商在收盘前进行期权对冲,即将到期的股票价格会被吸引至未平仓合约(open interest)最大的行权价附近。以下是市场数据:按成交量排序的 SPY 2026 年 6 月 18 日到期系列,以及各行权价与 SPY 常规交易收盘价的距离。
每个数字背后的完整 SQL
WITH spy_close AS (
SELECT toFloat64(argMax(close, window_start)) AS px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime('2026-06-18 09:30:00', 'America/New_York')
AND window_start < toDateTime('2026-06-18 16:00:00', 'America/New_York')
),
strikes AS (
SELECT toFloat64(substring(ticker, length(ticker) - 7, 8)) / 1000 AS strike,
sum(toFloat64(size)) AS contracts
FROM global_markets.options_trades
WHERE ticker LIKE 'O:SPY260618%'
AND sip_timestamp >= '2026-06-18 08:00:00'
AND sip_timestamp < '2026-06-19 01:00:00'
GROUP BY strike
)
SELECT concat('$', toString(toInt32(s.strike))) AS strike,
round(s.contracts / 1000, 1) AS contracts_k,
round(s.strike - c.px, 2) AS strike_minus_close,
round(abs(s.strike - c.px) / c.px * 100, 2) AS pct_from_close
FROM strikes AS s
CROSS JOIN spy_close AS c
ORDER BY s.contracts DESC, s.strike ASC
LIMIT 12SPY 的收盘价落在两个成交最活跃的到期行权价之间。成交量最大的行权价为 $746,成交量为 1488.3 千份合约,距离收盘价 -0.56 点(0.08%);第二个行权价为 $747,成交量为 1482.4 千份,位于收盘价另一侧 0.44 点处。
请不要得出显而易见的结论。交易员在构建策略时,往往会将成交量集中在平值(at-the-money)行权价,因为这些行权价决定了最终盈亏且 价差 最窄。因此,“成交量最大的行权价包围收盘价”在任何到期日几乎都是必然结果,并不能证明收盘价受到了吸引。单次交易无法区分“磁吸效应”与“巧合”。该图表展示的实际情况是:当期权到期时,若行权价与平值价格差距在 1 美元以内,其全部价值将在最后那拥挤的一分钟内决定。
期权到期日(Witching Day)的实际操作建议
- 调低相对成交量指标的权重。 每一只股票在此时都会出现异常成交量。在期权到期日,相对成交量达到2倍仅是时间规律,而非基本面催化剂。
- 预期深度行情,而非平稳走势。 市场流动性较深,便于执行大额订单;但上文的波动率表显示,期权到期日的波动范围通常会超过常规交易日。
- 留意收盘前的到期头寸。 下午结算的个股及 ETF 期权取决于收盘价;平值合约可能在最后几分钟内从无价值变为实值。
- 不要将收盘价视为市场情绪。 全天成交额的二十分之一会在两分钟内完成,其中充斥着机械性的调仓订单。
- 提前获知四个关键日期。 日历是交易中最廉价的过滤工具。
FAQ
When is the next triple witching day?
Triple witching lands on the third Friday of March, June, September and December. The next one is Friday, September 18, 2026, then December 18, 2026, then March 19, June 18, September 17 and December 17 in 2027.
What is the difference between triple and quadruple witching?
"Quadruple" added single-stock futures to the three classic expiring families (index futures, index options, single-stock options). Those US products disappeared after the venue carrying them closed in 2020, and both terms now describe the same four quarterly dates.
Why is trading volume so high on triple witching days?
Expiration forces a decision on every open derivative position — settle, close, or roll — and index providers schedule constituent rebalances for the same sessions, which index funds execute in stock at the close. The most recent witching session traded 1.33x its month's median share volume, with the closing-cross window alone absorbing $56.1 billion.
Does triple witching make the stock market more volatile?
Not reliably. Measured on SPY, witching sessions fall on both sides of their month's median intraday range: 2024-12-20 ranged 2.55% against a 0.61% median, while 2026-06-18 ranged just 0.58% against a 1.12% median. Heavy volume and a big price move are separate phenomena.
What is pin risk on an expiration day?
Pin risk is the exposure of an option finishing very near its strike: nobody knows until after the close whether it expires worthless or in the money, and a short position can wake up assigned shares. On June 18, 2026, SPY's two busiest expiring strikes sat -0.56 and 0.44 points from the closing price.
Every panel is a stored, versioned query over the real tape — expand the SQL to audit any number, or measure the next witching session yourself on the Strasmore terminal.