สรุปตลาด 29 กรกฎาคม 2026 ตัวเลขสำคัญประจำวัน
สรุปตลาด 29 กรกฎาคม 2026 จากข้อมูลการซื้อขาย ครอบคลุมดัชนี breadth ส่วนต่างราย sector options flow ราคาหุ้น อัตราดอกเบี้ย และปฏิทินเศรษฐกิจ โดยอ้างอิงตัวเลขจากคิวรีที่จัดเก็บไว้
บทสรุปตลาดประจำวันพุธที่ 29 กรกฎาคม 2026 นี้ครอบคลุมการซื้อขายตลอดทั้งวัน โดยอ้างอิงจากคิวรีที่จัดเก็บไว้: การเปลี่ยนแปลงของราคาปิด SPY เมื่อเทียบกับราคาปิดก่อนหน้าอยู่ที่ -1.52% สัดส่วนหุ้นที่ปรับตัวขึ้นในตลาดที่มีสภาพคล่องอยู่ที่ 27.2% และปริมาณสัญญาที่มีการซื้อขายในตลาด options อยู่ที่ 66.84 ล้านสัญญา ทุกช่วงเวลาด้านล่างกำหนดวันเริ่มต้นและวันสิ้นสุดไว้อย่างชัดเจน ดังนั้นการเรียกใช้ SQL ของแผงข้อมูลใดอีกครั้งจะได้ตัวเลขเดิมเหล่านี้
ตารางสรุป
การเปลี่ยนแปลงทั้งหมดเปรียบเทียบแท่งราคานาทีสุดท้ายของช่วงการซื้อขายปกติวันที่ 29 กรกฎาคมกับของวันอังคารที่ 28 กรกฎาคม ซึ่งเป็นช่วงการซื้อขายที่ต่อเนื่องกัน แต่ละแถวเรียงตามตัวอักษร ดังนั้น ETF แต่ละกองจึงอยู่ในตำแหน่งเดิมเสมอ
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH prior AS (
SELECT ticker, argMax(close, window_start) AS prior_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
AND window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-28 20:00:00'
GROUP BY ticker
),
sess AS (
SELECT ticker,
argMin(open, window_start) AS day_open,
argMax(close, window_start) AS day_close,
max(high) AS day_high,
min(low) AS day_low,
round(toFloat64(sum(volume)) / 1e6, 1) AS shares_traded_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
AND window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00'
GROUP BY ticker
)
SELECT
s.ticker AS ticker,
round(toFloat64(p.prior_close), 2) AS prior_close,
round(toFloat64(s.day_open), 2) AS day_open,
round(toFloat64(s.day_close), 2) AS day_close,
round((toFloat64(s.day_open) / toFloat64(p.prior_close) - 1) * 100, 2) AS gap_pct,
round((toFloat64(s.day_close) / toFloat64(s.day_open) - 1) * 100, 2) AS intraday_pct,
round((toFloat64(s.day_close) / toFloat64(p.prior_close) - 1) * 100, 2) AS pct_change,
round(toFloat64(s.day_high), 2) AS day_high,
round(toFloat64(s.day_low), 2) AS day_low,
s.shares_traded_m
FROM sess s LEFT JOIN prior p ON s.ticker = p.ticker
ORDER BY tickerDIA เคลื่อนไหว -2.19%, IWM -1.63%, QQQ -2.07% และ SPY -1.52% ปิดที่ราคา $729.51 แต่ละแถวแยกการเคลื่อนไหวออกเป็นสองช่วง ได้แก่ SPY เปิดที่ -0.11% จากราคาปิดวันอังคาร และเคลื่อนไหว -1.41% ตั้งแต่เปิดจนถึงปิด ช่วงการเคลื่อนไหวข้ามคืนกับช่วงระหว่างวันไม่จำเป็นต้องสอดคล้องกัน และสัดส่วนของการเคลื่อนไหวทั้งสองช่วงคือร่องรอยแรกของเซสชันนั้น
วันนี้มีความผิดปกติหรือไม่?
ตัวเลขของเซสชันเดียวมีความหมายจำกัด หากไม่พิจารณาการกระจายของข้อมูล ดังนั้นจึงจัดอันดับวันนี้ภายในเดือนย้อนหลังของตัวเองด้วยหลักเกณฑ์เดียวกัน
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT
round(anyIf(oc_pct, d = toDate('2026-07-29')), 2) AS spy_open_to_close_pct,
arrayCount(x -> x > abs(anyIf(oc_pct, d = toDate('2026-07-29'))), groupArrayIf(abs(oc_pct), d != toDate('2026-07-29'))) + 1 AS spy_abs_move_rank,
count() AS spy_sessions_compared,
toString(min(d)) AS first_session
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
(argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100 AS oc_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime('2026-06-29 13:30:00')
AND window_start < toDateTime('2026-07-30 00:00:00')
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
GROUP BY d
)การเคลื่อนไหวของ SPY ตั้งแต่เปิดตลาดจนปิดตลาดที่ -1.41% อยู่ในอันดับ 1 จากทั้งหมด 22 เซสชันย้อนหลัง โดยพิจารณาจากขนาดสัมบูรณ์ ภายในช่วงข้อมูลที่ย้อนหลังไปถึง 2026-06-29 การจัดอันดับนับจำนวนเซสชันอื่นในช่วงดังกล่าวที่มีการเคลื่อนไหวมากกว่า แล้วบวกหนึ่ง ดังนั้นอันดับหนึ่งจึงหมายถึงการเคลื่อนไหวครั้งใหญ่ที่สุดของเดือนย้อนหลัง
ความกว้างของตลาด
ระดับดัชนีเป็นตัวเลขเพียงหนึ่งตัว ส่วนความกว้างของตลาดนับจำนวนหุ้นที่เคลื่อนไหวไปในทิศทางเดียวกับดัชนี
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT
countIf(c29 > c28 AND liquid) AS advancers,
countIf(c29 < c28 AND liquid) AS decliners,
countIf(c29 = c28 AND liquid) AS unchanged,
countIf(liquid) AS liquid_tickers,
countIf(NOT liquid) AS dropped_by_liquidity_filter,
round(100.0 * countIf(c29 > c28 AND liquid) / countIf(liquid), 1) AS advancer_pct
FROM (
SELECT ticker, c28, c29, dv29 >= 1000000 AS liquid
FROM (
SELECT ticker,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-28 20:00:00') AS c28,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS c29,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-29 13:30:00') AS dv29
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-29 20:00:00'
GROUP BY ticker
HAVING c28 > 0 AND c29 > 0
)
)จากหุ้นจำนวน 6066 รายที่มีมูลค่าการซื้อขายในช่วงเวลาซื้อขายปกติสูงกว่าเกณฑ์หนึ่งล้านดอลลาร์สหรัฐ มีหุ้น 1652 รายปิดสูงกว่าราคาปิดวันอังคาร และ 4342 รายปิดต่ำกว่า คิดเป็นสัดส่วนหุ้นปรับตัวขึ้น 27.2% เกณฑ์ดังกล่าวตัดหุ้นที่มีการซื้อขายเบาบางกว่าออกไป 5363 ราย โดยนับรวมไว้ในส่วนนี้แทนที่จะละเว้นโดยไม่ระบุเหตุผล
กลุ่มหุ้น mega-cap
หุ้น mega-cap เดิมทั้งแปดปรากฏในส่วนนี้ทุกช่วงการซื้อขาย โดยเรียงตามตัวอักษรเพื่อให้แต่ละหุ้นอยู่ในแถวเดิม จุดประสงค์คือการใช้ตะกร้าหุ้นแบบคงที่ เพื่อให้ผู้อ่านคุ้นเคยกับแต่ละแถว และไม่มีการเลือกหุ้นที่ทำผลงานดีภายหลังโดยกองบรรณาธิการ
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH per_name AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-29 00:00:00')) AS prior_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-29 00:00:00')) AS day_close,
round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-29 00:00:00') / 1e9, 2) AS day_dollar_bn
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('AAPL', 'AMZN', 'AVGO', 'GOOGL', 'META', 'MSFT', 'NVDA', 'TSLA')
AND ((window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-28 20:00:00')
OR (window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00'))
GROUP BY ticker
)
SELECT
ticker,
round(prior_close, 2) AS prior_close,
round(day_close, 2) AS day_close,
round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
day_dollar_bn
FROM per_name
ORDER BY tickerAAPL เคลื่อนไหว -0.63%, META -1.12%, MSFT -0.27% และ NVDA -3.51% จากมูลค่าการซื้อขายในเวลาปกติรวม 22.26 พันล้านดอลลาร์ โดย TSLA อยู่ที่ -2.97% คอลัมน์มูลค่าเงินดอลลาร์แสดงให้เห็นว่าหุ้นทั้งแปดตัวนี้มีสัดส่วนเท่าใดของการซื้อขายทั้งหมดด้วยตัวเอง ส่วนแผง breadth ด้านบนใช้ตรวจสอบว่าตลาดส่วนที่เหลือเคลื่อนไหวไปในทิศทางเดียวกันมากน้อยเพียงใด
หุ้นที่เคลื่อนไหวโดดเด่นประจำวัน
ทั้งสองกระดานกำหนดให้มูลค่าการซื้อขายในเวลาทำการปกติไม่น้อยกว่าห้าล้านดอลลาร์ ไม่รวมหลักทรัพย์ใดที่การแยกหุ้นมีผลระหว่างราคาปิดสองช่วงที่ใช้วัด และไม่รวมสัญลักษณ์ที่ถูกนำกลับมาใช้ซ้ำหนึ่งรายการตามเกณฑ์ป้องกันความกำกวมของสำนักข่าวที่ระบุไว้ในหมายเหตุ
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT ticker, board, day_pct, day_dollar_m
FROM (
SELECT 'gainers' AS board, ticker, round((c29 / c28 - 1) * 100, 1) AS day_pct, round(dv / 1e6, 1) AS day_dollar_m
FROM (
SELECT ticker,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-28 20:00:00') AS c28,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS c29,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-29 13:30:00') AS dv
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-28' AND execution_date <= '2026-07-29')
AND window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-29 20:00:00'
GROUP BY ticker
HAVING c28 > 0 AND c29 > 0 AND dv >= 5000000
)
ORDER BY day_pct DESC
LIMIT 8
UNION ALL
SELECT 'decliners' AS board, ticker, round((c29 / c28 - 1) * 100, 1) AS day_pct, round(dv / 1e6, 1) AS day_dollar_m
FROM (
SELECT ticker,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-28 20:00:00') AS c28,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS c29,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-29 13:30:00') AS dv
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-28' AND execution_date <= '2026-07-29')
AND window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-29 20:00:00'
GROUP BY ticker
HAVING c28 > 0 AND c29 > 0 AND dv >= 5000000
)
ORDER BY day_pct ASC
LIMIT 8
)
ORDER BY board DESC, abs(day_pct) DESCหลักทรัพย์ที่ปรับขึ้นมากที่สุดบนกระดานคือ DFNS โดยปรับขึ้น 119.8% จากมูลค่าการซื้อขาย 544.9 ล้านดอลลาร์ ส่วนหลักทรัพย์ที่ปรับลงมากที่สุดคือ YYAI โดยปรับลง -68.1% จากมูลค่าการซื้อขาย 8.5 ล้านดอลลาร์ หน้านี้บันทึกขนาดการเปลี่ยนแปลงและรายการซื้อขายที่เกิดขึ้นเท่านั้น โดยไม่ได้ให้เหตุผลประกอบ.
การกระจายตัวระหว่างกลุ่มอุตสาหกรรม
กองทุน SPDR select-sector ทั้งสิบเอ็ดกองทุน โดยเปรียบเทียบราคาปิดวันที่ 29 กรกฎาคมกับวันที่ 28 กรกฎาคม และจัดอันดับจากดีที่สุดไปแย่ที่สุด กลุ่มกองทุนนี้กำหนดไว้ตายตัว ไม่ได้อ้างอิงการจัดประเภทของผู้ให้บริการข้อมูล
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT sector, day_pct, round(max(day_pct) OVER () - day_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((c29 / c28 - 1) * 100, 2) AS day_pct
FROM (
SELECT ticker,
argMaxIf(toFloat64(close), window_start, window_start < '2026-07-29 00:00:00') AS c28,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-29 00:00:00') AS c29
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-28 13:30:00' AND window_start < '2026-07-28 20:00:00')
OR (window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00'))
GROUP BY ticker
HAVING c28 > 0 AND c29 > 0
)
)
ORDER BY day_pct DESCEnergy ครองอันดับสูงสุดที่ 1.89% ขณะที่ Industrials อยู่ท้ายตารางที่ -3.21% โดยตามหลังอยู่ 5.1 จุดเปอร์เซ็นต์ ส่วนต่างดังกล่าวคือการกระจายตัวระหว่างกลุ่มอุตสาหกรรมของวันนั้น ตลาดที่กองทุนทั้งสิบเอ็ดกองทุนปิดอยู่ภายในกรอบหนึ่งจุดเปอร์เซ็นต์ย่อมมีลักษณะแตกต่างอย่างมากจากตลาดที่ผลตอบแทนกระจายห่างกันหลายจุดเปอร์เซ็นต์
จุดที่มีการซื้อขายด้วยมูลค่าเงินดอลลาร์
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT leaderboard, ticker, dollar_volume_bn, shares_m,
round(1000 * dollar_volume_bn / shares_m, 2) AS implied_avg_price
FROM (
SELECT
'by dollars traded' AS leaderboard,
ticker,
round(sum(toFloat64(close) * toFloat64(volume)) / 1e9, 2) AS dollar_volume_bn,
round(sum(toFloat64(volume)) / 1e6, 1) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00'
AND ticker NOT IN ('SPCX')
GROUP BY ticker
ORDER BY dollar_volume_bn DESC
LIMIT 6
UNION ALL
SELECT
'by shares traded' AS leaderboard,
ticker,
round(sum(toFloat64(close) * toFloat64(volume)) / 1e9, 2) AS dollar_volume_bn,
round(sum(toFloat64(volume)) / 1e6, 1) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00'
AND ticker NOT IN ('SPCX')
GROUP BY ticker
ORDER BY shares_m DESC
LIMIT 4
)
ORDER BY leaderboard, if(leaderboard = 'by shares traded', shares_m, dollar_volume_bn) DESCMU ครองอันดับหนึ่งในกระดานซื้อขายเงินดอลลาร์ ด้วยมูลค่าการซื้อขายในช่วงเวลาซื้อขายปกติที่ 44.99 พันล้านดอลลาร์ โดยมี SPY ตามมาเป็นอันดับสองที่ 42.29 พันล้านดอลลาร์ ส่วนกระดานซื้อขายหุ้นตอบคำถามอีกแบบหนึ่ง: SNXX มีปริมาณการซื้อขายสูงสุดที่ 173.4 ล้านหุ้น โดยมีราคาเฉลี่ยโดยนัยอยู่ที่ $7.32 มูลค่าการซื้อขายเป็นดอลลาร์สะท้อนความสนใจของตลาด ขณะที่ปริมาณหุ้นสะท้อนการหมุนเวียนซื้อขาย และเมื่อวัดเป็นรายหลักทรัพย์ ตัวชี้วัดนี้เรียกว่า ปริมาณการซื้อขายสัมพัทธ์
เทปรายการซื้อขายออปชัน
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH
(
SELECT (strike, typ, vol_m, is_0dte)
FROM (
SELECT toFloat64(any(strike_price)) AS strike, any(option_type) AS typ,
round(toFloat64(sum(size)) / 1e6, 2) AS vol_m,
if(substring(ticker, length(ticker) - 14, 6) = '260729', 1, 0) AS is_0dte
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00'
AND underlying_symbol = 'SPY'
GROUP BY ticker
ORDER BY vol_m DESC, strike ASC
LIMIT 1
)
) AS top_spy,
(
SELECT round(toFloat64(argMax(close, window_start)), 2)
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00'
) AS spy_regular_close,
(
SELECT round(toFloat64(sum(size)) / 1e6, 2)
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-28 00:00:00' AND sip_timestamp < '2026-07-29 00:00:00'
) AS jul28_contracts_m,
(
SELECT round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260728') / sum(size), 1)
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-28 00:00:00' AND sip_timestamp < '2026-07-29 00:00:00'
) AS jul28_pct_0dte
SELECT
round(count() / 1e6, 2) AS option_prints_m,
round(toFloat64(sum(size)) / 1e6, 2) AS contracts_m,
jul28_contracts_m,
round(100.0 * sumIf(size, option_type = 'C') / sum(size), 1) AS call_pct_of_volume,
round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260729') / sum(size), 1) AS pct_0dte,
jul28_pct_0dte,
spy_regular_close,
top_spy.1 AS top_spy_strike,
top_spy.2 AS top_spy_type,
top_spy.3 AS top_spy_contracts_m,
top_spy.4 AS top_spy_is_0dte,
round(top_spy.1 - spy_regular_close, 2) AS top_spy_strike_minus_close
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00'เทปรายการซื้อขายออปชันบันทึกธุรกรรม 11.03 ล้านรายการ คิดเป็น 66.84 ล้านสัญญา เทียบกับ 59.28 ล้านสัญญาในวันอังคาร ออปชัน Call คิดเป็น 53.6% ของปริมาณการซื้อขายสัญญา สัญญาที่หมดอายุในวันเดียวกัน หรือกลุ่ม zero-days-to-expiry มีสัดส่วน 33.1% เทียบกับ 29% ในวันอังคาร โดยมี จังหวะการหมดอายุ เป็นตัวกำหนดความเคลื่อนไหว สัญญา SPY ที่มีการซื้อขายหนาแน่นที่สุดคือ 735 P จำนวน 0.36 ล้านสัญญา โดยราคาใช้สิทธิอยู่ห่างจากราคาปิดปกติของ SPY ที่ $729.51 เป็นระยะ 5.49 ดอลลาร์ ซึ่งวัดจากราคาใช้สิทธิหักด้วยราคาปิด
เทปข้อมูลราคาเสนอซื้อขาย
ข้อมูลราคาเสนอซื้อขายเป็นชุดข้อมูลที่ขาดแคลนที่สุดของฝ่ายซื้อขายนี้ และมีการวัดในทุกช่วงการซื้อขาย วันปกติก็ถูกบันทึกไว้เช่นกัน
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT
round(countIf(toDate(sip_timestamp) = toDate('2026-07-29')) / 1e6, 2) AS jul29_updates_m,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-28')) / 1e6, 2) AS jul28_updates_m,
round((countIf(toDate(sip_timestamp) = toDate('2026-07-29')) / countIf(toDate(sip_timestamp) = toDate('2026-07-28')) - 1) * 100, 1) AS day_over_day_pct,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-29') AND ticker = 'SPY') / 1e6, 2) AS jul29_spy_updates_m,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-29') AND ticker = 'QQQ') / 1e6, 2) AS jul29_qqq_updates_m,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-29') AND ticker = 'NVDA') / 1e6, 2) AS jul29_nvda_updates_m
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-07-28 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00'เทปราคาเสนอซื้อขายหุ้นมีการอัปเดต NBBO จำนวน 722.65 ล้านครั้ง เทียบกับ 536.07 ล้านครั้งในวันอังคาร ซึ่งเปลี่ยนแปลงจากวันก่อนหน้า 34.8% SPY มีการอัปเดต 7.32 ล้านครั้ง QQQ 8.72 ล้านครั้ง และ NVDA 4.41 ล้านครั้ง
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT ticker,
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 IN ('AAPL', 'DIA', 'IWM', 'NVDA', 'QQQ', 'SPY', 'TSLA')
AND sip_timestamp >= '2026-07-29 13:30:00' AND sip_timestamp < '2026-07-29 20:00:00'
GROUP BY ticker
HAVING countIf(bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price) > 0
ORDER BY tickerสเปรด ราคาเสนอซื้อขายมัธยฐานในเวลาซื้อขายปกติของ SPY อยู่ที่ 0.27 basis points ของราคากึ่งกลาง ขณะที่ QQQ อยู่ที่ 0.75 และ NVDA อยู่ที่ 1.55 สองคอลัมน์สุดท้ายเป็นข้อมูลเปิดเผย โดยนับราคาเสนอซื้อขายด้านเดียวและราคาเสนอซื้อขายไขว้แยกตามหลักทรัพย์ แล้วกันออกจากการคำนวณค่ามัธยฐาน แทนที่จะตัดทิ้งโดยไม่แจ้งให้ทราบ ราคาเสนอซื้อขายไขว้ ซึ่งราคาเสนอซื้อสูงกว่าราคาเสนอขาย เป็นสิ่งที่เกิดขึ้นตามปกติจากฟีดข้อมูลรวมที่เชื่อมข้อมูลจากหลายตลาดซื้อขายเข้าด้วยกันในระดับความละเอียดนาโนวินาที
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT round(anyIf(spread_bps, d = toDate('2026-07-29')), 2) AS jul29_median_spread_bps,
arrayCount(x -> x < anyIf(spread_bps, d = toDate('2026-07-29')), groupArrayIf(spread_bps, d != toDate('2026-07-29'))) + 1 AS rank_tightest,
count() AS sessions_compared,
toString(min(d)) AS first_session
FROM (
SELECT toDate(sip_timestamp) AS d,
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) AS spread_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'SPY'
AND sip_timestamp >= '2026-07-01 13:30:00' AND sip_timestamp < '2026-07-29 20:00:00'
AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
GROUP BY d
HAVING countIf(bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price) > 0
)เมื่อจัดอันดับเทียบกับทุกช่วงการซื้อขายในเดือนกรกฎาคมโดยใช้หลักเกณฑ์เดียวกัน สเปรดมัธยฐานของ SPY ในวันดังกล่าวที่ 0.27 basis points อยู่ที่ 20 จากทั้งหมด 20 อันดับ โดยนับจากสเปรดที่แคบที่สุด ภายในช่วงเวลาที่เริ่มตั้งแต่ 2026-07-01 ในวันที่เทปข้อมูลเคลื่อนไหวอย่างสงบ ประโยคนี้คือสาระสำคัญของแผงข้อมูลดังกล่าว กล่าวคือ สภาพคล่องในวันปกติเป็นข้อค้นพบที่มีการเผยแพร่และกำหนดขอบเขตไว้อย่างชัดเจน
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH
(SELECT count() FROM global_markets.cache_options_quotes WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00') AS jul29_options_rows,
(SELECT count() FROM global_markets.cache_stocks_quotes WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00') AS jul29_stock_quote_rows
SELECT
round(jul29_options_rows / 1e9, 2) AS jul29_options_bn,
round(jul29_options_rows / jul29_stock_quote_rows, 1) AS options_to_stock_ratio,
round((SELECT count() FROM global_markets.cache_options_quotes WHERE ticker >= 'O:SPY26' AND ticker < 'O:SPY27' AND sip_timestamp >= '2026-07-29 13:30:00' AND sip_timestamp < '2026-07-29 20:00:00') / 1e6, 0) AS jul29_spy_options_mเทปข้อมูล NBBO ของออปชันมีการอัปเดตจำนวน 13.55 พันล้านครั้ง หรือ 18.8 เท่าของเทปราคาเสนอซื้อขายหุ้น โดยเฉพาะหลักทรัพย์อ้างอิง SPY เพียงรายการเดียวมีการอัปเดตในเวลาซื้อขายปกติ 600 ล้านครั้ง
อัตราดอกเบี้ย
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
FROM global_markets.treasury_yields
WHERE date >= '2026-07-24' AND date <= '2026-07-29'
ORDER BY dateไฟล์ข้อมูลของกระทรวงการคลังสหรัฐฯ ล่าช้ากว่าข้อมูลการซื้อขายในตลาดประมาณหนึ่งช่วงการซื้อขาย ดังนั้นแผงนี้จึงรายงานรายการซื้อขายที่มีอยู่ในไฟล์: แถวข้อมูลลงวันที่ 4 ภายในช่วงเวลาที่กำหนด รายการล่าสุดลงวันที่ 2026-07-29 ระบุว่าอัตราผลตอบแทนพันธบัตรอายุสองปีอยู่ที่ 4.22% อายุสิบปีอยู่ที่ 4.67% และอายุสามสิบปีอยู่ที่ 5.2% คิดเป็น ส่วนต่างอัตราผลตอบแทนระหว่างพันธบัตรอายุสองปีกับสิบปี 45 จุดฐาน
The calendar behind the day
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH
(
SELECT (argMax(t, (n, t)), max(n))
FROM (
SELECT t, count() AS n
FROM (
SELECT arrayJoin(tickers) AS t
FROM global_markets.stocks_news
WHERE published_utc >= '2026-07-29 04:00:00' AND published_utc < '2026-07-30 04:00:00'
)
WHERE t != 'SPCX'
GROUP BY t
)
) AS top_news,
(
SELECT (count(), uniqExact(cik), countIf(form_type = '4'), countIf(form_type = '8-K'), countIf(form_type = '424B2'), countIf(form_type = '10-Q'))
FROM global_markets.stocks_sec_edgar_index
WHERE filing_date = '2026-07-29'
) AS fil
SELECT
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-29') AS ex_dividend_records,
(SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-29') AS reverse_splits,
(SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-29') AS forward_splits,
(SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-29') AS listings,
(SELECT count() FROM global_markets.stocks_news WHERE published_utc >= '2026-07-29 04:00:00' AND published_utc < '2026-07-30 04:00:00') AS news_articles,
(SELECT uniqExact(JSONExtractString(publisher, 'name')) FROM global_markets.stocks_news WHERE published_utc >= '2026-07-29 04:00:00' AND published_utc < '2026-07-30 04:00:00') AS news_publishers,
top_news.1 AS top_news_ticker,
top_news.2 AS top_news_n,
fil.1 AS fil_total,
fil.2 AS fil_filers,
fil.3 AS fil_form4,
fil.4 AS fil_8k,
fil.5 AS fil_424b2,
fil.6 AS fil_10q85 dividend records went ex-dividend on July 29, 2 reverse and 1 forward splits executed, and 1 new listings hit the tape. The news feed carried 190 articles from 2 publishers, with NVDA the most-covered ticker in this one feed's window at 13 articles. The EDGAR daily index holds 5742 filings for the date from 3064 distinct filers: 712 insider Form 4 reports, 440 8-K current reports, 884 424B2 pricing supplements and 174 10-Q quarterly reports. That index lands on its own schedule, and this panel reports whatever it holds at generation time.
กำหนดการถัดไป
สำหรับช่วงที่เหลือของสัปดาห์ ให้อ่านข้อมูลจากตารางเดียวกัน โดยตั้งใจมองข้ามช่วงเวลาที่ระบุไว้
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT
(SELECT count() FROM global_markets.stocks_market_holidays WHERE date >= '2026-07-30' AND date <= '2026-07-31' AND status != 'open') AS closures_rest_of_week,
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date >= '2026-07-30' AND ex_dividend_date <= '2026-07-31') AS exdiv_records_rest_of_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-30' AND ex_dividend_date <= '2026-07-31') AS household_exdivs,
(SELECT count() FROM global_markets.stocks_splits WHERE execution_date >= '2026-07-30' AND execution_date <= '2026-07-31') AS splits_rest_of_week,
round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260731') / sum(size), 1) AS jul31_expiry_pct_of_wed_volume,
(SELECT toString(max(settlement_date)) FROM global_markets.stocks_short_interest WHERE settlement_date <= '2026-07-29') AS latest_short_interest_settlement
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00'ตารางวันหยุดแสดงการปิดทำการ 0 ครั้งในวันพฤหัสบดีที่ 30 กรกฎาคม และวันศุกร์ที่ 31 กรกฎาคม หลักทรัพย์ที่มีรายการเงินปันผล 611 รายการจะขึ้นเครื่องหมาย ex-dividend ในสองวันดังกล่าว โดย 0 รายการเป็นหนึ่งในหุ้นชื่อดังสำหรับนักลงทุนรายย่อยสิบตัวที่ตรวจสอบ และมีกำหนดดำเนินการแตกหุ้น 12 รายการ จากปริมาณการซื้อขายออปชันในวันพุธ 19.7% อยู่ในสัญญาที่กำหนดหมดอายุในวันศุกร์ที่ 31 กรกฎาคม ข้อมูลการชำระบัญชีล่าสุดของ short interest คือ 2026-07-15 ซึ่งเป็นข้อมูลที่เผยแพร่ล่าช้านานจนมี คำอธิบายแยกต่างหากของตัวเอง
ยืนยันช่วงการซื้อขาย
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT
formatDateTime(min(toTimeZone(window_start, 'America/New_York')), '%H:%i') AS first_spy_bar_et,
formatDateTime(max(toTimeZone(window_start, 'America/New_York')), '%H:%i') AS last_spy_bar_et,
countIf(window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS regular_session_bars,
uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS day_sessions,
(SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-29') AS jul29_holiday_rows,
(SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-29' 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-29' 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-29 00:00:00' AND window_start < '2026-07-30 00:00:00'ช่วงการซื้อขายปกติเต็มช่วง: แท่งข้อมูล SPY แท่งแรกเวลา 04:00 ET แท่งสุดท้ายเวลา 19:59 ET มีแท่งข้อมูลในเวลาซื้อขายปกติ 390 แท่ง มีช่วงการซื้อขาย 1 ช่วงในหน้าต่างข้อมูล และมีรายการวันหยุด 0 รายการสำหรับวันที่ดังกล่าว การปิดทำการตามกำหนดครั้งถัดไปคือ Labor Day ในวันที่ 2026-09-07
คำถามที่พบบ่อย
ตลาดหุ้นเป็นอย่างไรในวันพุธที่ 29 กรกฎาคม 2026?
SPY เปลี่ยนแปลง -1.52% เมื่อเทียบราคาปิดกับราคาปิดก่อนหน้า มาอยู่ที่ $729.51 ขณะที่ QQQ อยู่ที่ -2.07%, DIA อยู่ที่ -2.19% และ IWM อยู่ที่ -1.63% ในบรรดาหุ้นที่มีสภาพคล่องสูง 1652 ปรับตัวขึ้น และ 4342 ปรับตัวลง
กลุ่มอุตสาหกรรมใดทำผลงานสูงสุดในวันที่ 29 กรกฎาคม 2026?
Energy ที่ 1.89% โดยวัดจากกองทุน SPDR select-sector ทั้งสิบเอ็ดกอง กองทุนที่อ่อนแอที่สุดในบรรดาทั้งสิบเอ็ดกองคือ Industrials ซึ่งมีรายการซื้อขายที่ -3.21%
ตลาดออปชันมีความคึกคักเพียงใดในวันที่ 29 กรกฎาคม 2026?
มีการซื้อขายสัญญา 66.84 ล้านสัญญา เทียบกับ 59.28 ล้านสัญญาในวันทำการก่อนหน้า สัญญาที่ครบกำหนดภายในวันเดียวกันคิดเป็น 33.1% ของปริมาณการซื้อขาย และ call คิดเป็น 53.6%
หุ้นใดมีมูลค่าการซื้อขายสูงสุดในวันที่ 29 กรกฎาคม 2026?
MU ด้วยมูลค่าการซื้อขายในเวลาทำการปกติ 44.99 พันล้านดอลลาร์ นำหน้า SPY ที่ 42.29 พันล้านดอลลาร์
หมายเหตุข้อมูล
ฉบับนี้กลับมานำเสนอชุดข้อมูลรายวันอีกครั้ง โดยฉบับรายวันก่อนหน้าคือ 10 กรกฎาคม 2026 และ สรุปรายสัปดาห์ ครอบคลุมสัปดาห์ก่อนหน้านี้ แผงข้อมูลที่ระบุชื่อแต่ละ ticker เรียงตามตัวอักษร เพื่อให้การอ้างอิงในเนื้อหาชี้ไปยังแถวเดิมอย่างแน่นอน ส่วนตารางจัดอันดับและตารางหุ้นที่เคลื่อนไหวมากเรียงตามมูลค่า และข้ออ้างเชิงลำดับทั้งหมดในตารางเหล่านี้มีการเข้ารหัสเป็นขอบเขตตรวจสอบความสมเหตุสมผล ตะกร้าหุ้น mega-cap และตะกร้ากองทุนรายภาคจำนวน eleven กอง เป็นชุดที่กำหนดไว้ตายตัว ไม่ใช่การจัดประเภทของผู้ให้บริการข้อมูล
ตารางหุ้นที่เคลื่อนไหวมากใช้เกณฑ์มูลค่าการซื้อขายในเวลาทำการปกติที่ five million dollars ตัดชื่อที่มีการ split เกิดขึ้นระหว่างราคาปิดสองช่วงเวลาที่ใช้วัดออก และตัดสัญลักษณ์หนึ่งรายการที่นำกลับมาใช้ซ้ำออกตามเกณฑ์ป้องกันความกำกวมของบริษัท ดังนั้นการกล่าวถึงแต่ละครั้งจึงอ้างไปยังชื่อที่ตรวจสอบได้เสมอ แผงข้อมูล quote นับ quote แบบมีฝั่งเดียวและ quote แบบไขว้แยกตามแต่ละชื่อ แทนที่จะตัดออกโดยไม่แจ้งให้ทราบ ไฟล์ของกระทรวงการคลังสหรัฐฯ และดัชนีรายวันของ EDGAR เข้ามาตามกำหนดเวลาของแต่ละแหล่ง ดังนั้นแผงข้อมูลเหล่านี้จะแสดงเฉพาะข้อมูลที่มีอยู่จริง โดยไม่สมมติว่าข้อมูลจะเข้ามาถึงแล้ว
ฉบับนี้ไม่มีดัชนี implied volatility เนื่องจากชุดข้อมูลดังกล่าวไม่ได้รับอนุญาตให้ใช้งานในคลังข้อมูลนี้ ดังนั้นจึงประเมินความผันผวนจากข้อมูลการซื้อขายโดยดูจากกรอบราคา สัดส่วน options ในวันเดียวกัน และพฤติกรรมของ quote
ระเบียบวิธี
- แหล่งข้อมูลตลาด: consolidated tape โดยใช้
delayed_stocks_minute_aggsสำหรับราคาและปริมาณการซื้อขายoptions_tradesสำหรับข้อมูลการซื้อขายออปชัน และcache_stocks_quotesกับcache_options_quotesสำหรับแผง NBBO - ราคาปิด: แท่งข้อมูลนาทีสุดท้ายของช่วงการซื้อขายปกติ ไม่ใช้ข้อมูลการซื้อขายที่สมมติว่าเกิดขึ้นเวลา 16:00 และไม่ใช้ข้อมูลการซื้อขายนอกเวลาทำการ
- การจัดการเขตเวลา: การประทับเวลาที่จัดเก็บทั้งหมดเป็น UTC ส่วนเงื่อนไข WHERE ใช้ค่า UTC ดิบ และ
toTimeZoneปรากฏเฉพาะในรายการ SELECT สำหรับป้ายกำกับ ET - การตรวจสอบช่วงการซื้อขาย: ตรวจสอบจากตารางวันหยุดและแท่งข้อมูลที่สังเกตได้ ไม่ได้อนุมานจากปฏิทิน
- การเปรียบเทียบกับช่วงการซื้อขายก่อนหน้า: คำนวณภายใน query โดยอ้างอิงจากวันที่ 28 กรกฎาคม ไม่ได้นำค่าจากบทความก่อนหน้ามาใช้
- ทศนิยม: คอลัมน์ราคา ขนาด และปริมาณการซื้อขายถูกแปลงเป็น Float64 ก่อนการหารหรือการคูณใด ๆ
- การรวมข้อมูลแบบกำหนดผลลัพธ์ได้แน่นอน: ใช้ quantile ที่คำนวณได้อย่างแม่นยำและการตัดสินกรณีเสมอด้วยคีย์แบบ tuple ตลอดทั้งกระบวนการ การอ้างอิงลำดับหรือทิศทางในเนื้อหาทุกจุดถูกเข้ารหัสเป็นขอบเขตตรวจสอบความสมเหตุสมผล
- วันที่อ้างอิงข้อมูลล่าสุดของคลังข้อมูล: วันที่ 1 สิงหาคม 2026 ซึ่งอยู่สามวันหลังช่วงการซื้อขาย และพ้นระยะเวลานำเข้าข้อมูลตามปกติของ tape ที่หนึ่งถึงสองวันแล้ว ใบรับข้อมูลที่มีขอบเขตด้านบนจะช่วยคงบทความนี้ไว้ หากพบว่าชุดข้อมูลใดขาดหายขณะสร้างบทความ
ลิงก์ภายใน: สรุปรายวันก่อนหน้า, สรุปรายสัปดาห์, เมื่อออปชันหมดอายุ, สเปรด bid-ask คืออะไร, และ สเปรดระหว่างอัตราผลตอบแทนสองถึงสิบปี
ทุก query ข้างต้นทำงานบนเทอร์มินัล Strasmore ได้โดยไม่ต้องแก้ไข หากต้องการเปลี่ยนช่วงข้อมูลไปยังช่วงการซื้อขายอื่น