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

สรุปภาวะตลาดวันที่ 29 มิถุนายน 2026

สรุปตัวเลขตลาดวันที่ 29 มิถุนายน 2026 ดัชนีปรับตัวขึ้นด้วยหุ้นกลุ่ม growth และความเคลื่อนไหวของกลุ่ม sector รวมถึงข้อมูล 0DTE และอัตราดอกเบี้ย

วันจันทร์ที่ 29 มิถุนายน 2026 ตลาดปรับตัวขึ้นโดยมีแรงขับเคลื่อนจากหุ้นกลุ่มเติบโต (growth) แต่มีกลุ่มผู้นำที่จำกัด โดย QQQ เพิ่มขึ้น 2.57%, SPY เพิ่มขึ้น 1.62% และหุ้นที่มีสภาพคล่องสูงในกลุ่ม 3968 ปรับตัวขึ้นสวนทางกับหุ้นที่ปรับตัวลงในกลุ่ม 2327 อย่างไรก็ตาม เกือบครึ่งหนึ่งของตะกร้าหุ้นรายกลุ่ม (sector baskets) ปิดลบ ทุกตัวเลขดึงมาจากฐานข้อมูลที่จัดเก็บไว้ หากต้องการดูคำสั่ง SQL สามารถขยายแผงข้อมูลได้ สำหรับข้อมูลเชิงลึกรายธุรกรรม (tick-by-tick) ของเซสชันเดียวกัน: เจาะลึกโครงสร้างตลาดรายธุรกรรมของวันที่ 29 มิถุนายน

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

การเปรียบเทียบทุกการเปลี่ยนแปลงใช้ข้อมูลจากแท่งเวลาสุดท้ายของช่วงการซื้อขายปกติของวันที่ 29 มิถุนายน เทียบกับวันที่ 26 มิถุนายน

คำสั่งดึงข้อมูลSPY / QQQ / DIA / IWM — 29 มิถุนายน เทียบกับราคาปิด 26 มิถุนายน (ช่วงเวลาทำการปกติ)
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH friday AS (
    SELECT ticker, argMax(close, window_start) AS friday_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
      AND window_start >= '2026-06-26 13:30:00' AND window_start < '2026-06-26 20:00:00'
    GROUP BY ticker
),
monday AS (
    SELECT ticker,
           argMin(open, window_start) AS monday_open,
           argMax(close, window_start) AS monday_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-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00'
    GROUP BY ticker
)
SELECT
    m.ticker AS ticker,
    toFloat64(f.friday_close) AS jun26_close,
    toFloat64(m.monday_open) AS jun29_open,
    toFloat64(m.monday_close) AS jun29_close,
    round((toFloat64(m.monday_close) / toFloat64(f.friday_close) - 1) * 100, 2) AS pct_change,
    round(100 * (toFloat64(m.monday_close) / toFloat64(f.friday_close) - 1) / max(toFloat64(m.monday_close) / toFloat64(f.friday_close) - 1) OVER (), 1) AS pct_of_best_change,
    toFloat64(m.day_high) AS day_high,
    toFloat64(m.day_low) AS day_low,
    m.shares_traded_m AS shares_traded_m
FROM monday m
JOIN friday f ON m.ticker = f.ticker
ORDER BY m.ticker

SPY เปิดที่ $736.525 เทียบกับราคาปิดของวันศุกร์ที่ $729.09 และปิดที่ $740.88 ซึ่งต่ำกว่าระดับสูงสุดที่ $741.56 ของวัน QQQ เพิ่มขึ้น 2.57% เทียบกับ DIA ที่เพิ่มขึ้น 0.81% สะท้อนถึงสภาวะตลาดที่หุ้นกลุ่มเติบโตและกลุ่มเทคโนโลยีปรับตัวขึ้น ส่วน IWM ในกลุ่มหุ้นขนาดเล็กเพิ่มขึ้น 0.45%

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

การเปลี่ยนแปลงเป็นเปอร์เซ็นต์จะไม่มีความหมายหากไม่มีเกณฑ์มาตรฐาน แผงข้อมูลนี้จัดลำดับวันที่ 29 มิถุนายน เมื่อเทียบกับเดือนที่ผ่านมา โดยพิจารณาจากขนาดการเปลี่ยนแปลงของราคาปิดเทียบกับราคาปิดแบบสัมบูรณ์

