Strasmore Research
สรุปภาวะตลาด Matt Connorโดย Matt Connor · อัปเดตเมื่อ 2026-07-24

สรุปภาวะตลาดวันที่ 7 กรกฎาคม 2026

กลุ่ม semiconductor ปรับตัวลงรุนแรงส่งผลต่อดัชนี แต่ NVDA ยังคงปิดบวก ท่ามกลางสัดส่วนหุ้นขาลงต่อขาขึ้นที่สองต่อหนึ่ง และ SPY มีส่วนต่างแคบที่สุดในรอบหนึ่งเดือน

วันอังคารที่ 7 กรกฎาคม 2026 ราคาหุ้นปรับตัวลดลงจนสูญเสียกำไรที่ได้จาก การพุ่งขึ้นในช่วงเปิดตลาดเมื่อวันจันทร์ ไปจนหมดสิ้น โดย QQQ ปิดที่ -1.82% ซึ่งเป็นการลบกำไรจากวันจันทร์ไปมากกว่าเดิม เมื่อเทียบกับ DIA ที่ปิดที่ -0.29% ในขณะที่ทิศทางตลาดโดยรวมเป็นลบในอัตราส่วนสองต่อหนึ่ง โดยมีหุ้นที่ราคาลดลงจำนวน 4034 ตัว เทียบกับหุ้นที่ราคาเพิ่มขึ้นจำนวน 2091 ตัว ประเด็นสำคัญของวันคือการปรับตัวลงของกลุ่ม semiconductor ซึ่งมีมูลค่าสูงกว่าดัชนีหลายเท่าตัว โดยมีหุ้นยักษ์ใหญ่ในกลุ่มนี้หนึ่งตัวที่ไม่ได้รับผลกระทบ ข้อมูลตัวเลขทั้งหมดด้านล่างนี้มาจากการดึงข้อมูลจากฐานข้อมูล หากต้องการดูคำสั่ง SQL ที่แม่นยำสามารถกดขยายแถบข้อมูลได้

สรุปผลการดำเนินงาน

การเปรียบเทียบทุกการเปลี่ยนแปลงเป็นการเทียบระหว่างแท่งเวลาหนึ่งนาทีสุดท้ายของช่วงการซื้อขายปกติในวันที่ 7 กรกฎาคม กับวันที่ 13 กรกฎาคม ซึ่งเป็นวันจันทร์ — เป็นการเทียบระหว่างเซสชันการซื้อขายที่ต่อเนื่องกัน

คำสั่งดึงข้อมูลSPY / QQQ / DIA / IWM — 7 กรกฎาคม เทียบกับราคาปิด 6 กรกฎาคม ช่วงเวลาทำการปกติ
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-06 13:30:00' AND window_start < '2026-07-06 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-07 13:30:00' AND window_start < '2026-07-07 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 AS shares_traded_m
FROM sess s
JOIN prior p ON s.ticker = p.ticker
ORDER BY s.ticker

-1.82% ของ QQQ นำกลุ่ม ETF ดัชนีทั้งสี่ตัวให้ปรับตัวลดลง โดย SPY ปิดที่ -0.48%, IWM ที่ -0.9% และ -0.29% ของ DIA มีการเปลี่ยนแปลงน้อยที่สุด ส่วนความแตกต่างระหว่าง gap-versus-grind แสดงให้เห็นว่าทิศทางในช่วงเปิดตลาดมีความขัดแย้งกัน โดย gap ข้ามคืนของ QQQ อยู่ที่ -1.17% และการเคลื่อนที่แบบ grind จากราคาเปิดถึงราคาปิดอยู่ที่ -0.65% ซึ่งช่องว่างราคา (gap) เป็นสาเหตุหลักที่ทำให้ราคาลดลง ในขณะที่ DIA มี gap ขึ้น อยู่ที่ 0.47% แต่ยังคงปิดในแดนลบ โดยการเคลื่อนที่จากราคาเปิดถึงราคาปิดอยู่ที่ -0.76% ผู้นำตลาดมีการสลับหน้ากันในทุกเซสชันนับตั้งแต่ วันพฤหัสบดี: DIA เป็นผู้นำในวันพฤหัสบดี, QQQ เป็นผู้นำใน วันจันทร์ และ DIA กลับมาเป็นผู้นำอีกครั้งในวันอังคาร

วันนี้มีความผิดปกติหรือไม่?

