2026年7月20日當週市場回顧與板塊表現
掌握2026年7月20日當週指數表現、類股分化與市場廣度,檢視選擇權到期後資金流向及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週一,在 3945 檔納入統計的股票中,1268 檔上漲,2632 檔下跌。到了週五,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 DESC在這五個交易日中,MU正常交易時段成交額為158.1十億美元,居各標的之首;其次為SPY,成交額為133.9十億美元;QQQ則為101.5十億美元。榜單排名第八的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 天出現正常交易時段成交柱,且在榜單衡量的兩個收市時點之間,沒有對該股執行任何分割。
逐個交易日觀察的報價價差
價格最受關注,但完成交易的成本則是報價價差。本文以每個交易日為單位,直接從原始 NBBO 磁帶計算 SPY 的報價價差,而非採用任何彙總數據。
| 日期 | 中位數買賣價差(基點) | 報價更新(百萬) | 單邊報價數 | 交叉報價數 |
|---|---|---|---|---|
| 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 個基點;兩日分別對應 3.89 百萬筆及 4.4 百萬筆 NBBO 更新。最後兩欄是揭露資訊,而非研究結果:週一的中位數計算中,納入了 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個基點。Treasury 的檔案約比盤面晚一個交易時段,因此本面板包含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 billion 股標記為放空的股票;最後一份包含 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 份為內部人 Form 4 報告,166 份為 8-K。最後一個交易時段載有 3844 份文件,其中 644 份為 Form 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 billion dollars,高於 SPY的 133.9 billion dollars。
資料說明
所有儲存的時間戳記均為 UTC;每個交易日的正常交易時段為 13:30-20:00 UTC,每週區間則從7月17日正常交易收市延伸至7月24日。本文所有收盤對收盤面板,均取比較兩端各自正常交易時段的最後一根分鐘 K 線,因此延長交易時段的成交不會設定週收盤價。過去一年排名採用每週開盤至收盤報酬,因此不會與收盤對收盤排行榜一致;兩種定義均在各自出現的位置加以標示。每週市場廣度與漲跌幅排行榜均套用正常交易時段成交額達500萬美元的篩選條件;市場廣度面板也會公布遭該條件排除的標的數量。漲跌幅排行榜排除任何在7月17日收市後至7月24日期間完成拆股的標的,因為這正是變動幅度的計算區間;如此也會涵蓋記錄於中間週末或某一交易時段的拆股。排行榜不排除槓桿型與反向 ETF,因此在單方向行情週,這類 ETF 可能主導榜單。跌幅排行榜底部的標的,該週報價價值可能接近完全損失;該排行榜也會公布每個標的在五個交易日中有成交紀錄的天數。SPY spread 面板會計入單邊報價與交叉報價,不會默默將其剔除;中位數則取自剩餘的有效報價。Treasury 檔案約落後市場行情一個交易時段,EDGAR 每日索引也依自身時程發布,因此利率與申報文件面板會報告實際涵蓋的天數。本文未納入任何隱含波動率指數:這些序列未獲授權存入本資料倉,因此波動性是透過行情中的價格區間、當日 options 成交占比與報價行為加以觀察。
方法論
- 市場資料來源:consolidated tape。價格與成交量使用
delayed_stocks_minute_aggs,NBBO 面板使用cache_stocks_quotes,選擇權週資料使用options_trades。 - 收盤價:該交易時段最後一根正常交易時段的分鐘 K 線;絕不假設為 16:00 的成交,也不採用盤後交易時段的成交。
- 交易時段:依假日表及實際觀察到的 K 線確認,絕不僅依曆法推定。
- 時區處理:WHERE 條件使用原始 UTC 字面值;
toTimeZone僅出現在 SELECT 清單中,用於 ET 標籤。 - 小數位:價格、規模及成交量欄位在任何除法或乘法運算前,均轉換為 Float64。
- 確定性彙總:全程使用精確分位數,且所有排序或符號判斷均在文字說明中以合理性界限加以編碼。
- 資料倉儲截至日期:2026年7月26日。
交叉連結:本週系列的上一期、什麼是買賣價差、選擇權何時到期、放空未平倉量與放空成交量的差異,以及 2至10年期利差。
如果要將不同週別的期間重新指定,每個上述查詢都能在 Strasmore 終端上直接執行,無須修改。