คำสั่งดึงข้อมูลQQQ และ SPY: อันดับของวันที่ 29 มิถุนายน เทียบกับรอบเดือนที่ผ่านมา (อันดับ 1 = เปลี่ยนแปลงสูงสุด)
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT
    round(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-06-29')), 2) AS qqq_close_over_close_pct,
    arrayCount(x -> x > abs(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-06-29'))), groupArrayIf(abs(cc_pct), ticker = 'QQQ' AND d != toDate('2026-06-29'))) + 1 AS qqq_abs_move_rank,
    countIf(ticker = 'QQQ') AS qqq_sessions_compared,
    round(max(if(ticker = 'QQQ', abs(cc_pct), 0)), 2) AS qqq_biggest_move_of_month_pct,
    countIf(ticker = 'QQQ' AND cc_pct > 0) AS qqq_up_sessions,
    round(anyIf(cc_pct, ticker = 'SPY' AND d = toDate('2026-06-29')), 2) AS spy_close_over_close_pct,
    arrayCount(x -> x > abs(anyIf(cc_pct, ticker = 'SPY' AND d = toDate('2026-06-29'))), groupArrayIf(abs(cc_pct), ticker = 'SPY' AND d != toDate('2026-06-29'))) + 1 AS spy_abs_move_rank,
    countIf(ticker = 'SPY') AS spy_sessions_compared,
    round(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-06-29')), 2) AS spy_open_to_close_pct,
    concat(monthName(min(d)), ' ', toString(toDayOfMonth(min(d))), ', ', toString(toYear(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-05-28 00:00:00')
          AND window_start < toDateTime('2026-06-30 00:00:00')
          AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
        GROUP BY ticker, d
    )
)
WHERE isFinite(cc_pct)

การเคลื่อนไหวครั้งใหญ่แต่ไม่ใช่สถิติ: การเคลื่อนไหว 2.57% ของ QQQ อยู่ในลำดับที่ 5 ของจำนวนเซสชัน 21 ตั้งแต่ May 29, 2026 โดยในเดือนนี้การเคลื่อนไหวครั้งเดียวที่ใหญ่ที่สุดวัดได้ที่ 4.76% ส่วน 1.62% ของ SPY อยู่ในลำดับที่ 4 ของ 21 แหล่งที่มาของการเคลื่อนไหวเป็นสิ่งสำคัญ: การขยับของราคา SPY จากราคาเปิดไปถึงราคาปิดอยู่ที่เพียง 0.59% ดังนั้นกำไรส่วนใหญ่จึงเกิดขึ้นในช่วง overnight gap ก่อนที่จะมีการแสดงแท่งราคาในช่วงเวลาทำการปกติเพียงแท่งเดียว QQQ ปิดบวกใน 10 ของเซสชันเหล่านั้น ซึ่งถือเป็นเดือนที่มีโอกาสเกิดขึ้นได้กึ่งหนึ่งพอๆ กับไม่เกิด

Breadth: ขอบเขตการปรับตัวขึ้นกว้างเพียงใด?

หุ้นที่ปรับตัวขึ้น (advancer) คือหุ้นที่มีราคาปิดในวันจันทร์สูงกว่าราคาปิดในวันศุกร์ โดยต้องมีมูลค่าการซื้อขายอย่างน้อย 1 ล้านดอลลาร์ ซึ่งเกณฑ์นี้ทำให้หุ้นจำนวน 5,108 จาก 11,475 ของหุ้นที่มีการซื้อขายทั้งสองวันถูกคัดออก

คำสั่งดึงข้อมูลจำนวนหุ้นบวกเทียบกับหุ้นลบ สำหรับหุ้นที่มีมูลค่าซื้อขายอย่างน้อย $1M ในวันที่ 29 มิถุนายน
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH per_ticker AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-06-27 00:00:00')) AS friday_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-06-29 00:00:00')) AS monday_close,
        sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-06-29 00:00:00') AS monday_dollar_volume
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE (window_start >= '2026-06-26 13:30:00' AND window_start < '2026-06-26 20:00:00')
       OR (window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00')
    GROUP BY ticker
)
SELECT
    countIf(monday_close > friday_close AND monday_dollar_volume >= 1000000) AS advancers,
    countIf(monday_close < friday_close AND monday_dollar_volume >= 1000000) AS decliners,
    countIf(monday_close = friday_close AND monday_dollar_volume >= 1000000) AS unchanged,
    countIf(monday_dollar_volume >= 1000000) AS liquid_tickers,
    count() AS tickers_traded_both_sessions,
    reverse(arrayStringConcat(extractAll(reverse(toString(count())), '[0-9]{1,3}'), ',')) AS tickers_traded_both_sessions_label,
    count() - countIf(monday_dollar_volume >= 1000000) AS dropped_by_liquidity_filter,
    reverse(arrayStringConcat(extractAll(reverse(toString(count() - countIf(monday_dollar_volume >= 1000000))), '[0-9]{1,3}'), ',')) AS dropped_by_liquidity_filter_label,
    round(100.0 * countIf(monday_close > friday_close AND monday_dollar_volume >= 1000000)
        / countIf(monday_dollar_volume >= 1000000), 1) AS advancer_pct
FROM per_ticker
WHERE friday_close > 0 AND monday_close > 0

3968 หุ้นที่ปรับตัวขึ้น, 2327 หุ้นที่ปรับตัวลง, 72 หุ้นที่ราคาคงที่: 62.3% ของหุ้นที่มีสภาพคล่องปรับตัวขึ้น — เมื่อนับรายตัว ถือเป็นวันที่ตลาดปรับตัวขึ้นในวงกว้าง

แยกตามกลุ่มอุตสาหกรรม: การปรับตัวขึ้นนั้นแคบกว่าที่เห็น

การนับจำนวนหุ้นที่ปรับตัวขึ้นเท่ากันเป็นมุมมองหนึ่ง แต่การให้น้ำหนักตามขนาดของบริษัทเป็นอีกมุมมองหนึ่ง โดย SPDR sector ETFs ทั้งสิบเอ็ดกองทุน คือตัวแทนของมุมมองที่สอง ซึ่งเป็นการรวมกลุ่มตามมูลค่าตลาดต่อหนึ่งกลุ่มอุตสาหกรรมใน S&P 500 ผลลัพธ์ที่ได้มีความแตกต่างอย่างมากจากการนับจำนวนหุ้น

คำสั่งดึงข้อมูลกลุ่มอุตสาหกรรมทั้ง 11 กลุ่ม: 29 มิถุนายน เทียบกับราคาปิด 26 มิถุนายน (ช่วงเวลาทำการปกติ)
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH per_etf AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-06-27 00:00:00')) AS friday_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-06-29 00:00:00')) AS monday_close,
        maxIf(toFloat64(high), window_start >= '2026-06-29 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-06-29 00:00:00') AS day_low,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-06-29 00:00:00') / 1e6, 0) AS dollar_volume_m
    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-06-26 13:30:00' AND window_start < '2026-06-26 20:00:00')
        OR (window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00'))
    GROUP BY ticker
)
SELECT
    sector,
    ticker,
    round((monday_close / friday_close - 1) * 100, 2) AS pct_change,
    round((day_high / day_low - 1) * 100, 2) AS range_pct,
    dollar_volume_m,
    round((monday_close / friday_close - 1) * 100 - min((monday_close / friday_close - 1) * 100) OVER (), 2) AS pct_above_worst_sector
FROM (
    SELECT *,
        multiIf(ticker = 'XLB', 'Materials',
                ticker = 'XLC', 'Communication services',
                ticker = 'XLE', 'Energy',
                ticker = 'XLF', 'Financials',
                ticker = 'XLI', 'Industrials',
                ticker = 'XLK', 'Technology',
                ticker = 'XLP', 'Consumer staples',
                ticker = 'XLRE', 'Real estate',
                ticker = 'XLU', 'Utilities',
                ticker = 'XLV', 'Health care',
                'Consumer discretionary') AS sector
    FROM per_etf
)
ORDER BY pct_change DESC

กลุ่ม Technology นำตลาดที่ 2.52% ตามด้วย consumer discretionary ที่ 2.37% ส่วนกลุ่ม materials ปิดที่ -1.82% และ real estate ที่ -0.64% ค่าความแตกต่างระหว่างกลุ่มที่ปรับตัวขึ้นสูงสุดและต่ำสุด หรือการกระจายตัวของกลุ่มอุตสาหกรรมในวันนั้น วัดได้ที่ 4.34 percentage points โดยกลุ่ม utilities, staples, energy, real estate และ materials ต่างมีราคาลดลงในวันที่ดัชนีปรับตัวเพิ่มขึ้น การเพิ่มขึ้นของกองทุนดัชนีอาจปกปิดความจริงที่ว่า ตลาดมีการกระจายตัวกว้างในเชิงจำนวนหุ้น แต่แคบในเชิงน้ำหนักการลงทุน

ไฮไลท์ประจำวัน: หน่วยความจำและหน่วยจัดเก็บข้อมูล

หุ้นสี่ตัวเคลื่อนไหวในทิศทางเดียวกันแต่ให้ผลลัพธ์ที่แตกต่างกันอย่างมาก โดยมีความสัมพันธ์กันเพียงในด้านทิศทางและขนาดการเคลื่อนไหวเท่านั้น ข้อมูลไม่ได้ระบุสาเหตุที่แน่ชัด

คำสั่งดึงข้อมูลกลุ่มหุ้น Memory/Storage: การเปลี่ยนแปลงเทียบกับราคาปิดวันศุกร์และกรอบราคา Intraday
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-06-27 00:00:00')) AS friday_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-06-29 00:00:00')) AS monday_close,
        maxIf(toFloat64(high), window_start >= '2026-06-29 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-06-29 00:00:00') AS day_low,
        argMinIf(window_start, toFloat64(low), window_start >= '2026-06-29 00:00:00') AS low_bar,
        argMaxIf(window_start, toFloat64(high), window_start >= '2026-06-29 00:00:00') AS high_bar
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('MU', 'SNDK', 'STX', 'WDC')
      AND ((window_start >= '2026-06-26 13:30:00' AND window_start < '2026-06-26 20:00:00')
        OR (window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00'))
    GROUP BY ticker
)
SELECT
    ticker,
    round(friday_close, 2) AS jun26_close,
    round(monday_close, 2) AS jun29_close,
    round((monday_close / friday_close - 1) * 100, 2) AS pct_chg,
    round(day_high, 2) AS day_high,
    formatDateTime(toTimeZone(high_bar, 'America/New_York'), '%H:%i') AS day_high_et,
    round(day_low, 2) AS day_low,
    formatDateTime(toTimeZone(low_bar, 'America/New_York'), '%H:%i') AS day_low_et,
    round((day_high / day_low - 1) * 100, 2) AS range_pct
FROM per_name
ORDER BY ticker

MU เป็นกรณีตัวอย่างที่ชัดเจนระหว่างกรอบการแกว่งตัวเทียบกับการเปลี่ยนแปลงสุทธิ โดยมีกรอบการแกว่งตัวระหว่างวันที่ 12.22% ซึ่งมีจุดต่ำสุดที่ $1023.65 ณ เวลา 10:18 ET และจุดสูงสุดที่ $1148.79 ณ เวลา 15:59 แต่ราคาปิดกลับสูงกว่าวันศุกธ์ที่ 1.97% ส่วน Western Digital ปรับตัวขึ้น 11.15% และ Seagate ปรับตัวขึ้น 8.17% ขณะที่ SanDisk ปิดที่ -1.9% ภายในกรอบการแกว่งตัว 10.33% ซึ่งเป็นหุ้นเพียงตัวเดียวในกลุ่มที่ปิดลบ การดูเพียงราคาปิดอาจไม่สามารถสะท้อนถึงความผันผวนที่ผู้ถือหุ้นต้องเผชิญได้

กระแสเงินหมุนเวียนในตลาด

หากวัดจากมูลค่าการซื้อขาย Micron (MU) มีมูลค่าสูงกว่าทุกหลักทรัพย์รวมถึงกองทุนดัชนี โดยมีมูลค่าสูงถึง $58.47 billion เมื่อเทียบกับ SPY ที่มีมูลค่า $33.97 billion แต่หากพิจารณาจากจำนวนหุ้นที่ซื้อขายกันนั้น ผลลัพธ์จะแตกต่างออกไป

คำสั่งดึงข้อมูลผู้นำด้านปริมาณการซื้อขาย: 6 อันดับแรกโดยมูลค่า ($) และ 4 อันดับแรกโดยจำนวนหุ้น
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT ticker, leaderboard, dollar_volume_bn, if(dollar_volume_bn < 1, dollar_volume_m, NULL) AS dollar_value_m, 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(close) * toFloat64(volume)) / 1e6, 0) AS dollar_volume_m,
        round(sum(toFloat64(volume)) / 1e6, 1) AS shares_m
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00'
    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(close) * toFloat64(volume)) / 1e6, 0) AS dollar_volume_m,
        round(sum(toFloat64(volume)) / 1e6, 1) AS shares_m
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00'
    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