คำสั่งดึงข้อมูลQQQ และ SPY: อันดับของ 7 กรกฎาคม เทียบกับช่วงหนึ่งเดือนที่ผ่านมา (อันดับ 1 = การเคลื่อนที่สัมบูรณ์สูงสุด)
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT
    round(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-07')), 2) AS qqq_close_over_close_pct,
    arrayCount(x -> x > abs(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-07'))), groupArrayIf(abs(cc_pct), ticker = 'QQQ' AND d != toDate('2026-07-07'))) + 1 AS qqq_abs_move_rank,
    countIf(ticker = 'QQQ') AS qqq_sessions_compared,
    round(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-07')), 2) AS spy_open_to_close_pct,
    arrayCount(x -> x > abs(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-07'))), groupArrayIf(abs(oc_pct), ticker = 'SPY' AND d != toDate('2026-07-07'))) + 1 AS spy_abs_move_rank,
    countIf(ticker = 'SPY') AS spy_sessions_compared,
    toString(min(d)) AS first_session
FROM (
    SELECT ticker, d,
           (close_px / lagInFrame(close_px) OVER (PARTITION BY ticker ORDER BY d) - 1) * 100 AS cc_pct,
           oc_pct
    FROM (
        SELECT ticker, toDate(toTimeZone(window_start, 'America/New_York')) AS d,
               argMax(toFloat64(close), window_start) AS close_px,
               (argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100 AS oc_pct
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker IN ('SPY', 'QQQ')
          AND window_start >= toDateTime('2026-06-04 00:00:00')
          AND window_start < toDateTime('2026-07-08 00:00:00')
          AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
        GROUP BY ticker, d
    )
)
WHERE isFinite(cc_pct)

ในระดับดัชนีถือว่าไม่ผิดปกติ โดยการเคลื่อนที่จากราคาปิดถึงราคาปิดของ QQQ ในช่วง -1.82% อยู่ในลำดับที่ 9 ของ 21 เซสชันที่ผ่านมาเมื่อพิจารณาจากขนาดการเคลื่อนที่สัมบูรณ์ และการเคลื่อนที่จากราคาเปิดถึงราคาปิดของ SPY ที่ -0.34% อยู่ในลำดับที่ 15 ของ 21 ซึ่งเป็นช่วงหนึ่งเดือนที่ผ่านมาซึ่งรวมถึงความผันผวนอย่างรุนแรงในช่วงปลายเดือนมิถุนายน ทำให้เกณฑ์การเปรียบเทียบอยู่ในระดับสูง แต่ความแตกต่างของราคาหุ้นรายตัว (dispersion) คือสิ่งที่ทำให้วันที่ 7 กรกฎาคม มีความโดดเด่น

ความกว้างของตลาด: หุ้นขาลงมีจำนวนเป็นสองเท่าของหุ้นขาขึ้น

คำสั่งดึงข้อมูลจำนวนหุ้นที่ปรับตัวขึ้น เทียบกับหุ้นที่ปรับตัวลง สำหรับหุ้นที่มีมูลค่าซื้อขายอย่างน้อย $1M ในวันที่ 7 กรกฎาคม
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH per_ticker AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-07 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-07 00:00:00')) AS day_close,
        sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-07 00:00:00') AS day_dollar_volume
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE (window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00')
       OR (window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00')
    GROUP BY ticker
)
SELECT
    countIf(day_close > prior_close AND day_dollar_volume >= 1000000) AS advancers,
    countIf(day_close < prior_close AND day_dollar_volume >= 1000000) AS decliners,
    countIf(day_close = prior_close AND day_dollar_volume >= 1000000) AS unchanged,
    countIf(day_dollar_volume >= 1000000) AS liquid_tickers,
    count() AS tickers_traded_both_sessions,
    count() - countIf(day_dollar_volume >= 1000000) AS dropped_by_liquidity_filter,
    round(100.0 * countIf(day_close > prior_close AND day_dollar_volume >= 1000000)
        / countIf(day_dollar_volume >= 1000000), 1) AS advancer_pct
FROM per_ticker
WHERE prior_close > 0 AND day_close > 0

มีหุ้นที่ราคาเพิ่มขึ้น 2091 ตัว, หุ้นที่ราคาลดลง 4034 ตัว และหุ้นที่ราคาคงที่ 59 ตัว — โดยมีหุ้นที่ราคาเพิ่มขึ้นเพียง 33.8% ของปริมาณการซื้อขายทั้งหมด ซึ่งสวนทางกับ ทิศทางขาขึ้นเมื่อวันจันทร์ ตัวกรองนี้คัดเฉพาะหุ้นที่มีปริมาณการซื้อขายต่ำกว่า 1 ล้านดอลลาร์สหรัฐ จำนวน 5276 จากทั้งหมด 11460 ตัว ที่มีการซื้อขายต่อเนื่องสองวันติดต่อกันมาคำนวณในที่นี้

The chip complex broke — except its biggest names

The selling concentrated in semiconductors: the chipmakers, the equipment names that supply them, the storage complex around them, and the leveraged ETFs wrapped on top. Co-movement and magnitude reported below; the data does not say why.

คำสั่งดึงข้อมูลกลุ่มหุ้นเซมิคอนดักเตอร์ในวันที่ 7 กรกฎาคม: การเปลี่ยนแปลงเทียบกับราคาปิดวันจันทร์, ช่วงเวลาของกรอบราคา และมูลค่าการซื้อขาย ($)
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-07 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-07 00:00:00')) AS day_close,
        maxIf(toFloat64(high), window_start >= '2026-07-07 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-07-07 00:00:00') AS day_low,
        argMinIf(window_start, (toFloat64(low), toInt64(toUnixTimestamp(window_start))), window_start >= '2026-07-07 00:00:00') AS low_bar,
        argMaxIf(window_start, (toFloat64(high), -toInt64(toUnixTimestamp(window_start))), window_start >= '2026-07-07 00:00:00') AS high_bar,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-07 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('AMD', 'AVGO', 'INTC', 'KLAC', 'LRCX', 'MRVL', 'MU', 'NVDA', 'SNDK', 'SOXL', 'SOXS', 'STX', 'TER', 'WDC')
      AND ((window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00')
        OR (window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 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,
    formatDateTime(toTimeZone(high_bar, 'America/New_York'), '%H:%i') AS day_high_et,
    formatDateTime(toTimeZone(low_bar, 'America/New_York'), '%H:%i') AS day_low_et,
    toHour(toTimeZone(high_bar, 'America/New_York')) * 60 + toMinute(toTimeZone(high_bar, 'America/New_York')) AS high_minute_et,
    toHour(toTimeZone(low_bar, 'America/New_York')) * 60 + toMinute(toTimeZone(low_bar, 'America/New_York')) AS low_minute_et,
    round((day_high / day_low - 1) * 100, 2) AS range_pct,
    day_dollar_bn
FROM per_name
ORDER BY ticker

Teradyne (-9.63%) and Intel (-9.59%) lost nearly a tenth of their value, with Marvell (-7.41%), KLA (-7.23%), Lam Research (-6.8%) and AMD (-6.41%) close behind. The memory-and-storage names that half-bounced on Monday rolled straight back over: SanDisk -7.1% across a 10.36% high-to-low range, Western Digital -7.81%, Seagate -4.84%, and MU -4.61% — MU turning over $41.6 billion of stock, more than the other three storage names combined (the MU deep-dive carries the backstory).

The sector's two giants sat it out: NVDA closed green at 0.67% and Broadcom finished near flat at -0.83% — a sector-wide red day, minus its largest members (NVDA's June deep-dive).

The timing was synchronized — one morning air pocket: TER, LRCX and MU printed their session lows at 10:41, 10:41 and 10:41 ET, with SanDisk, Marvell, KLA, AVGO and SOXL inside the same minutes (the panel carries each stamp), and SOXS, the 3x inverse semiconductor ETF, printed its session high at 10:42 — the stretch upside down. Intel kept falling long after the rest stabilized, its low arriving at 15:18. The leveraged wrappers translate the magnitude: SOXL -15.15% against SOXS +15.87%.

อีกด้านหนึ่งของตลาด

แม้ภาพรวมจะติดลบในอัตราส่วนสองต่อหนึ่ง แต่ยังมีกลุ่มที่ปรับตัวขึ้นในสัดส่วนหนึ่งในสาม โดยมีกลุ่มที่ราคาพุ่งขึ้นสวนทางกับกลุ่มชิป ดังนี้:

คำสั่งดึงข้อมูลหุ้นที่ปรับตัวขึ้นขณะที่กลุ่มเซมิคอนดักเตอร์ปรับตัวลง — และหุ้นที่มีการเปลี่ยนแปลงสูงสุดในวันนั้น
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-07 00:00:00')) AS prior_close_raw,
        toFloat64(argMinIf(open, window_start, window_start >= '2026-07-07 00:00:00')) AS day_open_raw,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-07 00:00:00')) AS day_close_raw,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-07 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('CRNX', 'CVX', 'JNJ', 'LLY', 'META', 'TSLA', 'UNH', 'XOM')
      AND ((window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00')
        OR (window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00'))
    GROUP BY ticker
)
SELECT
    ticker,
    round(prior_close_raw, 2) AS prior_close,
    round(day_open_raw, 2) AS day_open,
    round(day_close_raw, 2) AS day_close,
    round((day_open_raw / prior_close_raw - 1) * 100, 2) AS gap_pct,
    round((day_close_raw / day_open_raw - 1) * 100, 2) AS intraday_pct,
    round((day_close_raw / prior_close_raw - 1) * 100, 2) AS pct_chg,
    day_dollar_bn
FROM per_name
ORDER BY ticker

กลุ่มพลังงานและเฮลธ์แคร์เป็นปัจจัยหลักที่ผลักดันตลาดให้เป็นบวก ได้แก่ Exxon +3.78%, Chevron +3.47%, Johnson & Johnson +3.07%, Eli Lilly +2.75% และ UnitedHealth +2.41% สำหรับหุ้นขนาดใหญ่สองตัวในกลุ่มนี้มีทิศทางที่ต่างกัน โดย META ปรับตัวขึ้น +2.52% ในขณะที่ TSLA ปรับตัวลดลงเกือบเท่ากับ การพุ่งขึ้นเพียงทิศทางเดียวเมื่อวันจันทร์ โดยอยู่ที่ -4.02% และหุ้นที่มีการเคลื่อนไหวโดดเด่นที่สุดคือ Crinetics Pharmaceuticals (CRNX) ซึ่งปิดที่ +98.79% ด้วยมูลค่าการซื้อขาย $4.19 billion หรือเพิ่มขึ้นเกือบสองเท่า โดยการเคลื่อนไหวทั้งหมดเกิดขึ้นจากการกระโดดของราคาในช่วงข้ามคืน (98.91% เมื่อเปิดตลาด และช่วงการซื้อขายปกติขยับเพียง -0.06%) ซึ่งเป็นการปรับราคาในช่วงระหว่างเซสชันที่มักเกิดขึ้นใน ตลาดช่วง pre-market ทั้งนี้ข้อมูลไม่ได้ระบุสาเหตุของการเคลื่อนไหวดังกล่าว

สรุปปริมาณการซื้อขาย

คำสั่งดึงข้อมูลผู้นำด้านปริมาณการซื้อขาย 2 รูปแบบ: 6 อันดับแรกโดยมูลค่า ($) และ 4 อันดับแรกโดยจำนวนหุ้น (ยกเว้น 1 รายการที่ใช้สัญลักษณ์ซ้ำเพื่อรอการตรวจสอบ)
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT leaderboard, ticker, dollar_volume_bn, shares_m,
    round(100 * if(leaderboard = 'by dollars traded', dollar_volume_bn, shares_m)
        / max(if(leaderboard = 'by dollars traded', dollar_volume_bn, shares_m)) OVER (PARTITION BY leaderboard), 1) AS pct_of_board_leader
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-07 13:30:00' AND window_start < '2026-07-07 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-07 13:30:00' AND window_start < '2026-07-07 20:00:00'
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker
    ORDER BY shares_m DESC
    LIMIT 4
)
ORDER BY leaderboard ASC, if(leaderboard = 'by dollars traded', dollar_volume_bn, shares_m) DESC

MU นำโด่งด้วยมูลค่า $41.6 billion — หลังจาก เสียตำแหน่งผู้นำไป เพียงหนึ่งเซสชัน ก็สามารถกลับมาครองอันดับหนึ่งได้อีกครั้ง — โดยมี SPY ($28.68 billion) และ QQQ ($26.54 billion) ตามมาเป็นอันดับรองลงมา พร้อมด้วยหุ้นกลุ่มเซมิคอนดักเตอร์อีกสามบริษัท ได้แก่ NVDA ($19.95 billion), SNDK ($19.73 billion) และ INTC ($13.82 billion) ซึ่งทำให้ครบหกอันดับแรก ปริมาณการซื้อขายที่กระจุกตัวในหุ้นรายตัวคือสิ่งที่ relative volume ระบุไว้

ในส่วนของปริมาณการซื้อขายหุ้น SOXS มีการซื้อขายทั้งหมด 566.3 million shares โดย ETF ที่ทำกำไรแบบ inverse 3 เท่าของกลุ่มเซมิคอนดักเตอร์ มีปริมาณการซื้อขายสูงสุดติดต่อกันเป็นวันที่สาม (วันจันทร์ และ วันพฤหัสบดี คือข้อมูลก่อนหน้า) ซึ่งครั้งนี้เกิดขึ้นในวันที่กลุ่มอุตสาหกรรมดังกล่าวมีการปรับตัวลง ส่วน CPOP เป็นตัวอย่างที่ตรงกันข้าม โดยมีการซื้อขาย 161.3 million shares คิดเป็นมูลค่าเพียง $0.02 billion ซึ่งแสดงให้เห็นว่าหุ้นที่มีราคาถูกจะมีปริมาณการซื้อขายที่เบาบางกว่า ข้อมูลอ้างอิง: เวลาทำการปกติ ณ วันที่ 7 กรกฎาคม; ไม่รวมรายการที่มีการใช้สัญลักษณ์ซ้ำซึ่งอยู่ระหว่างการตรวจสอบข้อมูลนิติบุคคล — ดูรายละเอียด

รูปแบบของตลาดในช่วงการซื้อขาย

คำสั่งดึงข้อมูลจำนวนหุ้นที่ซื้อขายต่อช่วงเวลา 30 นาที ช่วงเวลาทำการปกติ (พันล้าน)
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT
    formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
    round(sum(toFloat64(volume)) / 1e9, 2) AS shares_bn,
    round(100 * sum(toFloat64(volume)) / max(sum(toFloat64(volume))) OVER (), 1) AS pct_of_biggest_bucket
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00'
GROUP BY et_time
ORDER BY et_time

มีการซื้อขาย 2 พันล้านหุ้นในช่วงครึ่งชั่วโมงแรก โดยมีจุดต่ำสุดที่ 0.64 พันล้านหุ้น ณ เวลา 13:30 และมีปริมาณการซื้อขายอยู่ที่ 2.14 พันล้านหุ้นในช่วง 15:30 — ซึ่งเป็นรูปแบบ smile ทั่วไป โดยมีปริมาณการซื้อขายหนาแน่นที่สุดในช่วงปิดตลาด

ตลาดออปชัน

คำสั่งดึงข้อมูลข้อมูลสรุปการซื้อขาย options ทั้งวัน: ปริมาณการซื้อขาย, Call share, 0DTE และสัญญา 2 ฉบับที่ครอบคลุมราคาปิดของ SPY
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH
    (
        SELECT (groupArray(und), groupArray(strike), groupArray(typ), groupArray(vol), groupArray(avg_px), groupArray(is_0dte))
        FROM (
            SELECT any(underlying_symbol) AS und, any(toFloat64(strike_price)) AS strike, any(option_type) AS typ,
                   sum(size) AS vol, round(avg(toFloat64(price)), 3) AS avg_px,
                   if(substring(ticker, length(ticker) - 14, 6) = '260707', 1, 0) AS is_0dte
            FROM global_markets.options_trades
            WHERE sip_timestamp >= '2026-07-07 00:00:00' AND sip_timestamp < '2026-07-08 00:00:00'
            GROUP BY ticker
            ORDER BY vol DESC
            LIMIT 2
        )
    ) AS top2,
    (
        SELECT round(toFloat64(argMax(close, window_start)), 2)
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY' AND window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00'
    ) AS spy_regular_close
SELECT
    round(count() / 1e6, 2) AS option_prints_m,
    round(toFloat64(sum(size)) / 1e6, 2) AS 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) = '260707') / sum(size), 1) AS same_day_expiry_pct,
    round(toFloat64(sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260707')) / 1e6, 2) AS same_day_contracts_m,
    round(toFloat64(sumIf(size, underlying_symbol = 'SPY')) / 1e6, 2) AS spy_contracts_m,
    round(toFloat64(sumIf(size, underlying_symbol = 'QQQ')) / 1e6, 2) AS qqq_contracts_m,
    round(toFloat64(sumIf(size, underlying_symbol = 'INTC')) / 1e6, 2) AS intc_contracts_m,
    top2.1[1] AS top_contract_underlying,
    top2.2[1] AS top_contract_strike,
    top2.3[1] AS top_contract_type,
    if(top2.3[1] = 'C', 1, 0) AS top_contract_is_call,
    top2.4[1] AS top_contract_volume,
    top2.5[1] AS top_contract_avg_price,
    round(top2.2[1] - spy_regular_close, 2) AS top_strike_minus_spy_close,
    top2.1[2] AS second_contract_underlying,
    top2.2[2] AS second_contract_strike,
    top2.3[2] AS second_contract_type,
    if(top2.3[2] = 'P', 1, 0) AS second_contract_is_put,
    top2.4[2] AS second_contract_volume,
    top2.5[2] AS second_contract_avg_price,
    round(spy_regular_close - top2.2[2], 2) AS spy_close_minus_second_strike,
    top2.6[1] + top2.6[2] AS both_top_contracts_same_day,
    spy_regular_close AS spy_close
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-07 00:00:00' AND sip_timestamp < '2026-07-08 00:00:00'

มีการซื้อขายออปชันรวมทั้งสิ้น 61.13 ล้านสัญญา จากรายการซื้อขายทั้งหมด 10.6 ล้านรายการ ซึ่งมีปริมาณใกล้เคียงกับ วันจันทร์ และสัญญาสิทธิซื้อ (calls) ยังคงมีสัดส่วนสูงถึง 55.6% ของปริมาณการซื้อขายทั้งหมดแม้จะเป็นวันที่ตลาดปิดลบ ออปชันที่หมดอายุภายในวันเดียวกันมีสัดส่วนเป็น 31.2% ของปริมาณการซื้อขายทั้งหมด (19.08 ล้านสัญญา) ซึ่งถือเป็น สัดส่วน 0DTE ของวันอังคารปกติ สัญญาที่มีการซื้อขายหนาแน่นที่สุดสองอันดับแรกของวันอยู่ใกล้กับราคาปิด โดยทั้งคู่เป็นสัญญาที่หมดอายุในวันเดียวกันที่ราคาใช้สิทธิ SPY ได้แก่ call ที่ราคา $749 (873438 สัญญา ที่ราคาเฉลี่ย $0.647) ปิดที่สถานะ out of the money จำนวน $1.34 และ put ที่ราคา $747 (785834 สัญญา ที่ราคา $0.88) ปิดที่สถานะ out of the money อีกด้านหนึ่งที่ $0.66 ราคาปิดของ SPY ที่ 747.66 อยู่ระหว่างการเดิมพันที่ใหญ่ที่สุดสองรายการของวัน และทั้งสองสัญญาหมดอายุโดยไม่มีมูลค่า

The quote tape

Under every price on this page sits the quote stream — the National Best Bid and Offer, re-quoted continuously across every listed name, the hardest dataset in this warehouse to come by. It gets measured here every session, ordinary or not.

คำสั่งดึงข้อมูลข้อมูล NBBO ของหุ้นทั้งหมด: จำนวนการอัปเดตของ 7 กรกฎาคม เทียบกับ 6 กรกฎาคม
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-07')) / 1e6, 2) AS jul7_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-06')) / 1e6, 2) AS jul6_updates_m,
    round((countIf(toDate(sip_timestamp) = toDate('2026-07-07')) / countIf(toDate(sip_timestamp) = toDate('2026-07-06')) - 1) * 100, 1) AS day_over_day_pct,
    toHour(toTimeZone(maxIf(sip_timestamp, toDate(sip_timestamp) = toDate('2026-07-07')), 'America/New_York')) * 60
        + toMinute(toTimeZone(maxIf(sip_timestamp, toDate(sip_timestamp) = toDate('2026-07-07')), 'America/New_York')) AS jul7_last_quote_et_minute,
    round(countIf(sip_timestamp >= '2026-07-07 19:00:00' AND sip_timestamp < '2026-07-07 20:00:00') / 1e6, 2) AS jul7_close_hour_updates_m
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-07-06 00:00:00' AND sip_timestamp < '2026-07-08 00:00:00'

The equity tape carried 492.76 million NBBO updates on July 7 — 25.7% more than Monday's 391.96 million. More re-quoting, not wider quoting:

คำสั่งดึงข้อมูลข้อมูลช่วง Air Pocket: ค่ากลางของ Quoted spread และ Quote rate, เวลา 10:36–10:48 ET เทียบกับค่าควบคุมช่วงกลางวัน (อย่างละ 12 นาที)
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT
    ticker,
    round(quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00'), 2) AS pocket_spread_bps,
    round(quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00'), 2) AS midday_spread_bps,
    round(quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00')
        - quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00'), 2) AS spread_delta_bps,
    round(countIf(sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00') / 1e3, 1) AS pocket_updates_k,
    round(countIf(sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00') / 1e3, 1) AS midday_updates_k,
    round(countIf(sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00') / countIf(sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00'), 1) AS quote_rate_ratio,
    round(count() / 1e6, 2) AS session_updates_m,
    countIf(bid_price <= 0 OR ask_price <= 0 OR bid_price > ask_price) AS dropped_invalid_quotes
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('AMD', 'INTC', 'MU', 'NVDA', 'QQQ', 'SNDK', 'SOXL', 'SOXS', 'SPY', 'WDC')
  AND sip_timestamp >= '2026-07-07 13:30:00' AND sip_timestamp < '2026-07-07 20:00:00'
GROUP BY ticker
ORDER BY ticker

At the morning lows the checked names re-quoted at multiples of their midday pace — MU 3.4x, SanDisk 4.1x, AMD 4.6x — and the bid-ask spread barely moved: MU's median width was 5.02 bps in the pocket against 4.81 midday, NVDA's 1.04 against 1.01, and SPY's did not move at all (0 bps change on a 0.27 bps touch). The two names that paid a real width penalty were AMD (+2.6 bps) and Intel (+0.95) — Intel the one name that kept falling after the pocket — while the leveraged pair actually tightened at the bottom (SOXL -2.59 bps, SOXS -1.49). A liquidity vacuum looks like wide quotes and silence; this was the opposite — a quote storm with the touch pinned. Crossing costs stayed name-dependent all the same: SOXS quoted 19.59 bps wide at the bottom against NVDA's 1.04.

คำสั่งดึงข้อมูลค่าเฉลี่ย Quoted spread ของ SPY แบบถ่วงน้ำหนักการอัปเดต: อันดับของ 7 กรกฎาคม เทียบกับช่วงหนึ่งเดือนที่ผ่านมา (อันดับ 1 = แคบที่สุด)
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT
    round(anyIf(avg_spread_cents, d = toDate('2026-07-07')), 3) AS jul7_avg_spread_cents,
    arrayCount(x -> x < anyIf(avg_spread_cents, d = toDate('2026-07-07')), groupArrayIf(avg_spread_cents, d != toDate('2026-07-07'))) + 1 AS tightness_rank,
    count() AS sessions_compared,
    round(min(avg_spread_cents), 3) AS tightest_session_cents,
    round(max(avg_spread_cents), 3) AS widest_session_cents,
    toString(min(d)) AS first_session,
    sum(dropped_invalid) AS dropped_invalid_quotes
FROM (
    SELECT toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS d,
           avgIf(toFloat64(ask_price - bid_price), bid_price > 0 AND ask_price >= bid_price) * 100 AS avg_spread_cents,
           countIf(NOT (bid_price > 0 AND ask_price >= bid_price)) AS dropped_invalid
    FROM global_markets.cache_stocks_quotes
    WHERE ticker = 'SPY'
      AND sip_timestamp >= toDateTime('2026-06-05 00:00:00')
      AND sip_timestamp < toDateTime('2026-07-08 00:00:00')
      AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
    GROUP BY d
)

And the ordinary-check this section runs every session: by update-weighted average quoted spread, July 7 was SPY's tightest session of the trailing month1.809 cents, rank 1 of 21, against a month that reached 2.865 cents at its widest. A two-to-one red tape priced at the month's tightest index touch is a fact only the quote stream can settle.

คำสั่งดึงข้อมูลข้อมูล NBBO ของ options: 7 กรกฎาคม เทียบกับ 6 กรกฎาคม และเทียบกับราคาเสนอซื้อขายหุ้นในเซสชันเดียวกัน
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH
    (
        SELECT count()
        FROM global_markets.cache_options_quotes
        WHERE toYYYYMMDD(sip_timestamp) = 20260707
    ) AS jul7_option_rows,
    (
        SELECT count()
        FROM global_markets.cache_options_quotes
        WHERE toYYYYMMDD(sip_timestamp) = 20260706
    ) AS jul6_option_rows,
    (
        SELECT count()
        FROM global_markets.cache_stocks_quotes
        WHERE toYYYYMMDD(sip_timestamp) = 20260707
    ) AS jul7_stock_quote_rows
SELECT
    jul7_option_rows AS jul7_option_quote_rows,
    round(jul7_option_rows / 1e9, 2) AS jul7_option_quote_updates_bn,
    round(jul6_option_rows / 1e9, 2) AS jul6_option_quote_updates_bn,
    round((jul7_option_rows / jul6_option_rows - 1) * 100, 1) AS day_over_day_pct,
    round(jul7_stock_quote_rows / 1e6, 2) AS jul7_stock_quote_updates_m,
    round(jul7_option_rows / jul7_stock_quote_rows, 1) AS jul7_option_to_stock_ratio

The options quote stream is larger still, and it is the biggest dataset in this warehouse. July 7 carried 8.69 billion option NBBO updates, 17.6 times the size of the same session's entire stock-quote tape (492.76 million updates). Monday's options tape held 6.49 billion, so the option stream expanded 34% session over session, alongside the equity stream's 25.7%.

คำสั่งดึงข้อมูลราคาเสนอซื้อขาย options ของ SPY ในวันที่ 7 กรกฎาคม: ข้อมูลทั้งหมด และราคา Near-the-money ในช่วง Air Pocket เทียบกับค่าควบคุมช่วงกลางวัน
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH
    (
        SELECT count()
        FROM global_markets.cache_stocks_quotes
        WHERE toYYYYMMDD(sip_timestamp) = 20260707
    ) AS jul7_stock_quote_rows,
    (
        SELECT round(toFloat64(avg(close)), 2)
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND window_start >= '2026-07-07 14:36:00' AND window_start < '2026-07-07 14:48:00'
    ) AS spy_pocket_price,
    (
        SELECT round(toFloat64(avg(close)), 2)
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND window_start >= '2026-07-07 17:30:00' AND window_start < '2026-07-07 17:42:00'
    ) AS spy_midday_price
SELECT
    round(count() / 1e6, 2) AS spy_option_updates_m,
    round(100.0 * count() / jul7_stock_quote_rows, 1) AS pct_of_whole_equity_quote_tape,
    uniqExact(ticker) AS spy_contracts_quoted,
    round(countIf(substring(ticker, -15, 6) = '260707') / 1e6, 2) AS same_day_updates_m,
    spy_pocket_price AS spy_price_in_pocket,
    spy_midday_price AS spy_price_midday,
    round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price),
        bid_price > 0 AND ask_price >= bid_price
        AND substring(ticker, -15, 6) = '260707'
        AND abs(toFloat64(toUInt32OrZero(substring(ticker, -8))) / 1000 - spy_pocket_price) <= 2
        AND sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00'), 3) AS pocket_atm_spread_dollars,
    round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price),
        bid_price > 0 AND ask_price >= bid_price
        AND substring(ticker, -15, 6) = '260707'
        AND abs(toFloat64(toUInt32OrZero(substring(ticker, -8))) / 1000 - spy_midday_price) <= 2
        AND sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00'), 3) AS midday_atm_spread_dollars,
    round(pocket_atm_spread_dollars - midday_atm_spread_dollars, 3) AS atm_spread_delta_dollars,
    round(countIf(substring(ticker, -15, 6) = '260707'
        AND abs(toFloat64(toUInt32OrZero(substring(ticker, -8))) / 1000 - spy_pocket_price) <= 2
        AND sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00') / 1e3, 1) AS pocket_atm_updates_k,
    round(countIf(substring(ticker, -15, 6) = '260707'
        AND abs(toFloat64(toUInt32OrZero(substring(ticker, -8))) / 1000 - spy_midday_price) <= 2
        AND sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00') / 1e3, 1) AS midday_atm_updates_k,
    round(pocket_atm_updates_k / midday_atm_updates_k, 1) AS atm_quote_rate_ratio,
    countIf(NOT (bid_price > 0 AND ask_price >= bid_price)
        AND substring(ticker, -15, 6) = '260707') AS dropped_invalid_same_day_quotes
FROM global_markets.cache_options_quotes
WHERE ticker >= 'O:SPY26' AND ticker < 'O:SPY27'
  AND sip_timestamp >= '2026-07-07 13:30:00' AND sip_timestamp < '2026-07-07 20:00:00'
HAVING pocket_atm_updates_k > 0 AND midday_atm_updates_k > 0

SPY's 2026-dated contracts alone took 327.55 million of those updates in regular hours, spread across 9116 listed contracts. That is 66.5% of what the entire equity market quoted the same day, from one underlying. The same-day expiries that carry the 0DTE tape account for 13.61 million of them.

Through the twelve minutes of the morning air pocket, the near-the-money same-day contracts quoted a median $0.01 wide, precisely what they quoted in the midday control ($0.01, a delta of 0). The quote rate across that same pair ran 3x: 191.1 thousand updates at the lows against 64 thousand at lunch. The option touch did what the stock touch did. It held its width while the quoting machinery ran hot. Near-the-money means a strike within $2 of SPY's average price in the same window, and the panel prints both prices (746 in the pocket, 749.08 midday).

Rates: the curve sold off with the growth tape

คำสั่งดึงข้อมูลเส้นอัตราผลตอบแทนพันธบัตร (Treasury curve): 7 กรกฎาคม เทียบกับข้อมูลของ 6 กรกฎาคม (แสดงเฉพาะอายุพันธบัตรที่มีข้อมูล)
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT
    t.1 AS curve_point,
    round(t.2, 2) AS jul7_yield_pct,
    round((t.2 - t.3) * 100) AS session_change_bp
FROM (
    SELECT arrayJoin([
        ('1 month',  toFloat64(d.yield_1_month),  toFloat64(p.yield_1_month)),
        ('3 month',  toFloat64(d.yield_3_month),  toFloat64(p.yield_3_month)),
        ('1 year',   toFloat64(d.yield_1_year),   toFloat64(p.yield_1_year)),
        ('2 year',   toFloat64(d.yield_2_year),   toFloat64(p.yield_2_year)),
        ('5 year',   toFloat64(d.yield_5_year),   toFloat64(p.yield_5_year)),
        ('10 year',  toFloat64(d.yield_10_year),  toFloat64(p.yield_10_year)),
        ('30 year',  toFloat64(d.yield_30_year),  toFloat64(p.yield_30_year)),
        ('2s10s spread', toFloat64(d.yield_10_year - d.yield_2_year), toFloat64(p.yield_10_year - p.yield_2_year))
    ]) AS t
    FROM (SELECT * FROM global_markets.treasury_yields WHERE date = '2026-07-07') AS d,
         (SELECT * FROM global_markets.treasury_yields WHERE date = '2026-07-06') AS p
)

Treasuries sold off alongside the growth tape. The 1-year rose 11 basis points to 4.06%, the 10-year 7 to 4.55%, and the 30-year 6 to 5.05% — above the five-percent line. The 2s10s spread held at 0.36 percentage points (1 basis point of change): a mostly parallel move, not a reshaping.

ปฏิทินเหตุการณ์ประจำวัน

คำสั่งดึงข้อมูลปฏิทินบริษัทและกระแสข้อมูลของวันที่ 7 กรกฎาคม ในแถวเดียว
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH
    (
        SELECT (count(), uniqExact(publisher))
        FROM global_markets.stocks_news
        WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-07-07'
    ) AS news,
    (
        SELECT (argMax(t, n), max(n), max(n) - arraySort(x -> -x, groupArray(n))[2])
        FROM (
            SELECT t, count() AS n
            FROM (
                SELECT arrayJoin(tickers) AS t
                FROM global_markets.stocks_news
                WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-07-07'
            )
            WHERE t != 'SPCX'
            GROUP BY t
        )
    ) AS top_news
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-07') AS ex_dividend_records,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date = '2026-07-07') AS splits_executed,
    (SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-07') AS reverse_splits,
    (SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-07') AS forward_splits,
    (SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-07') AS ipos_listed,
    (SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-07') AS sec_filings,
    (SELECT uniqExactIf(accession_number, form_type = '4') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-07') AS insider_form4_filings,
    (SELECT uniqExactIf(accession_number, form_type = '8-K') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-07') AS filings_8k,
    news.1 AS news_articles,
    news.2 AS news_publishers,
    top_news.1 AS most_covered_ticker,
    if(top_news.1 = 'NVDA', 1, 0) AS most_covered_is_nvda,
    top_news.2 AS most_covered_articles,
    top_news.3 AS most_covered_lead_over_next,
    (SELECT countIf(has(tickers, 'CRNX')) FROM global_markets.stocks_news
     WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-07-07') AS crnx_articles

79 มีการประกาศ ขึ้นเครื่องหมาย ex-dividend และมีการดำเนินการแบ่งแยกหุ้น 7 โดยในจำนวนนั้น 5 เป็นการ รวมหุ้นแบบผกผัน ซึ่งเป็นการรวมหุ้นที่มีราคาต่ำกว่าหนึ่งดอลลาร์เพื่อให้เกิดตัวเลข "กำไร" หลักร้อยเปอร์เซ็นต์ที่ไม่ได้ปรับปรุงข้อมูล เทียบกับ 2 ที่เป็นแนวโน้มล่วงหน้า — และมีการจดทะเบียนหุ้นใหม่ 1 เข้าสู่ตลาด SEC index มีการบันทึกการยื่นเอกสาร 2433 ได้แก่ 463 Form 4 และ 173 8-Ks ข้อมูลข่าวสารของเรามีบทความ 215 รายการ จาก 3 สำนักพิมพ์ โดยชื่อที่มีการนำเสนอมากที่สุดคือ NVDA ด้วยจำนวน 17 บทความ ซึ่งมากกว่าชื่อถัดไปอยู่ 4 โดยชื่อดังกล่าวคือ NVDA ที่ปิดบวกสวนทางกับกลุ่มอุตสาหกรรมที่ปิดลบ ข้อมูลข่าวสารมีบทความเกี่ยวกับ CRNX จำนวน 0 บทความ ซึ่งเป็นหุ้นที่มีการปรับตัวขึ้นสูงสุดในตลาด — ซึ่งเป็นความสนใจเฉพาะในฟีดข่าวของเรา ไม่ใช่สื่อทั่วโลก

การยืนยันข้อมูลการซื้อขาย

คำสั่งดึงข้อมูลตรวจสอบเซสชัน: ช่วงเวลา Minute-bar ที่สังเกตได้ของ SPY, ตารางวันหยุด และวันปิดตลาดถัดไปในปฏิทิน
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,
    count() AS spy_minute_bars,
    countIf(window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00') AS regular_session_bars,
    uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00') AS day_sessions,
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-07') AS jul7_holiday_rows,
    (SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-07' AND status = 'closed') AS next_closure_date,
    (SELECT argMin(name, date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-07' AND status = 'closed') AS next_closure_name
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-07 00:00:00' AND window_start < '2026-07-08 00:00:00'

วันที่ 7 กรกฎาคม เป็น การซื้อขายเต็มเวลา ไม่ใช่การปิดตลาดก่อนกำหนด: แท่งเทียนของ SPY เริ่มต้นตั้งแต่ 04:00 ถึง 19:59 ตามเวลา New York โดยมีจำนวนแท่งเทียนในช่วงเวลาปกติทั้งหมด 390 แท่ง และตารางวันหยุดมีข้อมูลจำนวน 0 แถวสำหรับวันที่ดังกล่าว การปิดตลาดตามกำหนดการถัดไปคือวันที่ Labor Day 2026-09-07

หมายเหตุข้อมูล

  • Dollar volume คือค่าประมาณต่อนาที — คำนวณจากราคาปิดคูณด้วยปริมาณการซื้อขายที่รวมกันในแต่ละแท่งเวลา (minute bar) ในช่วงเวลาทำการปกติ
  • การแบ่งส่วน gap-versus-grind วัดจากแท่งเวลาแรกของช่วงเวลาทำการปกติ (ราคาเปิด) เทียบกับราคาปิดสุดท้ายของช่วงเวลาทำการปกติก่อนหน้า ส่วนที่เหลือคือช่วงราคาเปิดถึงราคาปิดภายในวันที่ 7 กรกฎาคม
  • การตรวจสอบจุดต่ำสุดในช่วงเช้าที่เกิดขึ้นพร้อมกัน (synchronized morning lows) ได้รับการตรวจสอบย้อนกลับกับแท่งเวลาข้างเคียง ณ เวลาที่เขียน — แต่ละจุดถูกตรวจสอบโดยใช้แท่งเวลาข้างเคียง ไม่ใช่เพียงแค่ราคาที่ปรากฏเพียงครั้งเดียว และไม่มีจุดใดที่เข้าข่ายความผิดปกติ ในกรณีที่มีราคาที่รุนแรงปรากฏขึ้นมากกว่าหนึ่งนาที แผงข้อมูลจะแสดงแท่งเวลาแรกที่เกิดเหตุการณ์นั้น (ใช้เกณฑ์การตัดสินแบบกำหนดตายตัว)
  • รายการที่มีการใช้สัญลักษณ์ซ้ำกันหนึ่งรายการ ถูกคัดออกจากการจัดอันดับปริมาณการซื้อขายและส่วนการเรียกดูข่าวสาร เพื่อรอการตรวจสอบยืนยันนิติบุคคล โพสต์ของตนเองมีหลักฐานยืนยัน
  • สถิติ Quoted-spread ไม่รวมราคาเสนอขายที่ไม่ถูกต้อง (ราคา NBBO ที่มีเพียงด้านเดียวหรือราคาตัดกัน) และแผงข้อมูล spread แต่ละชุดจะนับจำนวนรายการที่ถูกตัดออกในคอลัมน์ของตนเอง "Update-weighted average spread" คือค่าเฉลี่ยของความกว้างราคาเสนอขายจากการอัปเดต NBBO ที่ถูกต้องทั้งหมด โดยช่วงเวลาที่มีการซื้อขายหนาแน่นจะมีน้ำหนักมากกว่า นี่คือสถิติการเสนอราคา ไม่ใช่ต้นทุนต่อการซื้อขายหนึ่งครั้ง
  • ราคาเสนอขายออปชันของวันที่ 7 กรกฎาคม เข้าสู่ระบบหลังจากโพสต์นี้เผยแพร่ครั้งแรก cache_options_quotes มีความล่าช้าในการนำเข้าข้อมูลนานที่สุดในคลังข้อมูล ดังนั้นฉบับแรกจึงแสดงผลเป็นแถวว่าง (zero-row) ในส่วนของแผงข้อมูลราคาเสนอขายออปชัน ข้อมูลชุดนี้ได้รับการแก้ไขแล้ว โดยฉบับแก้ไขนี้แสดงข้อมูลการอัปเดตจำนวน 8.69 พันล้านรายการของเซสชันนั้น ส่วนข้อมูลราคาหุ้น (equity-quote tape) นั้นสมบูรณ์ตั้งแต่ต้น โดยการอัปเดตครั้งสุดท้ายของวันที่ 7 กรกฎาคม ปรากฏที่เวลา ET นาทีที่ 1199 โดยมีการอัปเดตจำนวน 77.13 ล้านรายการในช่วงชั่วโมงทำการปกติสุดท้าย (คอลัมน์การรับข้อมูลในแผงข้อมูล quote-tape)
  • ความกว้างของราคาเสนอขายออปชันวัดจากระดับ near the money ค่ามัธยฐานต่อการอัปเดตจากสัญญาที่จดทะเบียนทั้งหมดในวันเดียวกันคือสถิติแบบผสม: สัญญาที่ deep in-the-money จะมีราคาเสนอขายกว้างเป็นดอลลาร์ ในขณะที่สัญญาที่ far out-of-the-money จะมีราคาเสนอขายเป็นเซนต์ และข้อมูลแสดงว่าสัญญาใดมีการเสนอราคาใหม่ (re-quote) ตลอดช่วงเซสชัน การเปรียบเทียบ pocket-versus-midday จำกัดเฉพาะ strike price ที่อยู่ภายใน $2 ของราคาเฉลี่ยของ SPY ในแต่ละช่วงเวลา และราคาทั้งสองจะแสดงเป็นคอลัมน์ในแผงข้อมูล ราคาเสนอขายออปชันที่ไม่ถูกต้อง (ด้านเดียวหรือราคาตัดกัน) จะถูกนับรวมในแผงข้อมูลนั้นโดยไม่ถูกตัดออกเงียบๆ
  • ข้อมูลพันธบัตร (treasury print) สำหรับวันที่ 7 กรกฎาคม เข้าสู่ระบบล่าช้ากว่าเซสชัน — ฉบับแรกแสดงผลแบบแจ้งความล่าช้า ข้อมูลเข้าสู่ระบบเมื่อวันที่ 8 กรกฎาคม และฉบับแก้ไขนี้แสดงเส้นอัตราผลตอบแทน (curve) ที่แท้จริง

ระเบียบวิธี

  • ช่วงเวลาที่ใช้คือหนึ่งเซสชันการซื้อขาย (1 เซสชัน โดยตรวจสอบจากแท่งเทียนที่ปรากฏและปฏิทินวันหยุด ไม่ใช่การคาดการณ์) ข้อมูลเวลาถูกจัดเก็บในรูปแบบ UTC และแปลงเป็นเวลาของนิวยอร์กภายในคำสั่ง Query ค่า "Close" หมายถึงแท่งนาทีสุดท้ายของเซสชันปกติ การเปลี่ยนแปลงรายวันเป็นการเปรียบเทียบระหว่างวันที่ 7 กรกฎาคม กับวันที่ 6 กรกฎาคม ซึ่งเป็นเซสชันการซื้อขายที่ต่อเนื่องกัน
  • คอลัมน์ทศนิยมจะถูกแปลงเป็น 64-bit floats ก่อนการคำนวณอัตราส่วน ส่วนวันหมดอายุของ option จะถูกประมวลผลใหม่จาก ticker ของ OCC (เนื่องจากคอลัมน์วันหมดอายุในตารางเดิมมีความผิดพลาด) แผงข้อมูลทั้งหมดจะถูกอ่านเพียงครั้งเดียวในขณะจัดทำข้อมูลผ่านช่องทางอ่านอย่างเดียว (read-only path) ข้อมูลในคลังข้อมูล ณ วันที่ 8 กรกฎาคม 2026
  • ส่วนข้อมูล quote-tape ถูกเพิ่มเข้ามาในการปรับปรุงเมื่อวันที่ 8 กรกฎาคม (ซึ่งเป็นการปรับปรุงชุดเดียวกับที่เปลี่ยนจากการรับข้อมูล treasury lag receipt เป็น landed print) และแผงข้อมูล options-quote ได้ถูกเขียนใหม่หลังจากข้อมูล option NBBO ของวันที่ 7 กรกฎาคม ปรากฏขึ้น การสร้างข้อมูลถูกออกแบบมาให้เป็นงานแบบ batch: แผงข้อมูล SPY option-quote จะสแกนข้อมูล NBBO หลายร้อยล้านรายการ ในขณะที่การนับ tape-size จะอ่านผลรวมของแถวในแต่ละส่วนของวัน (day partitions) ซึ่งเป็นวิธีที่ทำให้ตารางที่มีข้อมูลหลายพันล้านแถวต่อเซสชันสามารถตอบคำถามการนับได้ภายในเวลาไม่ถึงหนึ่งวินาที

แผงข้อมูลทุกชุดคือผลลัพธ์จากคำสั่ง query ที่จัดเก็บไว้ ทั้งแผนภูมิ ตาราง และ SQL คือวัตถุเดียวกัน คุณสามารถคัดลอกข้อมูลใดก็ได้ไปวางใน terminal ของ Strasmore เพื่อใช้งาน 6 กรกฎาคม เซสชันก่อนหน้า