SpaceX纳入Nasdaq-100指数交易分析
解析SpaceX纳入Nasdaq-100指数引发的巨额收盘竞价交易,通过逐笔数据还原市场真实走势。
2026年7月7日星期二,SpaceX 正式纳入 Nasdaq-100 指数。在此前一个下午,该事件引发了最大规模的交易:74.94 百万股 SPCX 在 $160.42 的 收盘竞价 中成交。Matt Levine 在次日的 Money Stuff 中对此进行了报道。本文将通过我们的逐笔数据核对其数据,并提供更深入的分析——逐场拍卖、逐分钟记录,并在每个面板下展示 SQL 语句。
指数快速调入新股
纳斯达克将于 2026 年 7 月 7 日(周二)正式将 SpaceX 纳入 Nasdaq-100 指数。此前该股于 6 月 12 日上市,距此不足一个月。关于该股上市首月的详细分析,请参阅 我们的首月深度解析。根据《华尔街日报》报道(Levine 在文中引用),追踪该指数的基金资产规模约 8,000 亿美元,其中包括 Invesco 的 QQQ。这些基金将在变更生效前的最后一个交易日收盘时,以官方收盘价进行交易:即东部时间下午 4:00 收盘竞价时的一笔巨额匹配交易。
“为什么昨天的收盘竞价规模比平时大了一个数量级?这并不难理解。” —— Matt Levine,《Money Stuff》(彭博观点),2026 年 7 月 7 日
一条基本原则:我们仅记录成交数据;至于交易机制——即谁在买入、谁在供应以及买卖原因——属于 Levine 的研究范畴,并在文中相应位置进行标注。
一个代码,两家公司
SPCX 是一个重复使用的代码,因此需首先进行验证:该代码在 2026 年 4 月前作为一只价格接近 $22 的微型基金进行交易,5 月份停止交易,并在 6 月 12 日上市时重新分配给 Space Exploration Technologies Corp.。收据面板明确了这一界限 —— 旧实体最后一个活跃月份(2026-04)内有 13 分钟线,价格区间在 $21.92 至 $23.64 之间;5 月份无交易(六个日历月共 5 行);随后在 6 月份有 10960 根 K 线,价格区间在 $146.88 至 $225.64 之间。6 月 12 日之前的所有数据均不属于 SpaceX。
每个数字背后的完整 SQL
WITH
(
SELECT (toString(listing_date), issuer_name)
FROM global_markets.stocks_ipos
WHERE ticker = 'SPCX'
ORDER BY listing_date DESC LIMIT 1
) AS ipo
SELECT
formatDateTime(toStartOfMonth(window_start), '%Y-%m') AS month,
count() AS minute_bars,
round(min(toFloat64(low)), 2) AS low_usd,
round(max(toFloat64(high)), 2) AS high_usd,
ipo.1 AS spacex_listing_date,
ipo.2 AS issuer
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPCX'
AND window_start >= '2026-01-01 00:00:00' AND window_start < '2026-07-01 00:00:00'
GROUP BY month
ORDER BY monthLevine 的三个交易时段数据已核实
Levine 根据彭博终端页面,打印了每个交易日的三个数据。7 月 1 日(周三):成交量 1.093 亿股,收盘竞价成交约 540 万股,收盘价 157.54 美元。7 月 2 日(周四):成交量 6130 万股,竞价成交 260 万股,收盘价 162 美元。7 月 6 日(周一):成交量 1.888 亿股,竞价成交 7490 万股,收盘价 160.42 美元——在大盘上涨的交易日,该股下跌约 1%。我们的行情数据呈现了相同的结果:
每个数字背后的完整 SQL
SELECT
toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS session,
round(toFloat64(sumIf(size, NOT hasAny(conditions, [15, 16, 38]))) / 1e6, 1) AS day_matched_shares_m,
round(toFloat64(maxIf(size, has(conditions, 8))) / 1e6, 2) AS auction_shares_m,
round(100 * toFloat64(maxIf(size, has(conditions, 8))) / toFloat64(sumIf(size, NOT hasAny(conditions, [15, 16, 38]))), 1) AS auction_pct_of_day,
round(toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8))), 2) AS official_close,
countIf(has(conditions, 8)) AS code8_prints,
formatDateTime(toTimeZone(argMaxIf(sip_timestamp, (size, sip_timestamp), has(conditions, 8)), 'America/New_York'), '%H:%i:%S') AS auction_time_et
FROM global_markets.stocks_trades
WHERE ticker = 'SPCX'
AND ((sip_timestamp >= '2026-07-01 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00')
OR (sip_timestamp >= '2026-07-06 00:00:00' AND sip_timestamp < '2026-07-07 00:00:00'))
GROUP BY session
ORDER BY session竞价规模与官方收盘价与他的数据在舍入误差范围内一致——5.38 百万股,价格为 157.54 美元;2.58 百万股,价格为 162 美元;74.94 百万股,价格为 160.42 美元——每个交易日都显示有一个精确的 Code-8 竞价成交记录(见收据列)。全天成交总量与他的数据误差在几个百分点以内(分别为 112.4、61.6 和 188.9 百万股;不同供应商在边缘数据处理上存在差异;详见数据说明)。新增的一列是他未打印的数据:即竞价占每日总成交量的比例:周三为 4.8%,周四为 4.2%,周一为 39.7%。
SPCX 上市以来的每次收盘竞价
“数量级”是可衡量的。以下是所有 15 个 SPCX 交易日的收盘交叉数据,涵盖从上市到增发前夕:
每个数字背后的完整 SQL
SELECT
toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS session,
round(toFloat64(maxIf(size, has(conditions, 8))) / 1e6, 2) AS auction_shares_m,
round(100 * toFloat64(maxIf(size, has(conditions, 8))) / toFloat64(sumIf(size, NOT hasAny(conditions, [15, 16, 38]))), 1) AS auction_pct_of_day,
round(toFloat64(sumIf(size, NOT hasAny(conditions, [15, 16, 38]))) / 1e6, 1) AS day_matched_shares_m,
round(toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8))), 2) AS official_close,
countIf(has(conditions, 8)) AS code8_prints
FROM global_markets.stocks_trades
WHERE ticker = 'SPCX'
AND sip_timestamp >= '2026-06-12 00:00:00' AND sip_timestamp < '2026-07-07 00:00:00'
GROUP BY session
ORDER BY session7 月 6 日之前的 SPCX 交叉成交量中位数为 4.49 百万股。7 月 6 日成交量为 74.94 百万股——是此前中位数的 16.7 倍。Levine 的说法在数据面前依然成立。此前有两次大规模收盘表现突出:2026-06-18 日成交 52.28 百万股(该交易日到期日前的周四)以及 2026-06-26 日成交 39.56 百万股(占当日成交额的 31.1%)。从时间维度看,这两次交易在规模或占比上均未达到 7 月 6 日的水平:增发前夕的交叉成交量更大,且占当日成交额的 39.7%。
7月6日,逐分钟行情
交易前夕:SPCX 开盘价为 $165.95,东部时间下午 1:00 报 $162.18,随后持续下跌。下午 3:30 的分钟线区间为 $155.42–$155.92 —— Levine 提到的“下午 3:30 为 $155.50”这一检查点位于该区间内 —— 该分钟线收于 $155.46。此后直至收盘,成交量连续放大 19.3 百万股,价格上涨了 $4.96,最后一笔连续成交发生在东部时间 16:00:00,价格为 $160.5。以下为五分钟路径(78 个区间),终点为 $160.4:
每个数字背后的完整 SQL
SELECT
formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 5 MINUTE), '%H:%i') AS et_time,
round(toFloat64(argMax(close, window_start)), 2) AS price_usd,
round(toFloat64(sum(volume)) / 1e6, 2) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPCX'
AND window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00'
GROUP BY et_time
ORDER BY et_time每个检查点均位于可审计的行中,并附带关键成交价:
每个数字背后的完整 SQL
WITH
(
SELECT (
round(toFloat64(argMin(open, window_start)), 2),
round(toFloat64(argMaxIf(close, window_start, window_start < '2026-07-06 17:01:00')), 2),
round(toFloat64(argMaxIf(close, window_start, window_start < '2026-07-06 19:31:00')), 2),
round(toFloat64(minIf(low, window_start = '2026-07-06 19:30:00')), 2),
round(toFloat64(maxIf(high, window_start = '2026-07-06 19:30:00')), 2),
round(toFloat64(sumIf(volume, window_start >= '2026-07-06 19:30:00')) / 1e6, 1)
)
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPCX'
AND window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00'
) AS bars,
(
SELECT round(quantileDeterministic(0.5)(auction_m, day_key), 2)
FROM (
SELECT
toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS d,
toUInt64(toYYYYMMDD(toDate(toTimeZone(sip_timestamp, 'America/New_York')))) AS day_key,
toFloat64(maxIf(size, has(conditions, 8))) / 1e6 AS auction_m
FROM global_markets.stocks_trades
WHERE ticker = 'SPCX'
AND sip_timestamp >= '2026-06-12 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'
GROUP BY d, day_key
)
) AS med_prior,
(
SELECT round(toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8))), 2)
FROM global_markets.stocks_trades
WHERE ticker = 'SPCX'
AND sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'
) AS spcx_prev_close,
(
SELECT (
round(toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8) AND sip_timestamp < '2026-07-03 00:00:00')), 2),
round(toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8) AND sip_timestamp >= '2026-07-06 00:00:00')), 2)
)
FROM global_markets.stocks_trades
WHERE ticker = 'SPY'
AND ((sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00')
OR (sip_timestamp >= '2026-07-06 00:00:00' AND sip_timestamp < '2026-07-07 00:00:00'))
) AS spy,
(
SELECT maxIf(sip_timestamp, has(conditions, 8))
FROM global_markets.stocks_trades
WHERE ticker = 'SPCX' AND sip_timestamp >= '2026-07-06 00:00:00' AND sip_timestamp < '2026-07-07 00:00:00'
) AS auction_ts
SELECT
bars.1 AS open_0930,
bars.2 AS px_1300_et,
bars.3 AS px_1530_close,
bars.4 AS px_1530_bar_low,
bars.5 AS px_1530_bar_high,
bars.6 AS shares_1530_1559_m,
round(toFloat64(argMaxIf(price, (sip_timestamp, sequence_number), sip_timestamp < auction_ts AND NOT has(conditions, 8) AND NOT hasAny(conditions, [15, 16, 38]))), 2) AS last_continuous_px,
formatDateTime(toTimeZone(maxIf(sip_timestamp, sip_timestamp < auction_ts AND NOT has(conditions, 8) AND NOT hasAny(conditions, [15, 16, 38])), 'America/New_York'), '%H:%i:%S') AS last_continuous_et,
countIf(has(conditions, 8)) AS code8_prints,
round(toFloat64(maxIf(size, has(conditions, 8))) / 1e6, 2) AS auction_shares_m,
round(toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8))), 2) AS auction_price,
formatDateTime(toTimeZone(auction_ts, 'America/New_York'), '%H:%i:%S') AS auction_time_et,
round(toFloat64(maxIf(size, has(conditions, 8))) * toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8))) / 1e9, 2) AS auction_notional_busd,
round(toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8))) - bars.3, 2) AS close_minus_1530_usd,
round(bars.1 - toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8))), 2) AS open_minus_close_usd,
round(bars.2 - toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8))), 2) AS px1300_minus_close_usd,
round(bars.1 - bars.2, 2) AS open_minus_1300_usd,
round((toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8))) - toFloat64(argMaxIf(price, (sip_timestamp, sequence_number), sip_timestamp < auction_ts AND NOT has(conditions, 8) AND NOT hasAny(conditions, [15, 16, 38])))) * 100, 1) AS cross_vs_last_tick_cents,
round((1 - toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8))) / spcx_prev_close) * 100, 2) AS spcx_close_below_prior_pct,
spy.2 AS spy_close_jul6,
round((spy.2 / spy.1 - 1) * 100, 2) AS spy_day_change_pct,
med_prior AS median_prior_auction_m,
round(toFloat64(maxIf(size, has(conditions, 8))) / 1e6 / med_prior, 1) AS auction_vs_prior_median_x
FROM global_markets.stocks_trades
WHERE ticker = 'SPCX'
AND sip_timestamp >= '2026-07-06 00:00:00' AND sip_timestamp < '2026-07-07 00:00:00'集合竞价:成交 74.94 百万股,价格 $160.42,成交时间为东部时间 16:00:00 —— 单笔成交金额达 $12.02 十亿。Levine 引用 Bloomberg Intelligence 的 Rob Du Boff 的估算称,收盘时指数基金的买盘至少占 54 亿美元,即 7490 万股中的约 3120 万股。两组数据存在设计上的差异:我们统计的是包含买卖双方的全额成交额;他统计的是其中预估的指数需求部分。
收盘并未出现价格飙升。官方收盘价较 SPCX 自身 9:30 的开盘价低 $5.53,较其下午 1:00 的价格低 $1.76;当日收盘价较周四收盘价下跌了 0.98%,而 SPY 则上涨了 0.87%(周一回顾 包含完整交易日行情)。Levine 认为,在供应充足的竞价中:
“如果一切顺利,收盘竞价中的供应与需求将达成平衡,价格波动不会太大。” —— Matt Levine,《Money Stuff》(彭博观点),2026年7月7日
以此标准衡量,若价格在最后一次连续交易价($160.42 对比 $160.5)的几美分范围内,且与此前中位数价格的偏差在 16.7 倍以内,则说明交易运行正常。这是他的逻辑框架;我们的测量数据。
交易对手方是谁
在此处,行情数据停止,归因分析开始。根据 Levine 的说法,指数需求集中在调仓日收盘时;流动性提供者——过去是银行交易台,现在多为多策略对冲基金(pod shops)——会在之前的交易日进行建仓,并在集合竞价时提供供应,从而赚取平均买入价与竞价之间的价差。
“银行在此处的动机很大程度上是良性的:他们的工作是平滑需求。” —— Matt Levine,《Money Stuff》(彭博观点),2026年7月7日
为了说明规模,他引用了 Bloomberg 记者 Nishant Kumar 的报道:两支 Millennium 指数调仓团队在 6 月份通过指数变动交易赚取了约 37 亿美元。从更广泛的视角来看,他提到了两篇论文:Chinco 和 Sammon (2024) 指出,被动持仓约占美国市场的 33.5%——大约是 16% 这一公开数据的两倍;Greenwood 和 Sammon (2024) 则记录了指数纳入效应(index-add price effect)在过去几十年中不断缩小。这些观点在我们的行情数据中均无法直接衡量,但也不与现有数据相抵触。
周一剩余成交量分布情况
该交叉盘成交量占 7 月 6 日匹配成交量的 39.7%。其余部分分为两部分:23.9% 的成交量(45.1 百万股)通过连续场内交易完成;36.4% 的成交量(68.8 百万股)通过 FINRA 的交易报告设施进行场外交易 —— 包括 暗池、批发商以及协商 大宗交易。单笔交易的成交量超过了整个连续场内交易时段。
每个数字背后的完整 SQL
SELECT
multiIf(has(conditions, 8), 'Closing auction (one print)', exchange = 4, 'Off-exchange (TRF)', 'On-exchange, continuous') AS bucket,
round(toFloat64(sum(size)) / 1e6, 1) AS shares_m,
round(100 * toFloat64(sum(size)) / sum(toFloat64(sum(size))) OVER (), 1) AS pct_of_matched,
count() AS prints
FROM global_markets.stocks_trades
WHERE ticker = 'SPCX'
AND sip_timestamp >= '2026-07-06 00:00:00' AND sip_timestamp < '2026-07-07 00:00:00'
AND NOT hasAny(conditions, [15, 16, 38])
GROUP BY bucket
ORDER BY bucket次日早盘
Levine 指出,SPCX 在周二上午再次下跌。其走势值得重点分析:这是盘中持续抛售,而非隔夜跳空。SpaceX 周二开盘价为 $158.92,较前一交易日收盘价 $160.42 低了 0.9。随后,股价在 $150.12–$159.3 区间内波动。截至东部时间 12:59,股价处于该面板设定的固定边界 5.2 以下 12:59。 (本面板的首版于 7 月 8 日编写,基于部分录入的数据,显示的“开盘”跌幅更大——这是由于缺失早期行情数据导致的误差,在此已根据完整交易数据进行了修正;详见数据说明。)
每个数字背后的完整 SQL
WITH
(
SELECT round(toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8))), 2)
FROM global_markets.stocks_trades
WHERE ticker = 'SPCX'
AND sip_timestamp >= '2026-07-06 00:00:00' AND sip_timestamp < '2026-07-07 00:00:00'
) AS monday_close
SELECT
count() AS morning_bars,
formatDateTime(toTimeZone(max(window_start), 'America/New_York'), '%H:%i') AS last_bar_et,
round(toFloat64(argMin(open, window_start)), 2) AS open_0930,
round((1 - toFloat64(argMin(open, window_start)) / monday_close) * 100, 1) AS open_below_monday_close_pct,
round(min(toFloat64(low)), 2) AS morning_low,
round(max(toFloat64(high)), 2) AS morning_high,
round(toFloat64(argMax(close, window_start)), 2) AS px_1259_et,
round((1 - toFloat64(argMax(close, window_start)) / monday_close) * 100, 1) AS px_1259_below_monday_close_pct,
round(toFloat64(sum(volume)) / 1e6, 1) AS morning_shares_m,
monday_close AS monday_official_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPCX'
AND window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 17:00:00'上述面板的数据截止至东部时间下午 12:59(见数据说明)。7 月 7 日的完整交易时段——该股首次纳入指数,也是其跌回 IPO 价格的最后一天——已在 SpaceX 股价从峰值回归的完整走势 中进行了全程记录。
SpaceX 加入 Nasdaq-100 常见问题解答
为什么 SpaceX 加入 Nasdaq-100 的速度如此之快?
Nasdaq 的指数编制方法允许在每年 12 月定期调整之间进行增补。Levine 引用的新闻报道(包括《华尔街日报》)称,SpaceX 于 2026 年 7 月 7 日入选,属于快速增补,距离 6 月 12 日的 IPO 不到一个月。
什么是指数增补收盘集合竞价?
当股票被纳入指数时,追踪该指数的基金会在变更生效前的最后一个交易日,按官方收盘价进行交易。该价格由 收盘集合竞价 确定,即东部时间下午 4:00 的单一成交价。2026 年 7 月 6 日,SPCX 在增补前夕的集合竞价成交量占当日总成交量的 39.7%。
SpaceX 加入 Nasdaq-100 时股价是否飙升?
根据我们的行情数据,并未出现。在最后半小时上涨 $4.96 后,该股收盘价较当日开盘价低 5.53,较前一交易日收盘价低 0.98。次日早盘,其开盘价又低了 0.9。以上仅为行情观察,不代表对任何交易执行情况的定论。
SpaceX 的指数增补收盘集合竞价规模有多大?
单笔成交量为 74.94 百万股,价格为 $160.42,总额为 $12.02 十亿。这占当日总成交量的 39.7%,是 SPCX 此前中位数收盘集合竞价成交量的 16.7 倍。
数据说明
完整数据说明
- 实体边界(frontmatter 中 verified_tickers 的依据)。 SPCX 在 2026-06-12 上市时被重新分配至 Space Exploration Technologies Corp.;旧行情数据截止至 2026 年 4 月,5 月显示为零(见上方图表)。首月深度分析 包含完整的验证信息(IPO 记录、新闻标签变更、空头头寸骤降)。
- “匹配成交量”为整合行情本身的统计: 若交易条件的字典条目中 updates_volume = false(如 15、16、38),则在所有总量和分母中予以排除。供应商的“成交股数”统计口径不同:我们 7 月 1 日的总量比 Levine 的数据高约 3%;7 月 2 日和 7 月 6 日的数据差异在百分之零点几以内。
- 收盘集合竞价属于交易条件 8,详见 集合竞价说明。部分交易日包含来自第二个交易场所(上市当天的 2)的微量代码 8 记录;集合竞价是该交易日最大的代码 8 成交记录。7 月 1 日、2 日和 6 日各仅显示一条。
- 上午面板的设计截止时间为美东时间下午 12:59(9:30–1:00 窗口内包含 210 条数据):这是本文撰写时(2026 年 7 月 8 日)的数据采集边界,固定该窗口是为了确保数据可复现。完整的 7 月 7 日交易数据见 往返交易分析。
- 归因数据保持原样。 Levine、WSJ、Du Boff、Kumar 及相关报纸的数据均为其自身声明,在此仅作背景参考,并非本文测量结果;本文不对任何行情波动进行归因。
- 时间戳以 UTC 存储;2026 年 7 月采用 EDT(常规交易时间为 13:30–20:00 UTC)。拍卖名义价值仅为成交量乘以成交价。
每个面板均为单一存储对象——包括图表、表格和 SQL。您可以在 Strasmore 终端上对任何股票的这些拍卖数据进行更深入的拆解。