ข้อมูลจำนวนหุ้นที่ซื้อขายอาจทำให้เข้าใจผิด เนื่องจากหุ้นที่มีปริมาณการซื้อขายสูงสุดคือ SOXS ซึ่งเป็น ETF แบบ inverse semiconductor ที่มีอัตราทด 3 เท่า (695.3 million shares) และ INLF ซึ่งเป็นหุ้นราคาถูก (penny stock) ที่มีจำนวนหุ้น 353.8 million shares และมีมูลค่ารวมตลอดทั้งวันประมาณ $23 million ปริมาณการซื้อขายในรูปของมูลค่าเงินจะแสดงให้เห็นว่าเงินไหลไปที่ใด ส่วน ปริมาณการซื้อขายสัมพัทธ์ จะแสดงให้เห็นว่ากิจกรรมของหุ้นตัวนั้นๆ มีความผิดปกติเมื่อเทียบกับตัวมันเองหรือไม่

เมื่อพิจารณาตามช่วงเวลา 30 นาทีในตลาดนิวยอร์ก วันที่ 29 มิถุนายน แสดงให้เห็นรูปแบบปริมาณการซื้อขายแบบ "smile" ที่ชัดเจน:

คำสั่งดึงข้อมูลปริมาณการซื้อขายหุ้นต่อช่วงเวลา 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,
    round(100 * (sum(toFloat64(volume)) / min(sum(toFloat64(volume))) OVER () - 1), 1) AS pct_above_trough
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00'
GROUP BY et_time
ORDER BY et_time

