2026年7月20日当周市场回顾
查看7月月度期权到期后的指数表现、板块分化、市场广度及资金流向,比较DIA、IWM、QQQ和SPY两周变化,找出本周领涨与落后者。
2026年7月20日当周是7月月度期权到期后的第一个完整周,其中包含5个交易日,期间没有休市。SPY周度收盘价较上周收盘价变动-0.59%;按开盘至收盘表现与过去一年各周比较,该周排名为43,共53周。以下每个数字均来自存储查询,所有统计窗口均固定到明确日期,因此重新运行SQL仍会得到相同结果。
盘面周报
周度变动区间为7月17日(周五)常规收盘至7月24日(周五)常规收盘。最后一列显示前一周数据,因此两周数据并列呈现。各行按字母顺序排列。
| ticker | 上周收盘价 | 本周收盘价 | 本周涨跌幅 (%) | 上周涨跌幅 (%) |
|---|---|---|---|---|
| DIA | 520.76 | 518.79 | -0.38 | -0.95 |
| IWM | 294.09 | 291.2 | -0.98 | -0.63 |
| QQQ | 695.3 | 684.22 | -1.59 | -4.17 |
| SPY | 743.2 | 738.85 | -0.59 | -1.55 |
每个数字背后的完整 SQL
SELECT ticker,
round(argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-17 13:30:00' AND window_start < '2026-07-17 20:00:00'), 2) AS prior_week_close,
round(argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-24 13:30:00' AND window_start < '2026-07-24 20:00:00'), 2) AS week_close,
round((argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-24 13:30:00' AND window_start < '2026-07-24 20:00:00')
/ argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-17 13:30:00' AND window_start < '2026-07-17 20:00:00') - 1) * 100, 2) AS week_change_pct,
round((argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-17 13:30:00' AND window_start < '2026-07-17 20:00:00')
/ argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-10 13:30:00' AND window_start < '2026-07-10 20:00:00') - 1) * 100, 2) AS prior_week_change_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
AND ((window_start >= '2026-07-10 13:30:00' AND window_start < '2026-07-10 20:00:00')
OR (window_start >= '2026-07-17 13:30:00' AND window_start < '2026-07-17 20:00:00')
OR (window_start >= '2026-07-24 13:30:00' AND window_start < '2026-07-24 20:00:00'))
GROUP BY ticker
ORDER BY ticker本周,DIA变动-0.38%,IWM变动-0.98%,QQQ变动-1.59%,SPY变动-0.59%,收于$738.85。前一周按相同字母顺序排列的数据分别为-0.95%、-0.63%、-4.17%和-1.55%。四个指数之间的差距,是业绩看板首先衡量的指标,而且这一差距并不总是很小。
相对于过去一年的单周表现
如果没有背后的分布数据,单周数字本身意义有限。本面板采用一致的方法重新计算过去一年的每一周:以常规交易时段的开盘价至收盘价计算,并将本周表现放入其中排名。
| 本周开盘至收盘涨跌幅 (%) | 最佳排名 | 比较周数 | 首周 | 本周交易日数 |
|---|---|---|---|---|
| -1.1 | 43 | 53 | 2025-07-21 | 5 |
每个数字背后的完整 SQL
SELECT round(anyIf(ret, wk = toDate('2026-07-20')), 2) AS week_open_to_close_pct,
arrayCount(x -> x > anyIf(ret, wk = toDate('2026-07-20')), groupArrayIf(ret, wk != toDate('2026-07-20'))) + 1 AS rank_best,
count() AS weeks_compared,
toString(min(wk)) AS first_week,
anyIf(sessions_measured, wk = toDate('2026-07-20')) AS sessions_this_week
FROM (
SELECT toStartOfWeek(toDate(toTimeZone(window_start, 'America/New_York')), 1) AS wk,
uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions_measured,
(argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100 AS ret
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime('2025-07-21 00:00:00')
AND window_start < toDateTime('2026-07-25 00:00:00')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY wk
HAVING sessions_measured >= 3
)按这一口径计算,SPY的回报率为-1.1%,在截至2025-07-21的过去53周中排名第43。请注意定义差异:本数据从本周首个常规交易时段的开盘价开始计算,而上方排行榜从上周收盘价开始计算。两种口径在各自出现的位置均有明确标注。
五个交易日,一个完整走势
| 日期 | SPY 收盘价 | 涨跌幅 (%) | SPY 成交股数(百万) |
|---|---|---|---|
| 2026-07-20 | 742.1 | -0.15 | 40.1 |
| 2026-07-21 | 748.32 | 0.84 | 25.6 |
| 2026-07-22 | 747.39 | -0.12 | 26.6 |
| 2026-07-23 | 738.24 | -1.22 | 48 |
| 2026-07-24 | 738.85 | 0.08 | 40.1 |
每个数字背后的完整 SQL
SELECT toString(d) AS date,
round(c, 2) AS spy_close,
round((c / prev_c - 1) * 100, 2) AS change_pct,
round(shares_m, 1) AS spy_shares_m
FROM (
SELECT d, c, shares_m,
lagInFrame(c) OVER (ORDER BY d ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_c
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMax(toFloat64(close), window_start) AS c,
toFloat64(sum(volume)) / 1e6 AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND ((window_start >= '2026-07-17 13:30:00' AND window_start < '2026-07-17 20:00:00')
OR (window_start >= '2026-07-20 13:30:00' AND window_start < '2026-07-24 20:00:00'))
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
GROUP BY d
)
)
WHERE d >= '2026-07-20'
ORDER BY date按交易日看,SPY周一变动为-0.15%,周二为0.84%,周三为-0.12%,周四为-1.22%,周五为0.08%,最终收于$738.85,成交量为40.1百万股。周一的数据相对于7月17日收盘价计算,后者是该期间开始前的上一交易日收盘价。
市场广度:逐个交易日观察
指数点位只是一个数字。市场广度统计有多少只股票与指数同步变动,并据此判断上涨的一周是普涨还是少数股票推动。
| 日期 | 上涨股数 | 下跌股数 | 平盘股数 | 测量标的数 |
|---|---|---|---|---|
| 2026-07-20 | 1268 | 2632 | 45 | 3945 |
| 2026-07-21 | 2516 | 1450 | 41 | 4007 |
| 2026-07-22 | 1595 | 2332 | 33 | 3960 |
| 2026-07-23 | 1232 | 2815 | 30 | 4077 |
| 2026-07-24 | 2273 | 1635 | 42 | 3950 |
每个数字背后的完整 SQL
SELECT toString(d) AS date, advancers, decliners, unchanged, measured_names
FROM (
SELECT d,
countIf(c > prev_c) AS advancers,
countIf(c < prev_c) AS decliners,
countIf(c = prev_c) AS unchanged,
count() AS measured_names
FROM (
SELECT d, c, dv,
lagInFrame(c) OVER (PARTITION BY ticker ORDER BY d ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_c
FROM (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMax(toFloat64(close), window_start) AS c,
sum(toFloat64(close) * toFloat64(volume)) AS dv
FROM global_markets.delayed_stocks_minute_aggs
WHERE ((window_start >= '2026-07-17 13:30:00' AND window_start < '2026-07-17 20:00:00')
OR (window_start >= '2026-07-20 13:30:00' AND window_start < '2026-07-24 20:00:00'))
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
GROUP BY ticker, d
)
)
WHERE d >= '2026-07-20' AND prev_c > 0 AND dv >= 5000000
GROUP BY d
)
ORDER BY date周一,1268只股票上涨,2632只下跌,纳入统计的股票共有3945只。到周五,上涨与下跌的数量分别为2273只和1635只,纳入统计的股票共有3950只。若某只股票在一个交易日的前后两侧没有收盘价,则不纳入统计。因此,每日纳入统计的数量会略有变化。
如果把同一问题放到整个星期来看:
| 上涨股数 | 下跌股数 | 平盘股数 | 测量标的数 | 因流动性筛选剔除 | 上涨股占比 (%) |
|---|---|---|---|---|---|
| 2437 | 3630 | 33 | 6100 | 5099 | 40 |
每个数字背后的完整 SQL
SELECT
countIf(cw > cp AND liquid) AS advancers,
countIf(cw < cp AND liquid) AS decliners,
countIf(cw = cp AND liquid) AS unchanged,
countIf(liquid) AS measured_names,
countIf(NOT liquid) AS dropped_by_liquidity_filter,
round(100.0 * countIf(cw > cp AND liquid) / countIf(liquid), 1) AS advancer_pct
FROM (
SELECT ticker, cp, cw, dv >= 5000000 AS liquid
FROM (
SELECT ticker,
argMaxIf(toFloat64(close), window_start, window_start < '2026-07-18 00:00:00') AS cp,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-24 13:30:00') AS cw,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-20 13:30:00') AS dv
FROM global_markets.delayed_stocks_minute_aggs
WHERE ((window_start >= '2026-07-17 13:30:00' AND window_start < '2026-07-17 20:00:00')
OR (window_start >= '2026-07-20 13:30:00' AND window_start < '2026-07-25 00:00:00'))
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
GROUP BY ticker
HAVING cp > 0 AND cw > 0
)
)在6100只达到500万美元常规交易时段成交额门槛的股票中,2437只收盘价高于7月17日收盘价,3630只低于该收盘价,上涨股票占比为40%。流动性筛选还排除了另外5099只在本周成交额低于该门槛的股票。这里仍将它们计入统计,而不是悄然剔除。
行业表现排名
以下为11只SPDR行业ETF从7月17日收盘至7月24日收盘期间的表现排名,由优到劣排列。
| 行业 | 周涨跌幅 (%) | 落后最佳点数 |
|---|---|---|
| Energy | 3.33 | 0 |
| Utilities | 2.5 | 0.83 |
| Industrials | 1.78 | 1.55 |
| Materials | 1.47 | 1.86 |
| Real Estate | 1.12 | 2.21 |
| Health Care | 0.91 | 2.42 |
| Technology | 0.18 | 3.15 |
| Financials | 0.13 | 3.2 |
| Staples | -1.27 | 4.6 |
| Communications | -3.96 | 7.29 |
| Consumer Discretionary | -5.2 | 8.53 |
每个数字背后的完整 SQL
SELECT sector, week_pct, round(max(week_pct) OVER () - week_pct, 2) AS points_behind_best
FROM (
SELECT multiIf(ticker = 'XLK', 'Technology', ticker = 'XLC', 'Communications', ticker = 'XLE', 'Energy',
ticker = 'XLF', 'Financials', ticker = 'XLI', 'Industrials', ticker = 'XLB', 'Materials',
ticker = 'XLP', 'Staples', ticker = 'XLRE', 'Real Estate', ticker = 'XLU', 'Utilities',
ticker = 'XLV', 'Health Care', 'Consumer Discretionary') AS sector,
round((cw / cp - 1) * 100, 2) AS week_pct
FROM (
SELECT ticker,
argMaxIf(toFloat64(close), window_start, window_start < '2026-07-18 00:00:00') AS cp,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-24 13:30:00') AS cw
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('XLB', 'XLC', 'XLE', 'XLF', 'XLI', 'XLK', 'XLP', 'XLRE', 'XLU', 'XLV', 'XLY')
AND ((window_start >= '2026-07-17 13:30:00' AND window_start < '2026-07-17 20:00:00')
OR (window_start >= '2026-07-24 13:30:00' AND window_start < '2026-07-24 20:00:00'))
GROUP BY ticker
HAVING cp > 0 AND cw > 0
)
)
ORDER BY week_pct DESCEnergy位居榜首,录得3.33%。Consumer Discretionary排名垫底,录得-5.2%,落后榜首8.53个百分点。这一差距就是本周的行业分化幅度,单独看也很有参考价值:如果11个行业的表现都相差不超过一个百分点,市场状态与行业表现差距达到两位数时截然不同。
资金流向
| ticker | 本周成交额(十亿美元) | 占领先者比例 (%) |
|---|---|---|
| MU | 158.1 | 100 |
| SPY | 133.9 | 84.7 |
| QQQ | 101.5 | 64.2 |
| NVDA | 93.9 | 59.4 |
| SNDK | 81.4 | 51.5 |
| TSLA | 79.1 | 50 |
| AMD | 57.9 | 36.6 |
| AAPL | 54.6 | 34.5 |
每个数字背后的完整 SQL
SELECT ticker, week_dollar_bn, round(100 * week_dollar_bn / max(week_dollar_bn) OVER (), 1) AS pct_of_leader
FROM (
SELECT ticker,
round(sum(toFloat64(close) * toFloat64(volume)) / 1e9, 1) AS week_dollar_bn
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-07-20 13:30:00' AND window_start < '2026-07-24 20:00:00'
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
AND ticker NOT IN ('SPCX')
GROUP BY ticker
ORDER BY week_dollar_bn DESC
LIMIT 8
)
ORDER BY week_dollar_bn DESCMU在五个交易日的正常交易时段成交额为158.1十亿美元,高于成交额为133.9十亿美元的SPY,以及成交额为101.5十亿美元的QQQ。榜单排名第八的AAPL,成交额相当于龙头股票34.5%的成交额。成交额反映本周市场资金集中交易的方向,但不一定与价格走势一致。按个股计算的对应指标是相对成交量。
本周涨跌幅最大的股票
拆股会改变成交价格显示,却不会改变资产价值:反向拆股会制造虚假的四位数涨幅,正向拆股则会制造同等幅度的虚假崩跌。本周有 26 反向拆股 和 12 次正向拆股。下方两个榜单均排除了在7月17日收盘至7月24日收盘期间完成拆股的股票。榜单衡量的正是这一时间区间内的价格变动。两个榜单还要求常规交易时段成交额达到500万美元。
| ticker | 板块 | 周涨跌幅 (%) | 本周成交额(百万美元) | 交易天数 | 占成交额最大值比例 (%) |
|---|---|---|---|---|---|
| STAK | gainers | 383.7 | 251.6 | 5 | 26 |
| ADVB | gainers | 277.1 | 875.7 | 5 | 90.3 |
| WLDS | gainers | 157.2 | 104.6 | 5 | 10.8 |
| ZYBT | gainers | 123.8 | 294.6 | 5 | 30.4 |
| CJMB | gainers | 111.3 | 131.8 | 5 | 13.6 |
| LVWR | gainers | 107.8 | 131.6 | 5 | 13.6 |
| OMH | gainers | 99.8 | 436.6 | 5 | 45 |
| PN | gainers | 97.5 | 89.7 | 5 | 9.3 |
| UTZ | gainers | 95.4 | 969.5 | 5 | 100 |
| GORO | gainers | 92.3 | 50.3 | 5 | 5.2 |
| LBGJ | decliners | -98.8 | 47.7 | 5 | 4.9 |
| SXTC | decliners | -97.4 | 40.6 | 5 | 4.2 |
| WETO | decliners | -86.4 | 8.8 | 5 | 0.9 |
| GVH | decliners | -78.8 | 17.2 | 5 | 1.8 |
| VEEE | decliners | -66.6 | 65.2 | 5 | 6.7 |
| CLBK | decliners | -53.5 | 953.7 | 5 | 98.4 |
| BIYA | decliners | -53.4 | 266.9 | 5 | 27.5 |
| LESL | decliners | -52.2 | 6.8 | 5 | 0.7 |
| QMLS | decliners | -48.7 | 37.2 | 5 | 3.8 |
| VCIG | decliners | -47.8 | 9.5 | 5 | 1 |
每个数字背后的完整 SQL
SELECT ticker, board, week_pct, week_dollar_m, sessions_traded,
round(100 * week_dollar_m / max(week_dollar_m) OVER (), 1) AS pct_of_dollar_max
FROM (
SELECT 'gainers' AS board, ticker, round((cw / cp - 1) * 100, 1) AS week_pct,
round(dv / 1e6, 1) AS week_dollar_m, sessions_traded
FROM (
SELECT ticker,
argMaxIf(toFloat64(close), window_start, window_start < '2026-07-18 00:00:00') AS cp,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-24 13:30:00') AS cw,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-20 13:30:00') AS dv,
uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-20 13:30:00') AS sessions_traded
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker NOT IN ('SPCX')
AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date > '2026-07-17' AND execution_date <= '2026-07-24')
AND ((window_start >= '2026-07-17 13:30:00' AND window_start < '2026-07-17 20:00:00')
OR (window_start >= '2026-07-20 13:30:00' AND window_start < '2026-07-25 00:00:00'))
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
GROUP BY ticker
HAVING cp > 0 AND cw > 0 AND dv >= 5000000
)
ORDER BY week_pct DESC
LIMIT 10
UNION ALL
SELECT 'decliners' AS board, ticker, round((cw / cp - 1) * 100, 1) AS week_pct,
round(dv / 1e6, 1) AS week_dollar_m, sessions_traded
FROM (
SELECT ticker,
argMaxIf(toFloat64(close), window_start, window_start < '2026-07-18 00:00:00') AS cp,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-24 13:30:00') AS cw,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-20 13:30:00') AS dv,
uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-20 13:30:00') AS sessions_traded
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker NOT IN ('SPCX')
AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date > '2026-07-17' AND execution_date <= '2026-07-24')
AND ((window_start >= '2026-07-17 13:30:00' AND window_start < '2026-07-17 20:00:00')
OR (window_start >= '2026-07-20 13:30:00' AND window_start < '2026-07-25 00:00:00'))
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
GROUP BY ticker
HAVING cp > 0 AND cw > 0 AND dv >= 5000000
)
ORDER BY week_pct ASC
LIMIT 10
)
ORDER BY board DESC, abs(week_pct) DESC要登上任一榜单,股票都必须出现实际价格变动。榜单中涨幅最小的股票上涨了 92.3%,跌幅最小的股票下跌了 -47.8%。在极端案例中,STAK 在成交额为 251.6 百万美元的情况下上涨了 383.7%;LBGJ 在成交额为 47.7 百万美元的情况下下跌了 -98.8%。这一下跌幅度接近该股票的全部报价价值,因此榜单附带了相应的成交记录:LBGJ 在五个交易日中有 5 个交易日出现常规交易时段成交柱,且在榜单衡量的两个收盘时点之间没有发生针对该股票的拆股。
报价价差:逐个交易时段观察
价格最受关注,但完成交易也有成本。这里以SPY为例,逐个交易时段直接根据原始NBBO逐笔数据测算报价价差,而不是使用任何汇总数据。
| 日期 | 中位买卖价差(基点) | 报价更新(百万) | 单边报价数 | 交叉报价数 |
|---|---|---|---|---|
| 2026-07-20 | 0.27 | 3.89 | 0 | 1084 |
| 2026-07-21 | 0.27 | 2.29 | 0 | 333 |
| 2026-07-22 | 0.27 | 2.51 | 0 | 747 |
| 2026-07-23 | 0.27 | 5.1 | 0 | 5906 |
| 2026-07-24 | 0.27 | 4.4 | 0 | 2777 |
每个数字背后的完整 SQL
SELECT toString(toDate(sip_timestamp)) AS date,
round(quantileExactIf(0.5)(
10000 * (toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2),
bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price), 2) AS median_spread_bps,
round(count() / 1e6, 2) AS quote_updates_m,
countIf(bid_price <= 0 OR ask_price <= 0) AS one_sided_quote_count,
countIf(bid_price > ask_price AND bid_price > 0 AND ask_price > 0) AS crossed_quote_count
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'SPY'
AND sip_timestamp >= '2026-07-20 13:30:00'
AND sip_timestamp < '2026-07-24 20:00:00'
AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
GROUP BY toDate(sip_timestamp)
HAVING countIf(bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price) > 0
ORDER BY toDate(sip_timestamp)SPY的报价价差中位数,周一为中间价的0.27个基点,周五为0.27个基点;对应的NBBO更新次数分别为3.89百万次和4.4百万次。最后两列属于披露信息,而非核心结论:周一的中位数计算纳入了0条单边报价和1084条交叉报价,而不是将其静默剔除。交叉报价是指买价高于卖价。这通常是将多个交易场所的数据以纳秒级时间分辨率合并后形成的综合行情源伪象。
月度到期后的期权周
7月月度期权在本周开盘前的周五到期,因此本周五个交易日内交易的每份合约,都是该到期日之后仍存续的合约。到期时间决定了当日期权交易者的交易节奏。
| 日期 | 合约(百万) | 0DTE占比 | 看涨期权占比 | 7月24日到期占比 |
|---|---|---|---|---|
| 2026-07-20 | 64 | 40.2 | 55.3 | 15.1 |
| 2026-07-21 | 57.3 | 29.5 | 53.9 | 17 |
| 2026-07-22 | 55.8 | 36.1 | 56.4 | 19.9 |
| 2026-07-23 | 66.2 | 26.4 | 53.4 | 26.4 |
| 2026-07-24 | 71.1 | 49 | 53.5 | 49 |
每个数字背后的完整 SQL
SELECT toString(toDate(sip_timestamp)) AS date,
round(toFloat64(sum(size)) / 1e6, 1) AS contracts_m,
round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = formatDateTime(toDate(sip_timestamp), '%y%m%d')) / sum(size), 1) AS pct_0dte,
round(100.0 * sumIf(size, substring(ticker, length(ticker) - 8, 1) = 'C') / sum(size), 1) AS pct_call,
round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260724') / sum(size), 1) AS pct_expiring_jul24
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-20 00:00:00' AND sip_timestamp < '2026-07-25 00:00:00'
GROUP BY toDate(sip_timestamp)
ORDER BY toDate(sip_timestamp)周一合约成交量为64百万份,周五为71.1百万份。同日到期合约占比,即在交易当日到期的合约占比,周一为40.2%,周五(本周到期交易日)为49%。看涨期权占周五合约成交量的53.5%。这种到期日效应从开盘首日就已显现:周一成交量中已有15.1%来自于定于周五到期的合约。面对如此庞大的未平仓合约量,一些交易者会关注最大痛点位,即到期合约链对持有人支付金额最低的行权价。不过,最终结算价是否真的会接近该位置,仍需核实,不能直接假定。
本周各期限利率
| 日期 | 2年期收益率(%) | 10年期收益率(%) | 30年期收益率(%) | 2年-10年利差(基点) | 10年期较前收盘变动(基点) |
|---|---|---|---|---|---|
| 2026-07-17 | 4.18 | 4.55 | 5.06 | 37 | 0 |
| 2026-07-20 | 4.21 | 4.6 | 5.11 | 39 | 5 |
| 2026-07-21 | 4.26 | 4.63 | 5.13 | 37 | 8 |
| 2026-07-22 | 4.31 | 4.67 | 5.15 | 36 | 12 |
| 2026-07-23 | 4.37 | 4.71 | 5.17 | 34 | 16 |
| 2026-07-24 | 4.33 | 4.69 | 5.16 | 36 | 14 |
每个数字背后的完整 SQL
SELECT toString(date) AS date,
round(toFloat64(yield_2_year), 2) AS yield_2y_pct,
round(toFloat64(yield_10_year), 2) AS yield_10y_pct,
round(toFloat64(yield_30_year), 2) AS yield_30y_pct,
round((toFloat64(yield_10_year) - toFloat64(yield_2_year)) * 100) AS spread_2s10s_bp,
round((toFloat64(yield_10_year) - (SELECT toFloat64(any(yield_10_year)) FROM global_markets.treasury_yields WHERE date = '2026-07-17')) * 100) AS chg_10y_from_prior_close_bp
FROM global_markets.treasury_yields
WHERE date >= '2026-07-17' AND date <= '2026-07-24'
ORDER BY date以7月17日的成交价为基准,十年期收益率截至文件中的最后一笔成交变动了14个基点,报4.69%;两年期收益率为4.33%,三十年期收益率为5.16%。两年至十年期利差在本组数据结束时为36个基点。美国财政部文件通常比市场行情晚一个交易时段,因此本面板包含6笔成交,表格中列出了每笔成交的日期。
空头:每日文件
FINRA每天发布卖空成交量文件。卖空成交量反映的是每日卖空交易的总流量,而不是空头持仓。这些文件有时会出现截断,因此在引用其中的任何比率前,必须先评估数据覆盖情况。
| 日期 | 文件中股票代码数 | 卖空股数(十亿) | 占最大文件比例 |
|---|---|---|---|
| 2026-07-20 | 15098 | 4.71 | 100 |
| 2026-07-21 | 15102 | 5.28 | 100 |
| 2026-07-22 | 14984 | 4.59 | 99.2 |
| 2026-07-23 | 4816 | 1.74 | 31.9 |
| 2026-07-24 | 15062 | 4.27 | 99.7 |
每个数字背后的完整 SQL
SELECT date, tickers_on_file, short_shares_bn,
round(100.0 * tickers_on_file / max(tickers_on_file) OVER (), 1) AS pct_of_fullest_file
FROM (
SELECT toString(date) AS date,
uniqExact(ticker) AS tickers_on_file,
round(sum(short_shares) / 1e9, 2) AS short_shares_bn
FROM (
SELECT date, ticker, max(short_volume) AS short_shares
FROM global_markets.stocks_short_volume
WHERE date >= '2026-07-20' AND date <= '2026-07-24'
GROUP BY date, ticker
)
GROUP BY date
)
ORDER BY date本周共有5份每日文件可用。第一份文件包含15098个ticker和4.71十亿股标记为卖空的股票;最后一份包含15062个ticker,仅相当于最完整文件中ticker数量的99.7%。如果某份文件的规模明显低于相邻文件,那么基于该文件提出的单个标的卖空成交量结论,在文件重新提交前都无法核实。
本周背后的日历
| 日期 | 申报数 | Form 4 | Form 8-K | F-424B2 |
|---|---|---|---|---|
| 2026-07-20 | 3013 | 632 | 166 | 663 |
| 2026-07-21 | 3275 | 503 | 250 | 1083 |
| 2026-07-22 | 3461 | 549 | 279 | 569 |
| 2026-07-23 | 3551 | 545 | 369 | 626 |
| 2026-07-24 | 3844 | 644 | 223 | 623 |
每个数字背后的完整 SQL
SELECT toString(filing_date) AS date,
count() AS filings,
countIf(form_type = '4') AS form4,
countIf(form_type = '8-K') AS form8k,
countIf(form_type = '424B2') AS f424b2
FROM global_markets.stocks_sec_edgar_index
WHERE filing_date >= '2026-07-20' AND filing_date <= '2026-07-24'
GROUP BY filing_date
ORDER BY date记录中的第一场交易日包含3013份申报文件,其中632份为内部人士表格4报告,166份为8-K文件。最后一场交易日包含3844份文件,其中有644份表格4和223份8-K。全周有5个交易日留有EDGAR每日索引;该索引按自身时间表发布,偶尔会晚于交易记录。
| 本周申报数 | 文件中的申报天数 | 本周除息日 | 本周家庭除息日 | 本周反向拆股 | 本周正向拆股 | 本周上市数 | 本周新闻数 | 本周新闻发布方数 |
|---|---|---|---|---|---|---|---|---|
| 17144 | 5 | 594 | 1 | 26 | 12 | 4 | 852 | 2 |
每个数字背后的完整 SQL
SELECT
(SELECT count() FROM global_markets.stocks_sec_edgar_index WHERE filing_date >= '2026-07-20' AND filing_date <= '2026-07-24') AS filings_week,
(SELECT uniqExact(filing_date) FROM global_markets.stocks_sec_edgar_index WHERE filing_date >= '2026-07-20' AND filing_date <= '2026-07-24') AS filing_days_on_file,
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date >= '2026-07-20' AND ex_dividend_date <= '2026-07-24') AS ex_dividends_week,
(SELECT countIf(ticker IN ('AAPL', 'MSFT', 'JPM', 'KO', 'JNJ', 'XOM', 'CVX', 'PG', 'WMT', 'HD')) FROM global_markets.stocks_dividends WHERE ex_dividend_date >= '2026-07-20' AND ex_dividend_date <= '2026-07-24') AS household_ex_dividends_week,
(SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date >= '2026-07-20' AND execution_date <= '2026-07-24') AS reverse_splits_week,
(SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date >= '2026-07-20' AND execution_date <= '2026-07-24') AS forward_splits_week,
(SELECT count() FROM global_markets.stocks_ipos WHERE listing_date >= '2026-07-20' AND listing_date <= '2026-07-24') AS listings_week,
(SELECT count() FROM global_markets.stocks_news WHERE published_utc >= '2026-07-20 04:00:00' AND published_utc < '2026-07-25 04:00:00') AS news_week,
(SELECT uniqExact(JSONExtractString(publisher, 'name')) FROM global_markets.stocks_news WHERE published_utc >= '2026-07-20 04:00:00' AND published_utc < '2026-07-25 04:00:00') AS news_publishers_week本周其余文件包括:17144份SEC申报文件,分布在5个有索引的交易日;594条除息记录,其中1条来自本面板跟踪的十个家喻户晓的名称;26次反向拆股和12次正向拆股;4宗新上市;以及来自2家出版商的852篇文章。最后两项反映的是一个信息源的关注度,而不是全球媒体的覆盖范围。
已核实的交易时段
| 本周交易时段数 | 首个交易时段 | 最后交易时段 | 本周常规K线数 | 本周节假日行数 | 上涨时段数 | 下跌时段数 | 下次休市日期 | 下次休市名称 |
|---|---|---|---|---|---|---|---|---|
| 5 | 2026-07-20 | 2026-07-24 | 1950 | 0 | 2 | 3 | 2026-09-07 | Labor Day |
每个数字背后的完整 SQL
WITH spy AS (
SELECT d, c, lagInFrame(c) OVER (ORDER BY d ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS p
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMax(toFloat64(close), window_start) AS c
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND ((window_start >= '2026-07-17 13:30:00' AND window_start < '2026-07-17 20:00:00')
OR (window_start >= '2026-07-20 13:30:00' AND window_start < '2026-07-24 20:00:00'))
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
GROUP BY d
)
)
SELECT
uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions_in_week,
toString(min(toDate(toTimeZone(window_start, 'America/New_York')))) AS first_session,
toString(max(toDate(toTimeZone(window_start, 'America/New_York')))) AS last_session,
count() AS regular_bars_in_week,
(SELECT count() FROM global_markets.stocks_market_holidays WHERE date >= '2026-07-20' AND date <= '2026-07-24') AS holiday_rows_in_week,
(SELECT countIf(c > p) FROM spy WHERE d >= '2026-07-20') AS up_sessions,
(SELECT countIf(c < p) FROM spy WHERE d >= '2026-07-20') AS down_sessions,
(SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-24' AND date <= '2026-12-31' AND status = 'closed') AS next_closure_date,
(SELECT argMin(name, date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-24' AND date <= '2026-12-31' AND status = 'closed') AS next_closure_name
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= '2026-07-20 13:30:00' AND window_start < '2026-07-24 20:00:00'
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199在窗口期内,2026-07-20至2026-07-24共5个交易时段,其中包含0个假日休市日。SPY在这些交易时段内产生了1950条常规交易时段的分钟线。2个交易时段收盘价高于前一交易日收盘价,3个低于前一交易日收盘价。下一次计划休市时间为Labor Day,日期是2026-09-07。
待发布
下一周的数据,请查阅我们的表格:
| 下周休市数 | 下周除息 | 下周家庭除息 | 下周拆股 | 7月31日到期量占周五成交量百分比 | 最新卖空利息结算 |
|---|---|---|---|---|---|
| 0 | 934 | 0 | 26 | 14.2 | 2026-07-15 |
每个数字背后的完整 SQL
SELECT
(SELECT count() FROM global_markets.stocks_market_holidays WHERE date >= '2026-07-27' AND date <= '2026-07-31' AND status != 'open') AS closures_next_week,
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date >= '2026-07-27' AND ex_dividend_date <= '2026-07-31') AS ex_dividends_next_week,
(SELECT countIf(ticker IN ('AAPL', 'MSFT', 'JPM', 'KO', 'JNJ', 'XOM', 'CVX', 'PG', 'WMT', 'HD')) FROM global_markets.stocks_dividends WHERE ex_dividend_date >= '2026-07-27' AND ex_dividend_date <= '2026-07-31') AS household_ex_div_next_week,
(SELECT count() FROM global_markets.stocks_splits WHERE execution_date >= '2026-07-27' AND execution_date <= '2026-07-31') AS splits_next_week,
(SELECT round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260731') / sum(size), 1) FROM global_markets.options_trades WHERE sip_timestamp >= '2026-07-24 00:00:00' AND sip_timestamp < '2026-07-25 00:00:00') AS jul31_expiry_pct_of_friday_volume,
(SELECT toString(max(settlement_date)) FROM global_markets.stocks_short_interest WHERE settlement_date <= '2026-07-24') AS latest_short_interest_settlement节假日表显示,下一周将有 0 天休市。其中包含 934 个除息记录,0 个来自家庭类股票,以及 26 起已安排的拆股。周五的期权成交量中,14.2% 已对应到期日为下一周周五的合约。记录中最近一次的空头持仓结算日为 2026-07-15。相关文件发布存在较长滞后,因此我们另有专文解释。
常见问题
2026年7月20日当周股市表现如何?
SPY从7月17日到7月24日的收盘价变动为-0.59%,QQQ为-1.59%,DIA为-0.38%,IWM为-0.98%。在成交活跃的股票中,2437上涨,3630下跌。
2026年7月20日当周哪个板块领涨?
Energy,涨幅为3.33%。11只SPDR板块ETF中表现最弱的是Consumer Discretionary,涨幅为-5.2%,落后8.53个百分点。
2026年7月20日当周有多少个交易日?
5,交易日范围为2026-07-20至2026-07-24,期间包含0个假日记录。下一次计划休市日为Labor Day。
2026年7月20日当周哪个ticker成交金额最高?
MU,常规交易时段成交额为158.1十亿美元,高于SPY的133.9十亿美元。
数据说明
所有时间戳均为 UTC;每个交易日的常规交易时段为 13:30-20:00 UTC,周边界从 7 月 17 日常规交易收盘延续至 7 月 24 日。本文所有收盘价对收盘价面板,均取比较双方各自常规交易时段的最后一分钟K线。因此,盘前盘后交易时段的成交价不会决定周收盘价。过去一年排名采用周度开盘价至收盘价收益率,因此不会与收盘价对收盘价排行榜一致;文中会在相应位置标明两种定义。
周度市场广度和涨跌幅排行榜均采用五百万美元常规交易时段成交额筛选条件。市场广度还会公布被该筛选条件排除的股票数量。涨跌幅排行榜排除 7 月 17 日收盘后至 7 月 24 日期间完成拆股的股票,即排除变化测算所覆盖的完整区间。这样既能识别记录在期间周末的拆股,也能识别记录在交易日的拆股。排行榜不会排除杠杆ETF和反向ETF,因此在单边周中,这类产品可能占据排行榜前列或末位。
跌幅榜底部的股票,其一周报价价值可能接近完全损失。该榜单会公布每只股票在五个交易日中实际出现成交价的天数。SPY spread面板会统计单边报价和交叉报价,不会静默剔除这些报价;中位数则基于剩余的有效报价计算。美国财政部文件通常比行情数据晚约一个交易日,EDGAR每日索引也按自身时间表发布。因此,利率和申报文件面板会报告实际覆盖的天数。
本文不包含任何隐含波动率指数。这些序列未获授权进入该数据仓库。因此,波动性通过行情数据中的价格区间、当日到期权利金占比和报价行为进行观察。
方法论
- 市场数据来源:综合行情。价格和成交量使用
delayed_stocks_minute_aggs,NBBO 面板使用cache_stocks_quotes,期权周度数据使用options_trades。 - 收盘价:交易时段的最后一个常规分钟 K 线。绝不使用假定的 16:00 成交,也不使用盘后交易时段的成交。
- 交易时段:根据节假日表和实际观测到的 K 线核实,绝不根据日历推定。
- 时区处理:WHERE 子句使用原始 UTC 字面量;
toTimeZone仅出现在 SELECT 列表中,用于标注 ET 时区。 - 小数处理:价格、规模和成交量列在任何除法或乘法运算前,均转换为 Float64。
- 确定性聚合:全程使用精确分位数;文中每项排序或方向性表述,均通过合理性边界进行编码验证。
- 数据仓库截至日期:2026 年 7 月 26 日。
交叉链接:本周系列的上一期、什么是买卖价差、期权何时到期、空头利息与卖空成交量的区别,以及 两年期至十年期利差。
如果您想将时间窗口改为其他周次,上述每条查询都可在 Strasmore terminal 上直接运行,无需修改。