tổng kết thị trường tuần 20 tháng 7 năm 2026
Tuần sau đáo hạn quyền chọn tháng 7: điểm số chỉ số, phân tán ngành, độ rộng hàng tuần và dòng tiền vào đâu trên bảng điện.
Tuần từ ngày 20 tháng 7 năm 2026 là tuần trọn vẹn đầu tiên sau ngày đáo hạn quyền chọn hàng tháng của tháng 7, và tuần này có 5 phiên giao dịch mà không có phiên đóng cửa nào nằm trong đó. Biến động giá đóng cửa so với đóng cửa của SPY trong tuần là -0.59%, và khi đo lường từ mở cửa đến đóng cửa so với các tuần trong năm trước đó, nó xếp hạng 43 trên 53. Mọi con số bên dưới đều được đọc từ một truy vấn đã lưu, và mọi khung thời gian đều được gắn với các ngày cụ thể, vì vậy việc chạy lại SQL sẽ trả về các số liệu tương tự này.
Tuần trên bảng điểm
Thay đổi hàng tuần được tính từ lúc đóng cửa phiên thường ngày thứ Sáu 17 tháng 7 đến thứ Sáu 24 tháng 7. Cột cuối cùng ghi số liệu của tuần trước đó, để hai tuần nằm cạnh nhau. Các hàng được sắp xếp theo thứ tự bảng chữ cái.
Câu lệnh SQL chính xác đằng sau mỗi con số
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 tickerTrong tuần: DIA di chuyển -0.38%, IWM -0.98%, QQQ -1.59% và SPY -0.59% đến mức đóng cửa $738.85. Số liệu tuần trước đó, theo cùng thứ tự bảng chữ cái, lần lượt là -0.95%, -0.63%, -4.17% và -1.55%. Khoảng cách giữa bốn chỉ số là điều đầu tiên mà bảng điểm đo lường, và không phải lúc nào cũng nhỏ.
Tuần này so với năm trước
Số liệu của một tuần không có nhiều ý nghĩa nếu không có phân bố phía sau. Bảng này tính toán lại mọi tuần trước đó theo cùng logic, từ mở cửa đến đóng cửa trong phiên giao dịch thông thường, và xếp hạng tuần hiện tại trong đó.
Câu lệnh SQL chính xác đằng sau mỗi con số
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
)Đo lường theo cách đó, SPY đạt -1.1% và xếp hạng 43 trong 53 tuần tính đến 2025-07-21. Lưu ý khoảng cách định nghĩa: con số này bắt đầu từ lúc mở cửa phiên giao dịch thông thường đầu tiên của tuần, trong khi bảng điểm phía trên bắt đầu từ lúc đóng cửa tuần trước. Cả hai đều được ghi chú ở mọi nơi chúng xuất hiện.
Năm phiên, một mạch chuyển động
Câu lệnh SQL chính xác đằng sau mỗi con số
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 dateQua từng phiên, biến động của SPY ghi nhận -0.15% vào thứ Hai, 0.84% vào thứ Ba, -0.12% vào thứ Tư, -1.22% vào thứ Năm và 0.08% vào thứ Sáu, kết thúc ở mức $738.85 trên khối lượng 40.1 triệu cổ phiếu. Số liệu thứ Hai được tính so với mức đóng cửa ngày 17 tháng 7, phiên giao dịch ngay trước giai đoạn này.
Diễn biến độ rộng thị trường theo từng phiên
Một mức chỉ số chỉ là một con số. Độ rộng thị trường đếm số lượng cổ phiếu đi cùng với chỉ số đó, và đây là con số quyết định một tuần tăng điểm là rộng hay hẹp.
Câu lệnh SQL chính xác đằng sau mỗi con số
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 dateVào thứ Hai, 1268 trong số 3945 mã được đo lường tăng và 2632 giảm. Đến thứ Sáu, tỷ lệ này là 2273 mã tăng so với 1635 mã giảm, trong tổng số 3950. Các mã không có giá đóng cửa ở cả hai phiên so sánh sẽ bị loại, đó là lý do số lượng mã được đo lường dao động nhẹ qua từng ngày.
Cùng một câu hỏi được đặt ra một lần, cho toàn bộ tuần:
Câu lệnh SQL chính xác đằng sau mỗi con số
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
)
)Trong số 6100 mã vượt qua ngưỡng thanh khoản năm triệu đô la trong giờ giao dịch thông thường, 2437 mã đóng cửa trên mức đóng cửa ngày 17 tháng 7 và 3630 mã đóng cửa dưới mức đó, tỷ lệ mã tăng là 40%. Bộ lọc thanh khoản đã loại thêm 5099 mã giao dịch dưới ngưỡng đó trong tuần. Các mã này được tính ở đây thay vì bị loại bỏ một cách âm thầm.
Bảng điểm ngành
Mười một quỹ ETF ngành SPDR, từ phiên đóng cửa ngày 17 tháng 7 đến ngày 24 tháng 7, xếp hạng từ tốt nhất đến tệ nhất.
Câu lệnh SQL chính xác đằng sau mỗi con số
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 đứng đầu bảng ở mức 3.33%. Consumer Discretionary đứng cuối bảng ở mức -5.2%, kém 8.53 điểm phần trăm. Khoảng cách đó là mức phân tán ngành trong tuần, và đáng để tự mình đánh giá: một tuần mà cả mười một ngành đều nằm trong khoảng cách một điểm với nhau là một thị trường rất khác so với tuần mà mức chênh lệch lên tới hai con số.
Dòng tiền đã đi về đâu
Câu lệnh SQL chính xác đằng sau mỗi con số
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 ghi nhận 158.1 tỷ đô la khối lượng giao dịch giờ hành chính trong năm phiên, vượt qua SPY với 133.9 tỷ và QQQ với 101.5 tỷ. Đứng thứ tám trên bảng xếp hạng, AAPL giao dịch 34.5% so với khối lượng của mã dẫn đầu. Kỷ lục khối lượng cho thấy thị trường đã dành cả tuần để tranh luận ở đâu, và điều đó không nhất thiết phải trùng khớp với diễn biến giá. Phiên bản tính theo từng mã của chỉ số này là khối lượng tương đối.
Những cổ phiếu biến động mạnh nhất tuần
Chia tách làm thay đổi giá hiển thị nhưng không thay đổi giá trị thực: chia tách ngược tạo ra mức tăng giả bốn chữ số, chia tách thuận tạo ra mức giảm giả tương ứng. Tuần này có 25 chia tách ngược và 11 chia tách thuận, và cả hai bảng bên dưới đều loại trừ bất kỳ mã nào có đợt chia tách diễn ra giữa phiên đóng cửa ngày 17 tháng 7 và phiên đóng cửa ngày 24 tháng 7 – đúng khoảng thời gian đo lường thay đổi. Cả hai bảng cũng yêu cầu khối lượng giao dịch trong giờ chính thức tối thiểu năm triệu đô la.
Câu lệnh SQL chính xác đằng sau mỗi con số
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Để lọt vào một trong hai bảng, cổ phiếu phải có biến động thực sự. Cổ phiếu tăng nhẹ nhất được hiển thị tăng 92.3%, và cổ phiếu giảm nhẹ nhất ghi nhận mức giảm -47.8%. Ở hai thái cực, STAK biến động 383.7% với khối lượng giao dịch 251.6 triệu đô la, và LBGJ biến động -98.8% với khối lượng 47.7 triệu đô la. Mức giảm đó gần bằng toàn bộ giá trị niêm yết của mã, nên bảng đi kèm với một xác nhận: LBGJ ghi nhận các thanh giá trong giờ chính thức ở 5 trên tổng số năm phiên, và không có đợt chia tách nào diễn ra đối với mã này giữa hai phiên đóng cửa mà bảng đo lường.
Chênh lệch giá yết, từng phiên giao dịch
Giá là yếu tố chính. Chi phí để thực hiện giao dịch là chênh lệch giá yết, được đo trên SPY theo từng phiên, trực tiếp từ băng NBBO thô chứ không phải từ bất kỳ bản tóm tắt nào.
Câu lệnh SQL chính xác đằng sau mỗi con số
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)Chênh lệch giá yết trung vị của SPY đo được 0.27 điểm cơ bản của giá giữa vào thứ Hai và 0.27 vào thứ Sáu, trên 3.89 triệu và 4.4 triệu bản cập nhật NBBO. Hai cột cuối cùng là phần công bố chứ không phải kết quả: 0 báo giá một chiều và 1084 báo giá chéo đã được tính vào giá trị trung vị của thứ Hai thay vì bị loại bỏ một cách âm thầm. Báo giá chéo, giá mua cao hơn giá bán, là một hiện tượng thông thường của một luồng dữ liệu tổng hợp được ghép từ nhiều sàn giao dịch với độ phân giải nano giây.
Tuần giao dịch quyền chọn sau ngày đáo hạn hàng tháng
Đợt đáo hạn hàng tháng của tháng 7 rơi vào thứ Sáu trước khi tuần này mở cửa, vì vậy mọi hợp đồng giao dịch trong năm phiên này đều là những hợp đồng sống sót sau sự kiện đó. Thời điểm đáo hạn tạo nên nhịp điệu mà nhóm giao dịch trong ngày tuân theo.
Câu lệnh SQL chính xác đằng sau mỗi con số
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)Khối lượng hợp đồng đạt 64 triệu vào thứ Hai và 71.1 triệu vào thứ Sáu. Tỷ trọng giao dịch trong ngày, tức các hợp đồng đáo hạn vào chính phiên giao dịch đó, ghi nhận 40.2% vào thứ Hai so với 49% vào thứ Sáu – phiên đáo hạn của tuần. Quyền chọn mua chiếm 53.5% khối lượng hợp đồng của thứ Sáu. Và sức hút của thứ Sáu đó đã hiện rõ ngay từ phiên mở đầu: 15.1% khối lượng thứ Hai đã nằm trong các hợp đồng có ngày đáo hạn trùng với phiên đó.
Lãi suất trong tuần
Câu lệnh SQL chính xác đằng sau mỗi con số
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 dateTính từ mức chốt ngày 17 tháng 7, lãi suất kỳ hạn 10 năm biến động 16 điểm cơ bản xuống 4.71% ở lần chốt cuối cùng trong dữ liệu, với kỳ hạn 2 năm ở 4.37% và kỳ hạn 30 năm ở 5.17%. chênh lệch hai-năm-mười-năm kết thúc chuỗi ở 34 điểm cơ bản. Tệp dữ liệu của Kho bạc chạy chậm hơn thị trường thực tế khoảng một phiên, vì vậy bảng này mang 5 lần chốt, mỗi lần đều có ghi ngày trong bảng.
Các báo cáo bán khống hàng ngày
FINRA công bố báo cáo khối lượng bán khống hàng ngày. Khối lượng bán khống là dòng tiền gộp hàng ngày chứ không phải vị thế, và các báo cáo này đôi khi bị cắt ngắn, vì vậy phạm vi dữ liệu được đo lường trước khi bất kỳ tỷ lệ nào được trích dẫn từ chúng.
Câu lệnh SQL chính xác đằng sau mỗi con số
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 date5 báo cáo hàng ngày hiện có trong tuần. Báo cáo đầu tiên chứa 15098 mã chứng khoán và 4.71 tỷ cổ phiếu được đánh dấu bán khống; báo cáo cuối cùng chứa 15062 mã chứng khoán, tương đương 99.7% số lượng mã của báo cáo đầy đủ nhất. Bất kỳ tuyên bố nào về khối lượng bán khống theo từng mã được trích từ một báo cáo có số lượng thấp hơn đáng kể so với các báo cáo lân cận đều không thể kiểm chứng cho đến khi báo cáo đó được nộp lại.
Lịch đằng sau tuần giao dịch
Câu lệnh SQL chính xác đằng sau mỗi con số
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 datePhiên đầu tiên trong hồ sơ có 3012 hồ sơ nộp, trong đó 632 là báo cáo Mẫu 4 của nội gián và 166 là 8-K. Phiên cuối cùng có 3814 hồ sơ, với 644 Mẫu 4 và 223 8-K. 5 số phiên trong tuần có chỉ mục EDGAR hàng ngày trong hồ sơ; chỉ mục này xuất hiện theo lịch riêng, đôi khi chậm hơn so với băng ghi.
Câu lệnh SQL chính xác đằng sau mỗi con số
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_weekPhần còn lại của giấy tờ trong tuần: 17106 hồ sơ SEC trên 5 ngày được lập chỉ mục, 592 bản ghi ngày giao dịch không hưởng quyền cổ tức, 1 trong số đó từ mười cái tên quen thuộc trong hộ gia đình mà bảng này kiểm tra, 25 chia tách cổ phiếu ngược và 11 chia tách thuận, 4 niêm yết mới, và 1704 bài viết từ 2 nhà xuất bản. Cặp số cuối cùng đo lường mức độ chú ý của một nguồn cấp dữ liệu, không phải truyền thông toàn cầu.
Các phiên giao dịch đã được xác nhận
Câu lệnh SQL chính xác đằng sau mỗi con số
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 1199Có 5 phiên giao dịch, từ ngày 2026-07-20 đến ngày 2026-07-24, với 0 ngày nghỉ lễ xuất hiện rải rác trong khung thời gian này. SPY đã in 1950 nến 1 phút phiên thường trong suốt các phiên đó. Có 2 phiên đóng cửa trên mức đóng cửa trước đó và 3 phiên đóng cửa dưới mức đó. Lần đóng cửa dự kiến tiếp theo là Labor Day vào ngày 2026-09-07.
Sắp tới
Tuần sau, đọc từ bảng dữ liệu của chúng tôi:
Câu lệnh SQL chính xác đằng sau mỗi con số
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_settlementBảng nghỉ lễ cho thấy 0 ngày đóng cửa trong tuần sau. 368 ngày giao dịch không hưởng quyền rơi vào khoảng thời gian này, 0 từ nhóm hộ gia đình, cùng với 15 đợt chia tách đã được lên lịch. Trong khối lượng quyền chọn ngày thứ Sáu, 14.2% đã nằm trong các hợp đồng đáo hạn vào thứ Sáu tuần sau. Ngày thanh toán lãi suất bán khống gần nhất trong hồ sơ là 2026-07-15, một tệp dữ liệu được công bố với độ trễ đủ dài để có bài giải thích riêng.
Câu hỏi thường gặp
Thị trường chứng khoán diễn biến thế nào trong tuần 20 tháng 7 năm 2026?
SPY thay đổi -0.59% so với mức đóng cửa từ ngày 17 tháng 7 đến ngày 24 tháng 7, với QQQ ở mức -1.59%, DIA ở mức -0.38% và IWM ở mức -0.98%. Trong số các mã thanh khoản cao, 2437 tăng và 3630 giảm.
Ngành nào dẫn đầu tuần 20 tháng 7 năm 2026?
Energy, ở mức 3.33%. Ngành yếu nhất trong số mười một quỹ ETF ngành SPDR là Consumer Discretionary ở mức -5.2%, kém hơn 8.53 điểm phần trăm.
Tuần 20 tháng 7 năm 2026 có bao nhiêu phiên giao dịch?
5, diễn ra từ 2026-07-20 đến 2026-07-24, với 0 ngày nghỉ lễ trong khung thời gian này. Lần đóng cửa theo lịch tiếp theo là Labor Day.
Mã chứng khoán nào có khối lượng giao dịch lớn nhất tính theo đô la trong tuần 20 tháng 7 năm 2026?
MU, với 158.1 tỷ đô la doanh thu trong giờ giao dịch thông thường, vượt qua SPY ở mức 133.9 tỷ đô la.
Ghi chú dữ liệu
Tất cả mốc thời gian được lưu trữ theo giờ UTC; giờ giao dịch thông thường là 13:30-20:00 UTC mỗi phiên, và ranh giới tuần chạy từ khi đóng cửa phiên ngày 17 tháng 7 đến ngày 24 tháng 7. Mọi bảng so sánh đóng cửa-đóng cửa ở đây đều đọc thanh bar phút cuối cùng của giờ giao dịch thông thường ở mỗi vế của phép so sánh, do đó một giao dịch ngoài giờ không bao giờ có thể thiết lập mức đóng cửa hàng tuần. Xếp hạng trong năm liền trước sử dụng lợi nhuận hàng tuần từ giá mở cửa đến giá đóng cửa, vì vậy nó sẽ không khớp với bảng điểm đóng cửa-đóng cửa; cả hai định nghĩa đều được ghi nhãn ở nơi chúng xuất hiện. Bề rộng thị trường hàng tuần và bảng các mã biến động mạnh áp dụng bộ lọc doanh thu năm triệu đô la trong giờ giao dịch thông thường, và bề rộng thị trường công bố số lượng mã bị bộ lọc loại ra. Bảng các mã biến động mạnh loại trừ bất kỳ mã nào có đợt chia tách được thực hiện sau khi đóng cửa ngày 17 tháng 7 và cho đến ngày 24 tháng 7, đúng khoảng thời gian mà sự thay đổi được đo lường, điều này bắt cả đợt chia tách được đóng dấu vào cuối tuần xen giữa cũng như đợt chia tách được đóng dấu vào một phiên giao dịch; các bảng này không loại trừ các ETF có đòn bẩy và ETF nghịch đảo, vốn có thể chiếm ưu thế trên một bảng trong một tuần có xu hướng rõ rệt. Phần cuối của bảng mã giảm giá có thể nằm gần mức mất toàn bộ giá trị niêm yết trong tuần, và bảng đó công bố số phiên trong số năm phiên mà mỗi mã có giao dịch. Bảng chênh lệch giá (spread) của SPY đếm các báo giá một chiều và báo giá chéo thay vì lặng lẽ loại bỏ chúng, và giá trị trung vị được tính trên các báo giá hợp lệ còn lại. Tệp tin của Kho bạc chạy chậm hơn băng ghi giao dịch khoảng một phiên và chỉ số hàng ngày của EDGAR được đăng tải theo lịch trình riêng của nó, do đó các bảng về lãi suất và hồ sơ đệ trình báo cáo số ngày thực tế mà chúng nắm giữ. Không có chỉ số biến động ngụ ý nào xuất hiện ở đây: các chuỗi dữ liệu đó không được cấp phép cho kho dữ liệu này, vì vậy biến động được đọc từ băng ghi giao dịch thông qua biên độ giá, tỷ trọng quyền chọn cùng ngày và hành vi báo giá.
Phương pháp luận
- Nguồn dữ liệu thị trường: bảng tổng hợp.
delayed_stocks_minute_aggscho giá và khối lượng,cache_stocks_quotescho bảng NBBO,options_tradescho tuần quyền chọn. - Giá đóng cửa: thanh nến phút cuối cùng của phiên giao dịch thông thường, không bao giờ là mức giá 16:00 giả định và cũng không phải mức giá phiên giao dịch ngoài giờ.
- Phiên giao dịch: được xác thực từ bảng ngày nghỉ lễ kết hợp với các thanh nến quan sát được, không bao giờ suy luận từ lịch.
- Xử lý múi giờ: mệnh đề WHERE sử dụng giá trị UTC thô, và
toTimeZonechỉ xuất hiện trong danh sách SELECT cho nhãn giờ ET. - Số thập phân: các cột giá, khối lượng lệnh và khối lượng giao dịch được chuyển đổi sang Float64 trước khi thực hiện bất kỳ phép chia hay phép nhân nào.
- Tổng hợp xác định: các phân vị chính xác được sử dụng xuyên suốt, và mọi khẳng định về thứ tự hoặc dấu hiệu trong văn bản đều được mã hóa thành một ràng buộc kiểm tra hợp lý.
- Ngày cơ sở dữ liệu kho: 26 tháng 7 năm 2026.
Liên kết chéo: bản trước của loạt bài hàng tuần này, chênh lệch giá mua-bán là gì, thời điểm quyền chọn đáo hạn, lãi suất bán khống so với khối lượng bán khống, và chênh lệch lợi suất hai-năm-mười-năm.
Mọi truy vấn trên đều chạy không thay đổi trên terminal Strasmore nếu bạn muốn điều chỉnh cửa sổ thời gian sang một tuần khác.