มีปริมาณการซื้อขาย 2.3 billion shares ในช่วงครึ่งชั่วโมงแรกของการเปิดตลาด, มีจุดต่ำสุดที่ 0.77 billion ในช่วงเวลา 13:30, และช่วงที่มีปริมาณการซื้อขายสูงสุดคือ 2.39 billion ในช่วงครึ่งชั่วโมงสุดท้ายของการปิดตลาด ซึ่งเป็นช่วงที่มีการกระจุกตัวของ การประมูลปิดตลาด และกระแสเงินจากกองทุนที่ติดตามดัชนี

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

มีการซื้อขาย options ทั้งหมด 66.33 ล้านสัญญา จากรายการซื้อขายทั้งหมด 11.04 ล้านรายการ

คำสั่งดึงข้อมูลข้อมูล Options ทั้งวัน: ปริมาณการซื้อขาย, 0DTE และสัปดาห์ที่ปรับตามวันหยุด
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH
    (
        SELECT (any(underlying_symbol), any(toFloat64(strike_price)), any(option_type),
                any(toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6)))),
                sum(size), count(), round(avg(toFloat64(price)), 3))
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-06-29 00:00:00' AND sip_timestamp < '2026-06-30 00:00:00'
        GROUP BY ticker
        ORDER BY sum(size) DESC
        LIMIT 1
    ) AS top_contract,
    (
        SELECT round(toFloat64(argMax(close, window_start)), 2)
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY' AND window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 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) = '260629') / sum(size), 1) AS same_day_expiry_pct,
    round(toFloat64(sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260702')) / 1e6, 2) AS thu_jul2_expiry_contracts_m,
    countIf(substring(ticker, length(ticker) - 14, 6) = '260703') AS fri_jul3_expiry_prints,
    countIf(sip_timestamp < '2026-06-29 13:30:00') AS premarket_prints,
    reverse(arrayStringConcat(extractAll(reverse(toString(countIf(sip_timestamp < '2026-06-29 13:30:00'))), '[0-9]{1,3}'), ',')) AS premarket_prints_label,
    countIf(sip_timestamp < '2026-06-29 13:30:00'
        AND underlying_symbol NOT IN ('SPX', 'SPXW', 'XSP', 'RUTW', 'VIX', 'VIXW')) AS premarket_non_index_prints,
    arrayStringConcat(arraySort(groupUniqArrayIf(underlying_symbol, sip_timestamp < '2026-06-29 13:30:00')), ', ') AS premarket_underlyings,
    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,
    top_contract.1 AS top_contract_underlying,
    top_contract.2 AS top_contract_strike,
    top_contract.3 AS top_contract_type,
    top_contract.4 AS top_contract_expiry,
    top_contract.5 AS top_contract_volume,
    reverse(arrayStringConcat(extractAll(reverse(toString(assumeNotNull(top_contract.5))), '[0-9]{1,3}'), ',')) AS top_contract_volume_label,
    round(top_contract.7, 3) AS top_contract_avg_price,
    round(top_contract.2 - spy_regular_close, 2) AS top_strike_minus_spy_close
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-06-29 00:00:00' AND sip_timestamp < '2026-06-30 00:00:00'

Calls มีสัดส่วนเป็น 55.7% ของปริมาณสัญญา และ 35.8% ของปริมาณการซื้อขายทั้งหมดหมดอายุในวันจันทร์เดียวกัน — หุ้นกลุ่ม zero-days-to-expiry (0DTE) สัญญาที่มีการซื้อขายหนาแน่นที่สุดคือ SPY call ที่ strike price $741: 788,133 สัญญา โดยมีค่า premium เฉลี่ยที่ $0.474 ขณะที่ราคาปิดของ SPY อยู่ ต่ำกว่า strike price อยู่ 0.12 ดอลลาร์ — ส่งผลให้ option ที่มีการซื้อขายสูงสุดของวันจบลงในสถานะ out of the money โดยมีปริมาณการซื้อขาย underlying ของ SPY อยู่ที่ 12.01 ล้านสัญญา และ QQQ อยู่ที่ 7.32 ล้านสัญญา

ข้อมูลยังระบุว่ามีรายการ option จำนวน 40,621 รายการ ก่อนตลาดหุ้นเปิดเวลา 9:30 น. โดยทุกรายการเป็น option ของดัชนีที่ชำระราคาด้วยเงินสด (RUTW, SPX, SPXW, VIX, VIXW, XSP) และมีรายการ option ของหุ้นหรือ ETF จำนวน 0 รายการในช่วงเวลาเดียวกัน ซึ่งเป็นไปตามกฎเกณฑ์ไม่ใช่เรื่องบังเอิญ เนื่องจาก option ของดัชนีมีช่วงเวลาซื้อขายครอบคลุมถึงช่วงเวลาการซื้อขายทั่วโลก ส่วน option ของหุ้นและ ETF จะเปิดซื้อขายพร้อมกับตลาดหุ้น โดยหุ้นจะมีการซื้อขายล่วงหน้า — ดูรายละเอียดที่ การซื้อขายช่วง premarket และ after-hours — แต่ option จะไม่ได้ซื้อขายในช่วงเวลาดังกล่าว

ไม่มีสัญญาใดที่มีวันหมดอายุในวันศุกร์ที่ 3 กรกฎาคม ถูกซื้อขายเลยตลอดทั้งวัน (0 รายการ) เนื่องจากตลาดปิดทำการในวันศุกร์ดังกล่าว ในขณะที่สัญญาที่มีวันหมดอายุในวันพฤหัสบดีที่ 2 กรกฎาคม มีปริมาณการซื้อขายอยู่ที่ 10.73 ล้านสัญญา

The quote tape: what the day cost to trade

Every price on this page sits on a quote stream — the National Best Bid and Offer, re-published continuously for every listed name. The gap between best bid and best offer, the bid-ask spread, is what an order pays to cross.

คำสั่งดึงข้อมูลต้นทุนในการทำธุรกรรมผ่าน Spread: การอัปเดต NBBO และค่ากลางของ Quoted Width ในช่วงเวลาทำการปกติ
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT
    ticker,
    round(count() / 1e6, 2) AS nbbo_updates_m,
    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), 2) AS median_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-06-29 13:30:00' AND sip_timestamp < '2026-06-29 14:00:00'), 2) AS open_30min_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-06-29 17:00:00' AND sip_timestamp < '2026-06-29 17:30: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-06-29 13:30:00' AND sip_timestamp < '2026-06-29 14:00: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-06-29 17:00:00' AND sip_timestamp < '2026-06-29 17:30:00'), 2) AS open_minus_midday_bps,
    countIf(NOT (bid_price > 0 AND ask_price >= bid_price)) AS dropped_invalid_quotes
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'QQQ', 'MU', 'WDC')
  AND sip_timestamp >= '2026-06-29 13:30:00' AND sip_timestamp < '2026-06-29 20:00:00'
GROUP BY ticker
ORDER BY ticker

SPY's median quoted width was 0.41 basis points of its mid-price, against 0.84 for QQQ, 4.6 for Micron and 8.2 for Western Digital — the widest of the four. One basis point of a $10,000 order is one dollar, so buying and instantly selling $10,000 of SPY at the quote costs about $0.41; the same round trip in Western Digital costs $8.2. The trade size did not change; the name did.

All four quoted wider in the opening half hour than in the midday control window — SPY 0.41 bps against 0.27, Western Digital 14.33 against 7.55, a 6.78 bp opening premium on the widest name. Churn is the other half: 3.98 million NBBO updates on SPY in regular hours, 4.42 million on QQQ.

อัตราดอกเบี้ย: เส้นอัตราผลตอบแทนเปลี่ยนแปลงเพียงเล็กน้อย

พันธบัตรสหรัฐฯ มีการซื้อขายที่เงียบเหงาในวันจันทร์ อัตราผลตอบแทนที่แสดงคือราคาปิดรายวัน โดยเปรียบเทียบกับการปิดตลาดเมื่อวันที่ 26 มิถุนายน

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

พันธบัตรอายุ 10 ปี ปิดที่ 4.38% โดยไม่มีการเปลี่ยนแปลงในวันนั้น (0 bp) ในขณะที่ตั๋วเงินอายุ 3 เดือน ปรับตัวเพิ่มขึ้น 4 bp เป็น 3.87% ส่วน ส่วนต่าง 2s10s — ซึ่งคือผลต่างระหว่างอายุ 10 ปี และ 2 ปี — ปิดที่ 0.28 percentage points (-3 bp) โดยยังมีค่าเป็นบวก แต่มีความชันลดลงเล็กน้อย

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

คำสั่งดึงข้อมูลปฏิทินบริษัทและกระแสข้อมูลของวันที่ 29 มิถุนายน ในแถวเดียว
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH
    (
        SELECT (argMax(d, n), max(n))
        FROM (
            SELECT ex_dividend_date AS d, count() AS n
            FROM global_markets.stocks_dividends
            WHERE ex_dividend_date BETWEEN '2026-06-22' AND '2026-07-02'
            GROUP BY d
        )
    ) AS peak_ex_div,
    (
        SELECT (countIf(form_type = '424B2'), countIf(form_type = '4'), countIf(form_type = '8-K'), count())
        FROM global_markets.stocks_sec_edgar_index
        WHERE filing_date = '2026-06-29'
    ) AS filings,
    (
        SELECT (count(), uniqExact(publisher), countIf(has(tickers, 'NVDA')))
        FROM global_markets.stocks_news
        WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-06-29'
    ) AS news,
    (
        SELECT max(n)
        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-06-29'
            )
            WHERE t NOT IN ('NVDA', 'SPCX')
            GROUP BY t
        )
    ) AS runner_up_articles,
    (
        SELECT (any(split_from), any(split_to), count())
        FROM global_markets.stocks_splits
        WHERE ticker = 'HON' AND execution_date = '2026-06-29'
    ) AS hon_split,
    (
        SELECT (
            round(toFloat64(argMaxIf(close, window_start, window_start < '2026-06-27 00:00:00')), 2),
            round(toFloat64(argMaxIf(close, window_start, window_start >= '2026-06-29 00:00:00')), 2)
        )
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'HON'
          AND ((window_start >= '2026-06-26 13:30:00' AND window_start < '2026-06-26 20:00:00')
            OR (window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00'))
    ) AS hon_close
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-06-29') AS ex_dividend_records_jun29,
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-06-29'
        AND ticker IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'GOOGL', 'GOOG', 'META', 'TSLA', 'JPM', 'JNJ',
                       'XOM', 'KO', 'PG', 'V', 'MA', 'HD', 'WMT', 'CVX', 'MRK', 'PEP',
                       'SPY', 'QQQ', 'DIA', 'IWM', 'VTI')) AS household_name_ex_dividends,
    length(['AAPL', 'MSFT', 'NVDA', 'AMZN', 'GOOGL', 'GOOG', 'META', 'TSLA', 'JPM', 'JNJ',
            'XOM', 'KO', 'PG', 'V', 'MA', 'HD', 'WMT', 'CVX', 'MRK', 'PEP',
            'SPY', 'QQQ', 'DIA', 'IWM', 'VTI']) AS household_names_checked,
    concat(monthName(peak_ex_div.1), ' ', toString(toDayOfMonth(peak_ex_div.1))) AS busiest_ex_div_day_of_window,
    peak_ex_div.2 AS busiest_ex_div_day_records,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date = '2026-06-29') AS splits_executed,
    (SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-06-29') AS ipos_listed_jun29,
    (SELECT arrayStringConcat(groupArray(ticker), ', ') FROM (
        SELECT ticker FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-01' ORDER BY ticker
    )) AS jul1_ipo_debuts,
    filings.4 AS sec_filings,
    filings.1 AS prospectus_424b2_filings,
    filings.2 AS insider_form4_filings,
    filings.3 AS filings_8k,
    news.1 AS news_articles,
    news.2 AS news_publishers,
    news.3 AS nvda_articles,
    runner_up_articles AS next_most_covered_articles,
    news.3 - runner_up_articles AS nvda_minus_next_most_covered,
    hon_split.3 AS hon_split_records,
    hon_split.1 AS hon_split_from,
    hon_split.2 AS hon_split_to,
    hon_close.1 AS hon_close_jun26,
    hon_close.2 AS hon_close_jun29

รายการเงินปันผล 449 มีการขึ้นเครื่องหมาย ex-dividend เมื่อวันที่ 29 มิถุนายน — คุณต้องถือครองหุ้นก่อน วันที่ขึ้นเครื่องหมาย ex-dividend เพื่อที่จะได้รับเงินปันผล อย่างไรก็ตาม จากรายชื่อบริษัทชั้นนำ 25 แห่งที่เราตรวจสอบ พบเพียง 0 แห่งเท่านั้นที่ปรากฏในรายการ ปริมาณธุรกรรมช่วงสิ้นไตรมาสพุ่งสูงถึง 745 รายการ เมื่อวันที่ July 1 มีการดำเนินการแตกหุ้น 23 ครั้ง และมีการจดทะเบียน IPO 0 ครั้ง โดยมีการเปิดตัวในวันพุธ (BSP, ITG, LIME) รออยู่ในปฏิทินแล้ว

SEC บันทึกการยื่นเอกสาร 6173 เมื่อวันที่ 29 มิถุนายน ประกอบด้วย เอกสารประกอบการกำหนดราคาผลิตภัณฑ์โครงสร้าง 1473 (form 424B2) และ รายงานการซื้อขายโดยคนใน (Form 4) จำนวน 1277 รายการ ซึ่งมีจำนวนมากกว่า 8-Ks จำนวน 231 รายการที่มักเป็นพาดหัวข่าว ข้อมูลข่าวสารของเรานำเสนอบทความ 170 รายการ จากผู้ให้บริการ 3 ราย หากไม่นับรวมสัญลักษณ์หุ้นที่ถูกนำมาใช้ซ้ำซึ่งมีการติดแท็กไม่ชัดเจน (ถูกตัดออกจากการสืบค้น) ชื่อหุ้นที่มีการรายงานมากที่สุดคือ NVDA ด้วยจำนวน 14 บทความ ขณะที่อันดับรองลงมามีจำนวน 12 บทความ

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

ข้อมูลที่ผิดปกติจะถูกระบุไว้ในหมายเหตุเสมอ จะไม่มีการตัดออกโดยไม่แจ้งให้ทราบ — ข้อมูลทั้งสี่ส่วนนี้ส่งผลต่อตัวเลขหลัก

  • ตะกร้ากลุ่มอุตสาหกรรม (Sector baskets) ใช้ระเบียบวิธีที่กำหนดไว้ "Sector" หมายถึง SPDR sector ETFs ทั้ง 11 รายการ โดยให้น้ำหนักตามมูลค่าตลาด — ใช้ชื่อเดิมในทุกรอบการซื้อขาย ไม่ใช่การจัดกลุ่มรายหลักทรัพย์ของผู้ให้บริการข้อมูล
  • Dollar volume คือค่าประมาณต่อนาที — คำนวณจากราคาปิดคูณด้วยปริมาณการซื้อขายรวมในแต่ละแท่งนาที ซึ่งมีค่าใกล้เคียงแต่ไม่เท่ากับผลรวมของมูลค่าการซื้อขายจริง
  • Quoted spreads ไม่รวมราคาเสนอซื้อขายที่ไม่ถูกต้อง (ราคาเสนอซื้อขายที่มีเพียงด้านเดียว หรือราคา NBBO ที่คาบเกี่ยวกัน); แผงข้อมูลจะระบุจำนวนรายการที่ถูกตัดออก (1544 ใน SPY) ค่ามัธยฐานของความกว้างราคาเสนอซื้อขาย (Median quoted width) คือสถิติการเสนอราคา ไม่ใช่ต้นทุนต่อการซื้อขาย — เนื่องจากคำสั่งซื้อขายมักดำเนินการในราคาที่ดีกว่าราคาที่เสนอไว้
  • รายการซื้อขายเพียงรายการเดียวอาจทำให้ค่าสูงสุดหรือต่ำสุดของแท่งนาทีผิดเพี้ยนได้ แท่งเวลา 11:07 ET ของ QQQ มีจุดต่ำสุดที่ $709.58 ในขณะที่ไม่มีแท่งเวลาอื่นที่มีราคาต่ำกว่า $715.09 — มีรายการซื้อขายหนึ่งรายการที่ต่ำกว่าราคาตลาดในขณะนั้นอยู่ $5.51 ค่าสูงสุดและต่ำสุดที่สูงกว่านี้ทั้งหมดได้รับการตรวจสอบเทียบกับแท่งเวลาข้างเคียงแล้ว; จุดต่ำสุดของรอบการซื้อขายของ QQQ ที่ $705.172 ผ่านการตรวจสอบแล้ว
หมายเหตุข้อมูลฉบับเต็ม
  • การครอบคลุมพันธบัตร Treasury น้อยกว่าที่ระบุในโครงสร้างข้อมูล อายุพันธบัตรสี่ช่วงที่โฆษณาไว้ (6 เดือน, 3 ปี, 7 ปี และ 20 ปี) ไม่เคยมีการเติมข้อมูล; กราฟแสดงผลเฉพาะเจ็ดช่วงที่มีอยู่จริง พร้อมกับแถว 2s10s
  • ข้อมูลการ "reverse split" ของ Honeywell ขัดแย้งกับข้อมูลในระบบ ข้อมูลแสดงรายการ 1 ของ HON ลงวันที่ 29 มิถุนายน: เป็นการทำ reverse split ที่เปลี่ยนหุ้นเดิม 2 หุ้น ให้เป็นหุ้นใหม่ 1 หุ้น โดย HON ปิดที่ $231.3 เมื่อวันศุกร์ และ $227.71 เมื่อวันจันทร์ — ไม่มีการเพิ่มขึ้นเป็นสองเท่า เราจึงไม่ได้ปรับปรุงข้อมูลนี้
  • จำนวนข่าวมาจากฟีดของผู้ให้บริการรายเดียว คือผู้เผยแพร่ 3 ที่เราใช้งาน — ไม่ใช่ "ข่าวทั้งหมดในตลาด"
  • ข้อมูลระดับ Tick — ราคาเสนอซื้อขายที่คาบเกี่ยวกัน (crossed quotes), การปรับปรุงปริมาณการซื้อขายลวง (phantom-volume correction), ไฟล์ปริมาณการขายชอร์ตที่ถูกตัดทอนของ FINRA (และเหตุผลที่ ปริมาณการขายชอร์ตไม่ใช่สถานะขายชอร์ต) — สามารถดูได้ใน บทวิเคราะห์เจาะลึก

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

คำสั่งดึงข้อมูลการตรวจสอบเซสชัน: ช่วงเวลา Minute-bar ของ SPY และราคาปิดวันศุกร์
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH
    (
        SELECT (
            round(toFloat64(minIf(low, formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') = '11:07')), 2),
            round(toFloat64(minIf(low, formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') IN ('11:04', '11:05', '11:06', '11:08', '11:09', '11:10'))), 2)
        )
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'QQQ' AND window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00'
    ) AS qqq_lone
SELECT
    (SELECT count() FROM global_markets.delayed_stocks_minute_aggs
     WHERE ticker = 'SPY' AND window_start >= '2026-07-03 00:00:00' AND window_start < '2026-07-04 00:00:00') AS jul3_spy_bars,
    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-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00') AS regular_session_bars,
    qqq_lone.1 AS qqq_1107_lone_low,
    qqq_lone.2 AS qqq_1107_adjacent_bars_low,
    round(qqq_lone.2 - qqq_lone.1, 2) AS qqq_lone_print_below_adjacent
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-06-29 00:00:00' AND window_start < '2026-06-30 00:00:00'

แท่งเทียนของ SPY เริ่มต้นตั้งแต่ 04:00 ถึง 19:59 ตามเวลา New York โดยมีแท่งเทียนในช่วงเวลาทำการปกติทั้งหมด 390 แท่ง ซึ่งเป็นการยืนยันข้อมูลการซื้อขายที่ครบถ้วนสมบูรณ์จากข้อมูลการซื้อขายจริง (เนื่องจากชุดข้อมูลปฏิทินตลาดระบุเฉพาะวันหยุดที่กำลังจะมาถึงเท่านั้น) ในวันศุกร์ที่ 3 กรกฎาคม นั้นเป็นวันทำการเต็มวัน — 0 แท่งเทียนของ SPY ปรากฏขึ้นตลอดทั้งวัน เนื่องจากวันที่ 4 กรกฎาคม ตรงกับวันเสาร์ ส่วนสัปดาห์ที่มีสี่ช่วงการซื้อขายนั้นสามารถอ่าน สรุปข้อมูลได้ที่นี่

คำถามที่พบบ่อย

ตลาดหุ้นในวันที่ 29 มิถุนายน 2026 เป็นอย่างไร?

ตลาดปรับตัวขึ้นโดยมีหุ้นกลุ่มเติบโตเป็นผู้นำ: QQQ ปิดที่ระดับ 2.57% สูงกว่าวันศุกร์ ขณะที่ SPY อยู่ที่ 1.62%, DIA อยู่ที่ 0.81% และ IWM อยู่ที่ 0.45% โดยมีหุ้น 62.3% จากทั้งหมดที่มีมูลค่าการซื้อขายตั้งแต่ 1 ล้านดอลลาร์ขึ้นไป ปิดตลาดในแดนบวก

วันที่ 29 มิถุนายน 2026 เป็นวันที่สำคัญสำหรับ Nasdaq หรือไม่?

เป็นวันที่สำคัญแต่ไม่ถึงกับโดดเด่น: การเคลื่อนไหวของ QQQ ในช่วงปิดตลาดเทียบกับช่วงก่อนหน้าอยู่ที่ 2.57% ซึ่งเมื่อพิจารณาจากขนาดการเคลื่อนไหวสัมบูรณ์แล้ว ถือเป็นอันดับที่ 5 ของจำนวนรอบการซื้อขาย 21 ในเดือนที่ผ่านมา โดยมีค่าสูงสุดของเดือนอยู่ที่ 4.76%

กลุ่มอุตสาหกรรมใดที่เป็นผู้นำในวันที่ 29 มิถุนายน 2026?

กลุ่ม Technology (2.52%) และ Consumer Discretionary (2.37%) เป็นผู้นำในบรรดากลุ่มอุตสาหกรรมทั้ง 11 ของ SPDR; กลุ่ม Materials อยู่ในอันดับสุดท้ายที่ -1.82% โดยมีส่วนต่างอยู่ที่ 4.34 เปอร์เซ็นต์พอยต์ นอกจากนี้กลุ่ม Utilities, Staples, Energy และ Real Estate ปิดตลาดในแดนลบเช่นกัน

สัดส่วนปริมาณการซื้อขายออปชันแบบ 0DTE ในวันที่ 29 มิถุนายน 2026 คิดเป็นเท่าใด?

ออปชันที่มีวันหมดอายุภายในวันเดียวกันคิดเป็น 35.8% ของจำนวนสัญญาที่ซื้อขายทั้งหมด 66.33 ล้านสัญญา; โดยสัญญาที่มีการซื้อขายหนาแน่นที่สุดคือ SPY $741 call ที่หมดอายุในวันเดียวกัน (จำนวน 788,133 สัญญา) และปิดสถานะแบบ out of the money

ทำไมจึงมีการซื้อขายออปชันก่อนตลาดหุ้นเปิด?

มีเพียงออปชันดัชนีเท่านั้นที่มีการซื้อขายดังกล่าว โดยรายการออปชัน 40,621 ทั้งหมดก่อนเวลา 9:30 น. ET ของวันที่ 29 มิถุนายน เป็นออปชันที่อ้างอิงกับดัชนีซึ่งชำระราคาด้วยเงินสด (RUTW, SPX, SPXW, VIX, VIXW, XSP) ซึ่งครอบคลุมช่วงเวลาการซื้อขายทั่วโลกที่ขยายเวลาออกไป ส่วนรายการออปชันหุ้นและ ETF ในช่วงเวลาดังกล่าวมีจำนวนทั้งสิ้น 0 รายการ

ระเบียบวิธี

  • ข้อมูลเวลาถูกจัดเก็บในรูปแบบ UTC และถูกแปลงเป็นเวลาของนิวยอร์กภายในคำสั่งดึงข้อมูล (queries) ค่า "Close" คือราคาปิดนาทีสุดท้ายของช่วงเวลาซื้อขายปกติ ไม่ใช่ราคาจากการประมูล (auction print) การเปรียบเทียบการเปลี่ยนแปลงรายวันใช้ข้อมูลวันที่ 29 มิถุนายน เทียบกับ 26 มิถุนายน และมีการตรวจสอบช่วงเวลาการซื้อขายจากช่วงเวลาของแท่งเทียนที่ปรากฏ
  • การจัดอันดับย้อนหลังหนึ่งเดือน (trailing-month rank) ใช้การเคลื่อนไหวของราคาปิดในช่วงเวลาทำการปกติแบบ Close-over-close โดยตัดเซสชันแรกออก (เนื่องจากไม่มีราคาปิดก่อนหน้าภายในช่วงเวลาที่กำหนด) ข้อมูลวันหมดอายุของ Option ถูกดึงข้อมูลใหม่จาก ticker ของ OCC (เนื่องจากคอลัมน์วันหมดอายุในตารางเดิมมีความผิดพลาด)
  • ทุกแผงข้อมูล (panel) ถูกอ่านเพียงครั้งเดียว ณ เวลาที่ผู้เขียนจัดทำ ผ่านช่องทางอ่านอย่างเดียว (read-only path) ที่มีการจำกัดสิทธิ์ ข้อมูลในคลังข้อมูล (Warehouse) เป็นข้อมูล ณ วันที่ 13 กรกฎาคม 2026

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