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

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

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

วันอังคารที่ 30 มิถุนายน 2026 ซึ่งเป็นเซสชันสุดท้ายของไตรมาส เป็นวันที่ตลาดปรับตัวขึ้นโดยมีกลุ่มเทคโนโลยีเป็นแรงขับเคลื่อนหลัก ท่ามกลางสภาวะตลาดส่วนใหญ่ที่ปิดลบ โดย QQQ เพิ่มขึ้น 1.63% และ SPY เพิ่มขึ้น 0.73% อย่างไรก็ตาม มีกองทุนในกลุ่ม S&P เพียง 4 ของ 10 เท่านั้นที่ปิดในแดนบวก (หุ้นที่มีสภาพคล่องสูง 3,349 ปรับตัวขึ้น, หุ้น 3,033 ปรับตัวลง) สำหรับข้อมูลในเซสชันก่อนหน้า: สรุปภาพรวมวันที่ 29 มิถุนายน ตัวเลขทั้งหมดด้านล่างนี้ดึงมาจากฐานข้อมูล — สามารถขยายแถบข้อมูลเพื่อดูคำสั่ง SQL ได้

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

การเปรียบเทียบทุกการเปลี่ยนแปลงเป็นการเทียบระหว่างแท่งราคาช่วงนาทีสุดท้ายของตลาดปกติ ณ วันที่ 30 มิถุนายน กับวันจันทร์ที่ 29 มิถุนายน

คำสั่งดึงข้อมูลSPY / QQQ / DIA / IWM — 30 มิถุนายน เทียบกับราคาปิด 29 มิถุนายน (เวลาทำการปกติ)
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-06-29 13:30:00' AND window_start < '2026-06-29 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-06-30 13:30:00' AND window_start < '2026-06-30 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_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

SPY เปิดที่ $741.29 และปิดที่ $746.32 ซึ่งใกล้กับระดับสูงสุดที่ $748.02 ส่วนผลต่างระหว่าง 1.63% ของ QQQ เทียบกับ 0.12% ของ DIA คือภาพรวมของวันนี้ โดยหุ้นกลุ่มเติบโตมีค่าเพิ่มขึ้น หุ้นกลุ่ม Blue chip แทบไม่มีการเคลื่อนไหว และ IWM 0.49%

สรุปผลการดำเนินงานประจำไตรมาส

วันที่ 30 มิถุนายน ปิดฉากการซื้อขาย 62 เซสชันสุดท้ายในไตรมาสที่สอง โดยทิศทางของตลาดในวันนี้สะท้อนภาพรวมของทั้งไตรมาส

คำสั่งดึงข้อมูลสิ้นสุด Q2 2026: ผลตอบแทนแต่ละดัชนี ETF ตั้งแต่เปิดตลาด 1 เมษายน ถึงปิดตลาด 30 มิถุนายน (เวลาทำการปกติ)
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH q2 AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           argMin(toFloat64(open), window_start) AS d_open,
           argMax(toFloat64(close), window_start) AS d_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
      AND window_start >= toDateTime('2026-04-01 00:00:00')
      AND window_start < toDateTime('2026-07-01 00:00:00')
      AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
    GROUP BY ticker, d
)
SELECT
    ticker,
    toString(min(d)) AS quarter_first_session,
    count() AS quarter_sessions,
    round(argMin(d_open, d), 2) AS quarter_open,
    round(argMax(d_close, d), 2) AS quarter_close,
    round((argMax(d_close, d) / argMin(d_open, d) - 1) * 100, 2) AS quarter_pct,
    countIf(d_close > d_open) AS up_sessions
FROM q2
GROUP BY ticker
ORDER BY quarter_pct DESC, ticker ASC

ตั้งแต่วันที่ 1 เมษายน ถึง 30 มิถุนายน: QQQ +26.53%, IWM 20.21%, SPY 14.13%, DIA 12.08%. QQQ ให้ผลตอบแทนสูงสุดทั้งในไตรมาสและในวันที่ 30 มิถุนายน อย่างไรก็ตาม ผลตอบแทนระหว่างดัชนีมีการเปลี่ยนแปลงในช่วงระหว่างไตรมาส โดยในวันที่ 30 มิถุนายน SPY ให้ผลตอบแทนสูงกว่า IWM แต่ตลอดทั้งไตรมาส IWM ให้ผลตอบแทนสูงกว่า SPY ทั้งนี้ QQQ ปิดบวกใน 38 ของ 62 เซสชัน (สรุปภาพรวม Q2 แสดงรายละเอียดแยกตามรายดัชนี)

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

คำสั่งดึงข้อมูลอันดับการเคลื่อนที่ของ SPY (Open-to-close) เทียบกับรอบเดือนที่ผ่านมา (อันดับ 1 = เปลี่ยนแปลงสูงสุด)
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT round(anyIf(oc_pct, d = toDate('2026-06-30')), 2) AS day_move_pct,
       arrayCount(x -> x > abs(anyIf(oc_pct, d = toDate('2026-06-30'))), groupArrayIf(abs(oc_pct), d != toDate('2026-06-30'))) + 1 AS abs_move_rank,
       count() AS 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-01 00:00:00')
      AND window_start < toDateTime('2026-07-01 00:00:00')
      AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
    GROUP BY d
)

การเคลื่อนที่ของ SPY จากราคาเปิดถึงราคาปิดภายในเซสชัน — ซึ่งเป็นการมองต่างจากดัชนีที่วัดจากราคาปิดเทียบกับราคาปิด — มีการเปลี่ยนแปลง 0.68% โดยมีขนาดการเคลื่อนที่เชิงสัมบูรณ์อยู่ที่ลำดับที่ 7 จากทั้งหมด 21 เซสชันที่ผ่านมา ดัชนีมีความเคลื่อนไหวที่สงบ แต่การซื้อขายในตลาดกลับมีความผันผวนสูง

ขอบเขตตลาด: ความได้เปรียบเชิงบวกที่จำกัด

คำสั่งดึงข้อมูลจำนวนหุ้นบวกเทียบกับหุ้นลบ สำหรับหุ้นที่มีมูลค่าซื้อขายอย่างน้อย $1M ณ วันที่ 30 มิถุนายน
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH per_ticker AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-06-30 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-06-30 00:00:00')) AS day_close,
        sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-06-30 00:00:00') AS day_dollar_volume
    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')
       OR (window_start >= '2026-06-30 13:30:00' AND window_start < '2026-06-30 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,
    countIf(ticker IN ('XLB', 'XLE', 'XLF', 'XLI', 'XLK', 'XLP', 'XLRE', 'XLU', 'XLV', 'XLY')) AS sector_funds_counted,
    countIf(ticker IN ('XLB', 'XLE', 'XLF', 'XLI', 'XLK', 'XLP', 'XLRE', 'XLU', 'XLV', 'XLY')
        AND day_close > prior_close) AS sector_funds_up
FROM per_ticker
WHERE prior_close > 0 AND day_close > 0

หุ้นที่ราคาเพิ่มขึ้น 3,349 ตัว, หุ้นที่ราคาลดลง 3,033 ตัว, และหุ้นที่ราคาคงที่ 88 ตัว: มีหุ้นเพียง 51.8% ของรายการซื้อขายที่มีสภาพคล่องที่ราคาปรับตัวขึ้น ซึ่งถือเป็นโอกาสที่มีความเสี่ยงกึ่งหนึ่งภายใต้ตัวเลขดัชนีเติบโต 1.63% ตัวกรองสภาพคล่องได้ตัดหุ้น 5,055 จาก 11,525 ตัวที่มีการซื้อขายสองเซสชัน (มูลค่าการซื้อขายต่ำกว่า 1 ล้านดอลลาร์) ซึ่งรวมอยู่ในข้อมูลนี้และไม่ได้มีการปิดบังข้อมูลใดๆ

แยกตามกลุ่มอุตสาหกรรม: ทิศทางการไหลของเงินทุนที่แท้จริง

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

คำสั่งดึงข้อมูลกองทุนกลุ่มอุตสาหกรรม S&P 10 กองทุน ณ วันที่ 30 มิถุนายน: การเปลี่ยนแปลงเทียบกับราคาปิดวันจันทร์ และส่วนต่างจากกลุ่มผู้นำ
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-06-30 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-06-30 00:00:00')) AS day_close,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-06-30 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('XLB', 'XLE', 'XLF', 'XLI', 'XLK', 'XLP', 'XLRE', 'XLU', 'XLV', 'XLY')
      AND ((window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00')
        OR (window_start >= '2026-06-30 13:30:00' AND window_start < '2026-06-30 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,
    if(day_close > prior_close, 1, 0) AS is_up,
    round(max((day_close / prior_close - 1) * 100) OVER () - (day_close / prior_close - 1) * 100, 2) AS pts_behind_leader,
    day_dollar_bn
FROM per_name
ORDER BY pct_chg DESC, ticker ASC

กลุ่ม Technology (XLK) ปรับตัวขึ้น 2.69% และเป็นกลุ่มเดียวที่โดดเด่น โดยมีกลุ่ม industrials 1.34%, materials 0.36% และ discretionary 0.15% เป็นกลุ่มอื่นที่ปรับตัวขึ้นเช่นกัน ส่วนกลุ่มที่เหลือปรับตัวลดลง ตั้งแต่ financials (-0.17%) ไปจนถึง utilities (-1.48%), staples (-1.53%) และกลุ่มสุดท้ายคือ real estate ที่อยู่ที่ -2% ส่วนต่างระหว่างกลุ่มที่ดีที่สุดและแย่ที่สุดคือ 4.69 percentage points โดยมีกองทุนที่ปรับตัวขึ้นคิดเป็น 4 จากทั้งหมด 10 กองทุน ดัชนีปรับตัวขึ้นไม่ถึงหนึ่งเปอร์เซ็นต์ และมีส่วนต่างเพียงสี่จุด: มีเพียงกลุ่มอุตสาหกรรมเดียวที่ขับเคลื่อนตลาดในวันนี้

หุ้นที่มีการเคลื่อนไหวมากที่สุดในวัน ทั้งตลาด

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

คำสั่งดึงข้อมูลหุ้นที่บวกสูงสุด 5 อันดับ และลบสูงสุด 5 อันดับ สำหรับหุ้นที่มีมูลค่าซื้อขายมากกว่า $10M ณ วันที่ 30 มิถุนายน (ไม่รวมหุ้นที่ใช้สัญลักษณ์ซ้ำกันหนึ่งรายการ)
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH per_ticker AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-06-30 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-06-30 00:00:00')) AS day_close,
        sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-06-30 00:00:00') AS day_dollar_volume
    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')
       OR (window_start >= '2026-06-30 13:30:00' AND window_start < '2026-06-30 20:00:00')
    GROUP BY ticker
    HAVING prior_close > 1 AND day_close > 0 AND day_dollar_volume >= 10000000 AND ticker NOT IN ('SPCX')
)
SELECT
    board,
    ticker,
    prior_close,
    day_close,
    pct_chg,
    round(abs(pct_chg), 2) AS abs_pct_chg,
    dollar_volume_m,
    if(ticker IN (SELECT ticker FROM global_markets.stocks_splits
                  WHERE execution_date >= '2026-06-29' AND execution_date <= '2026-06-30'), 1, 0) AS split_record_on_file
FROM (
    SELECT 'top gainers' AS board, 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, round(day_dollar_volume / 1e6, 0) AS dollar_volume_m
    FROM per_ticker
    ORDER BY (day_close / prior_close) DESC, ticker ASC
    LIMIT 5
    UNION ALL
    SELECT 'top decliners' AS board, 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, round(day_dollar_volume / 1e6, 0) AS dollar_volume_m
    FROM per_ticker
    ORDER BY (day_close / prior_close) ASC, ticker ASC
    LIMIT 5
)
ORDER BY if(board = 'top gainers', 0, 1) ASC, pct_chg DESC, ticker ASC

ทิศทางการเคลื่อนไหวของทั้งสองตลาดไม่สอดคล้องกับดัชนี JEM นำตลาดด้วยการเพิ่มขึ้น +256.76% จากมูลค่าการซื้อขาย 141 ล้านดอลลาร์ ขณะที่ SOC ลดลง 55.89% จากมูลค่าการซื้อขาย 306 ล้านดอลลาร์ ABVX เพิ่มขึ้น 38.56% จากมูลค่าการซื้อขาย 942 ล้านดอลลาร์ ซึ่งเป็นมูลค่าการซื้อขายที่สูงที่สุดในทั้งสองตลาด ส่วน NVCT ลดลง 35.62% และ UNCY ลดลง 39.09% คอลัมน์ที่แยกข้อมูลการแตกหุ้นช่วยให้ข้อมูลมีความถูกต้อง เนื่องจาก การแตกหุ้นแบบย้อนกลับ ในอัตราส่วน 1 ต่อ 10 จะแสดงผลเป็น "กำไร" +900% หากใช้ข้อมูลที่ยังไม่ได้ปรับปรุง และหุ้นทุกตัวในรายการนี้มี 0 คือ ข้อมูลการซื้อขายจริง

มีสามรายการที่เป็นหุ้นตัวเดิมแต่ซื้อขายสองครั้ง ได้แก่ CRCA (-35.16%) และ CRCG (-35.19%) ที่ราคาลดลง ในขณะที่ CRCD ราคาเพิ่มขึ้น 35.47% ซึ่งแต่ละตัวมีการเคลื่อนไหวใกล้เคียงกับสองเท่าของ -17.53% ของหุ้นกลุ่ม crypto-adjacent ด้านล่าง ซึ่งได้แก่ หุ้นประเภท leveraged single-stock wrappers

ไฮไลท์ประจำวัน: กลุ่มเซมิคอนดักเตอร์พลิกกลับทิศทางในช่วงท้ายไตรมาส

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

คำสั่งดึงข้อมูลกลุ่มเซมิคอนดักเตอร์และหน่วยความจำ: การเปลี่ยนแปลงเทียบกับราคาปิดวันจันทร์, ช่วงราคา และมูลค่าซื้อขาย ($)
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-06-30 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-06-30 00:00:00')) AS day_close,
        maxIf(toFloat64(high), window_start >= '2026-06-30 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-06-30 00:00:00') AS day_low,
        argMinIf(window_start, toFloat64(low), window_start >= '2026-06-30 00:00:00') AS low_bar,
        argMaxIf(window_start, toFloat64(high), window_start >= '2026-06-30 00:00:00') AS high_bar,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-06-30 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('AMD', 'INTC', 'MU', 'SNDK', 'TSM', 'WDC')
      AND ((window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00')
        OR (window_start >= '2026-06-30 13:30:00' AND window_start < '2026-06-30 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,
    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,
    day_dollar_bn
FROM per_name
ORDER BY ticker

SanDisk พุ่งขึ้น 10.79%, AMD 7.7%, Intel 5.93%, TSMC 4.86% — ในขณะที่ MU ซึ่งเป็นหุ้นที่มีมูลค่าการซื้อขายสูงสุดในตลาดที่ $37.41 billion ปิดบวกเพียง 0.52% และ Western Digital (-2.01%) ไม่มีการเคลื่อนไหวที่สำคัญ นี่คือรายละเอียดเบื้องหลังผลประกอบการของกลุ่มเทคโนโลยีใน 2.69% (ข้อมูลรายนาทีของ MU ประจำเดือนมิถุนายน)

ทิศทางที่สวนทางกันเกิดขึ้นในกลุ่มสถาบันการเงินที่เกี่ยวข้องกับคริปโต ซึ่งเคลื่อนไหวตรงข้ามกับตลาดหุ้นโดยรวม:

คำสั่งดึงข้อมูลกลุ่มการเงินที่เกี่ยวข้องกับคริปโต: การเปลี่ยนแปลงเทียบกับราคาปิดวันจันทร์, ช่วงราคา และมูลค่าซื้อขาย ($)
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-06-30 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-06-30 00:00:00')) AS day_close,
        maxIf(toFloat64(high), window_start >= '2026-06-30 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-06-30 00:00:00') AS day_low,
        argMinIf(window_start, toFloat64(low), window_start >= '2026-06-30 00:00:00') AS low_bar,
        argMaxIf(window_start, toFloat64(high), window_start >= '2026-06-30 00:00:00') AS high_bar,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-06-30 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('COIN', 'CRCL', 'HOOD', 'MSTR')
      AND ((window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00')
        OR (window_start >= '2026-06-30 13:30:00' AND window_start < '2026-06-30 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,
    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,
    day_dollar_bn
FROM per_name
ORDER BY ticker

CRCL ปิดที่ -17.53% โดยทำจุดต่ำสุดที่ $62.52 ในช่วงเวลา 15:59 ET — ซึ่งเป็นนาทีสุดท้ายของเซสชัน — พร้อมกับการเคลื่อนไหวของ MSTR -6.2%, COIN -3.61% และ HOOD -1.53% พบความเคลื่อนไหวที่ไปในทิศทางเดียวกัน แต่ไม่ได้ระบุสาเหตุที่แน่ชัด

สรุปประเด็นข่าวสาร

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

คำสั่งดึงข้อมูลสรุปข่าว ณ วันที่ 30 มิถุนายน: จำนวนบทความและหัวข้อข่าวล่าสุดของแต่ละหุ้นในรายงานนี้
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT
    names.n AS ticker,
    countIf(has(tickers, names.n)) AS articles_today,
    if(countIf(has(tickers, names.n)) = 0, 'none',
       formatDateTime(toTimeZone(argMaxIf(published_utc, (published_utc, id), has(tickers, names.n)), 'America/New_York'), '%H:%i')) AS latest_et,
    if(countIf(has(tickers, names.n)) = 0, 'no article in our feed this session',
       JSONExtractString(argMaxIf(publisher, (published_utc, id), has(tickers, names.n)), 'name')) AS publisher_name,
    if(countIf(has(tickers, names.n)) = 0, 'no article in our feed this session',
       argMaxIf(title, (published_utc, id), has(tickers, names.n))) AS latest_headline
FROM global_markets.stocks_news
CROSS JOIN (SELECT arrayJoin(['NVDA', 'MU', 'SNDK', 'CRCL', 'SOC', 'ABVX', 'JEM']) AS n) AS names
WHERE published_utc >= '2026-06-30 04:00:00' AND published_utc < '2026-07-01 04:00:00'
GROUP BY names.n
ORDER BY articles_today DESC, ticker ASC

ชื่อที่มีการนำเสนอมากที่สุดคือ NVDA โดยมีบทความจำนวน 21 บทความ ซึ่งไม่ได้เป็นหนึ่งในหุ้นที่มีการเคลื่อนไหวของราคาในวันนั้นเลย โดยบทความสุดท้ายของช่วงการซื้อขาย (16:28 ET, Investing.com) มีหัวข้อว่า "These Stocks Could Benefit as the Robotaxi Race Heats Up" ส่วน MU มีการนำเสนอจำนวน 7 บทความ และบทความเดียวของ SanDisk (The Motley Fool) เป็นพาดหัวข่าวเพียงหนึ่งเดียวในวันนั้นที่ระบุถึงการเคลื่อนไหวของราคาจริง คือ "Why Sandisk Stock Is Skyrocketing Today"

ข้อค้นพบที่สำคัญคือความแตกต่างระหว่างข้อมูล: หุ้นที่มีมูลค่าลดลงมากที่สุด หุ้นที่มีมูลค่าเพิ่มขึ้นมากที่สุด และหุ้นที่เกี่ยวข้องกับ crypto ที่ราคาลดลงรุนแรงที่สุด มีจำนวนบทความคือ 0, 0 และ 0 บทความตามลำดับ ซึ่งไม่มีบทความเลยจากจำนวนข่าวทั้งหมด 211 บทความ ดังนั้นปริมาณการนำเสนอข่าวจึงไม่ใช่ตัวบ่งชี้พฤติกรรมราคา

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

คำสั่งดึงข้อมูลผู้นำด้านปริมาณการซื้อขาย: 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-30 13:30:00' AND window_start < '2026-06-30 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(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-30 13:30:00' AND window_start < '2026-06-30 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 มีปริมาณการซื้อขายสูงกว่าทุกหลักทรัพย์รวมถึงกองทุนดัชนี โดยอยู่ที่ $37.41 billion เทียบกับ SPY ที่ $31.84 billion ซึ่งถือเป็นเซสชันที่สองติดต่อกันที่ MU มีปริมาณการซื้อขายสูงกว่ากองทุนดัชนีหลัก (สรุปข้อมูลของวันจันทร์ ระบุถึงครั้งแรก) อย่างไรก็ตาม ข้อมูลในกระดานหุ้นแสดงผลที่ต่างออกไป ทั้ง SOXS ซึ่งเป็น ETF inverse semiconductor แบบ 3x-leveraged (515.5 million shares) และหุ้นที่มีราคาต่ำกว่าหนึ่งดอลลาร์อีกสองตัวซึ่งมีมูลค่าน้อยมากเมื่อเทียบกับ MU ทำให้ ปริมาณการซื้อขาย มีการตีความได้สองทาง

มีหุ้นหนึ่งตัวที่ถูกแยกออกจากกระดานทั้งสองโดยเจตนา เนื่องจากเป็นการจดทะเบียนในเดือนมิถุนายน โดยชื่อย่อหุ้นเดิมเป็นของบริษัทอื่นที่ไม่เกี่ยวข้องกัน ส่งผลให้ข้อมูลจากผู้ให้บริการระบุชื่อนิติบุคคลสองแห่งด้วยตัวอักษรสามตัวเดียวกัน (ดูรายละเอียดที่นี่)

คำสั่งดึงข้อมูลจำนวนหุ้นที่ซื้อขายต่อช่วงเวลา 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-06-30 13:30:00' AND window_start < '2026-06-30 20:00:00'
GROUP BY et_time
ORDER BY et_time

มีปริมาณการซื้อขาย 2.05 billion shares ในช่วงครึ่งชั่วโมงแรกของการเปิดตลาด, จุดต่ำสุดที่ 0.78 billion ณ เวลา 13:30 และช่วงที่มีปริมาณการซื้อขายสูงสุดของวันคือ 2.69 billion ในช่วงปิดตลาดไตรมาส ซึ่งเป็นช่วงที่ การประมูลปิดตลาด และกระแสการปรับพอร์ต (rebalancing flows) ปรากฏขึ้น (บทวิเคราะห์เจาะลึกวันที่ 29 มิถุนายน ให้รายละเอียดไว้)

The options tape

คำสั่งดึงข้อมูลข้อมูลออปชันรวมทั้งวัน: ปริมาณการซื้อขาย, การหมดอายุในวันเดียวกัน, SPY put/call skew ตาม moneyness และสัปดาห์ที่เลื่อนเนื่องจากวันหยุด
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-30 00:00:00' AND sip_timestamp < '2026-07-01 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-30 13:30:00' AND window_start < '2026-06-30 20:00:00'
    ) AS spy_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) = '260630') / 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,
    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 = 'SPY' AND option_type = 'P'))
        / toFloat64(sumIf(size, underlying_symbol = 'SPY' AND option_type = 'C')), 2) AS spy_put_call_ratio,
    round(toFloat64(sumIf(size, underlying_symbol = 'SPY' AND option_type = 'C'
        AND substring(ticker, length(ticker) - 14, 6) = '260630' AND toFloat64(strike_price) > spy_close)) / 1e6, 2) AS spy_0dte_otm_calls_m,
    round(toFloat64(sumIf(size, underlying_symbol = 'SPY' AND option_type = 'C'
        AND substring(ticker, length(ticker) - 14, 6) = '260630' AND toFloat64(strike_price) <= spy_close)) / 1e6, 2) AS spy_0dte_itm_calls_m,
    round(toFloat64(sumIf(size, underlying_symbol = 'SPY' AND option_type = 'P'
        AND substring(ticker, length(ticker) - 14, 6) = '260630' AND toFloat64(strike_price) < spy_close)) / 1e6, 2) AS spy_0dte_otm_puts_m,
    round(toFloat64(sumIf(size, underlying_symbol = 'SPY' AND option_type = 'P'
        AND substring(ticker, length(ticker) - 14, 6) = '260630' AND toFloat64(strike_price) >= spy_close)) / 1e6, 2) AS spy_0dte_itm_puts_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,
    round(top_contract.7, 3) AS top_contract_avg_price,
    round(top_contract.2 - spy_close, 2) AS top_strike_minus_spy_close
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-06-30 00:00:00' AND sip_timestamp < '2026-07-01 00:00:00'

Options traded 61.95 million contracts across 10.06 million prints; calls took 57.3% of tape-wide volume, and 28% of it expired that Tuesday. SPY leaned the other way: 12.04 million contracts at a put/call ratio of 1.09 — more puts than calls, on a day the fund rose.

Sorting SPY's same-day expiries against its $746.32 close makes the skew concrete: 3.33 million out-of-the-money puts (strikes below the close) and 2.28 million out-of-the-money calls, against 1.77 million in-the-money calls and 0.63 million in-the-money puts — downside strikes that expired worthless were the busiest bucket of SPY's 0DTE day. Nothing with a Friday, July 3 expiry code printed at all (0 prints — the market is closed that Friday); the Thursday weekly carried 10.52 million.

คำสั่งดึงข้อมูลออปชันที่มีการซื้อขายสูงสุด 6 อันดับ ณ วันที่ 30 มิถุนายน ตามจำนวนสัญญา
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT
    concat(underlying, ' $', toString(strike), ' ', if(typ = 'C', 'call', 'put')) AS contract,
    toString(expiry) AS expires,
    formatDateTimeInJodaSyntax(expiry, 'MMMM d, yyyy') AS expires_label,
    if(expiry = toDate('2026-06-30'), 1, 0) AS is_same_day,
    contracts,
    round(avg_px, 3) AS avg_premium,
    round(100 * contracts / max(contracts) OVER (), 1) AS pct_of_busiest
FROM (
    SELECT any(underlying_symbol) AS underlying,
           any(toFloat64(strike_price)) AS strike,
           any(option_type) AS typ,
           any(toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6)))) AS expiry,
           sum(size) AS contracts,
           avg(toFloat64(price)) AS avg_px,
           any(ticker) AS occ
    FROM global_markets.options_trades
    WHERE sip_timestamp >= '2026-06-30 00:00:00' AND sip_timestamp < '2026-07-01 00:00:00'
    GROUP BY ticker
    ORDER BY contracts DESC, occ ASC
    LIMIT 6
)
ORDER BY contracts DESC, contract ASC

The busiest contract anywhere was the same-day SPY $747 call — 821,361 contracts at an average premium of $0.641, finishing $0.68 above SPY's last regular bar, and worthless. The board behind it is the lesson: five of the six busiest contracts on the tape were same-day SPY strikes a dollar apart around the close (SPY $748 call next), each trading for cents. The exception, at 65.1% of the leader's volume, was KWEB $29 call expiring December 18, 2026, not a same-day contract: one six-month position among five afternoon lottery tickets.

อัตราผลตอบแทน: พันธบัตรระยะยาวปรับตัวขึ้นในช่วงปิดครึ่งปี

คำสั่งดึงข้อมูลเส้นอัตราผลตอบแทนพันธบัตร (Treasury curve) ราคาปิด 30 มิถุนายน เทียบกับ 29 มิถุนายน (แสดงเฉพาะอายุพันธบัตรที่มีข้อมูล)
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT
    t.1 AS curve_point,
    round(t.2, 2) AS jun30_yield_pct,
    round((t.2 - t.3) * 100) AS one_day_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-06-30') AS d,
         (SELECT * FROM global_markets.treasury_yields WHERE date = '2026-06-29') AS p
)

อัตราผลตอบแทนพันธบัตรระยะยาวปรับตัวสูงขึ้นในวันสุดท้ายของครึ่งปี: พันธบัตรอายุ 10 ปี เพิ่มขึ้น 6 bp เป็น 4.44%, พันธบัตรอายุ 2 ปี เพิ่มขึ้น 4 bp เป็น 4.14% และ ส่วนต่าง 2s10s กว้างขึ้น 2 bp เป็น 0.3 จุด อัตราผลตอบแทนระยะยาวปรับตัวขึ้นในเซสชันที่กลุ่มอสังหาริมทรัพย์ (-2%) ซึ่งเป็นกลุ่มที่อ่อนแอที่สุด และกลุ่มสาธารณูปโภค (-1.48%) ซึ่งอ่อนแอเป็นอันดับสาม ต่างเป็นกลุ่มที่อ่อนไหวต่ออัตราดอกเบี้ยตามกลไกปกติ การที่ทั้งสองกลุ่มอ่อนแอพร้อมกันเป็นปรากฏการณ์ที่ควรสังเกต แต่ข้อมูลนี้ไม่สามารถพิสูจน์ความเป็นเหตุเป็นผลได้ (สรุปภาพรวม H1 แสดงให้เห็นถึงลักษณะเส้นอัตราผลตอบแทนของครึ่งปีนี้)

ปฏิทินเบื้องหลังเหตุการณ์ในวันนี้

คำสั่งดึงข้อมูลปฏิทินบริษัทและกระแสข้อมูล ณ วันที่ 30 มิถุนายน (แสดงช่องว่างระหว่างดัชนีการยื่นเอกสาร)
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH
    (
        SELECT (count(), uniqExact(publisher))
        FROM global_markets.stocks_news
        WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-06-30'
    ) AS news,
    (
        SELECT (argMax(t, n), 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-30'
            )
            WHERE t != 'SPCX'
            GROUP BY t
        )
    ) AS top_news
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-06-30') AS ex_dividend_records,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date = '2026-06-30') AS splits_executed,
    (SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-06-30') AS ipos_listed,
    (SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-06-30') AS sec_filings,
    (SELECT uniqExactIf(accession_number, form_type = '4') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-06-30') AS insider_form4_filings,
    (SELECT uniqExactIf(accession_number, form_type = '8-K') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-06-30') AS filings_8k,
    (SELECT arrayStringConcat(groupArray(concat(ticker, ' — ', issuer_name)), '; ') FROM (
        SELECT ticker, issuer_name FROM global_markets.stocks_ipos WHERE listing_date = '2026-06-30' ORDER BY ticker
    )) AS ipo_names,
    news.1 AS news_articles,
    news.2 AS news_publishers,
    top_news.1 AS most_covered_ticker,
    top_news.2 AS most_covered_articles,
    (SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = toDate('2026-06-29')) AS filings_prior_session

วันสุดท้ายของไตรมาสมีการขึ้นเครื่องหมาย ex-dividend สำหรับหุ้นที่มีการจ่ายปันผลจำนวน 704 ตัว ซึ่งเป็นช่วงที่มีการจ่ายปันผลจำนวนมากเนื่องจากเป็นวันสิ้นไตรมาส โดยบริษัทส่วนใหญ่ในสหรัฐฯ จะจ่ายปันผลเป็นรายไตรมาส พร้อมด้วยการแตกหุ้นจำนวน 7 และการจดทะเบียนหุ้นใหม่จำนวน 2 (AACU — Ares Acquisition Corp III; OSPRU — Osprey Acquisition Corp. III) ข้อมูลคุณภาพสำคัญอยู่ที่คอลัมน์การยื่นเอกสาร โดยดัชนี SEC มีการยื่นเอกสารจำนวน 31 สำหรับวันที่ 30 มิถุนายน ซึ่งประกอบด้วย 0 Insider Form 4s และ 0 8-Ks เมื่อเทียบกับ 4439 ของวันก่อนหน้า รูปแบบข้อมูลช่วงสิ้นเดือนนี้ได้รับการวิเคราะห์ไว้ใน บันทึกช่องว่างช่วงสิ้นเดือน โดยจำนวนข้อมูลใดๆ ที่รวมวันดังกล่าวจะยังไม่สมบูรณ์จนกว่าจะมีการบันทึกข้อมูลย้อนหลังให้ครบถ้วน

การยืนยันข้อมูลในเซสชัน

คำสั่งดึงข้อมูลตรวจสอบช่วงเวลาการซื้อขาย: ช่วงเวลาของ SPY ในรูปแบบ minute-bar
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-06-30 13:30:00' AND window_start < '2026-06-30 20:00:00') AS regular_session_bars,
    uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-06-30 13:30:00' AND window_start < '2026-06-30 20:00:00') AS day_sessions
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-06-30 00:00:00' AND window_start < '2026-07-01 00:00:00'

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

สรุปภาพรวมของเซสชัน

การที่ SPY ปิดตลาดที่ 0.73% โดยมีหุ้นที่ปรับตัวขึ้น 51.8% และกองทุนกลุ่ม 10 จำนวน 4 ปิดบวก โดยมีส่วนต่างระหว่างหุ้นที่บวกมากที่สุดและลบมากที่สุดอยู่ที่ 4.69 จุด ไม่ถือเป็นการปรับตัวขึ้นแบบครอบคลุมทั้งตลาด แต่เป็นการปรับตัวขึ้นของกลุ่มอุตสาหกรรมเดียวที่ทำให้ดัชนีดูดีขึ้น ซึ่งเกิดขึ้นในช่วงครึ่งชั่วโมงที่มีปริมาณการซื้อขายหนาแน่นที่สุดของการประมูลช่วงสิ้นไตรมาส การเปลี่ยนแปลงของดัชนีคือค่าเฉลี่ย และในครั้งนี้ถูกขับเคลื่อนโดยกลุ่ม technology ในขณะที่กลุ่มอุตสาหกรรมส่วนใหญ่ปรับตัวลดลง: ควรตรวจสอบการกระจายตัวของราคา (dispersion) ก่อนที่จะเชื่อทิศทางของดัชนี

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

ตลาดหุ้นมีผลการดำเนินงานอย่างไรในวันที่ 30 มิถุนายน 2026?

ตลาดปิดในแดนบวก โดย SPY เพิ่มขึ้น 0.73% และ QQQ เพิ่มขึ้น 1.63% เมื่อเทียบกับราคาปิดของวันที่ 29 มิถุนายน ความกว้างของตลาดแคบลง โดยมีหุ้นที่มีสภาพคล่องเพิ่มขึ้น 51.8% และมีกองทุนกลุ่มอุตสาหกรรมของ S&P เพิ่มขึ้น 4 ของ 10

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

กลุ่ม Technology: XLK เพิ่มขึ้น 2.69% ตามด้วยกลุ่ม Industrials ที่เพิ่มขึ้น 1.34% และกลุ่ม Real Estate ที่เพิ่มขึ้นเป็นลำดับสุดท้ายที่ -2% โดยมีส่วนต่างระหว่างกลุ่มที่ดีที่สุดและแย่ที่สุดอยู่ที่ 4.69 จุด

หุ้นที่มีการเคลื่อนไหวมากที่สุดในวันที่ 30 มิถุนายน 2026 คือหุ้นใด?

ในบรรดาหุ้นที่มีปริมาณการซื้อขายตั้งแต่ 10 ล้านดอลลาร์ขึ้นไป JEM มีการปรับตัวขึ้นมากที่สุด (+256.76%) และ SOC มีการปรับตัวลดลงมากที่สุด (55.89%) ทั้งสองบริษัทไม่มีประวัติการแตกหุ้น ซึ่งหมายความว่าเป็นการเคลื่อนไหวของราคาจริง ไม่ใช่ผลจากการดำเนินการของบริษัท

ตลาดหุ้นใน Q2 2026 มีผลการดำเนินงานอย่างไร?

นับตั้งแต่เปิดตลาดวันที่ 1 เมษายน จนถึงปิดตลาดวันที่ 30 มิถุนายน ตลอด 62 วันทำการ: QQQ +26.53%, IWM 20.21%, SPY 14.13%, DIA 12.08% ซึ่งเป็นไตรมาสที่ขับเคลื่อนโดยหุ้นกลุ่มเติบโต และปิดท้ายด้วยวันที่หุ้นกลุ่มเติบโตเป็นผู้นำ

ทำไมจึงมีปริมาณการซื้อขายจำนวนมากในช่วงครึ่งชั่วโมงสุดท้าย?

ช่วงครึ่งชั่วโมงสุดท้ายมีปริมาณการซื้อขายอยู่ที่ 2.69 พันล้านหุ้น เทียบกับ 2.05 พันล้านหุ้นในช่วงเปิดตลาด การประมูลปิดตลาด (closing auction) กำหนดราคาปิดอย่างเป็นทางการของหุ้นแต่ละตัวในการจับคู่ครั้งเดียว และกองทุนดัชนีจะทำการซื้อขายในช่วงนั้นเพื่อให้สอดคล้องกับราคาปิด นอกจากนี้ การปรับสมดุลพอร์ตช่วงสิ้นไตรมาสยังทำให้เกิดปริมาณการซื้อขายที่หนาแน่นในช่วงดังกล่าวด้วย

หมายเหตุข้อมูลและวิธีการ

  • ตะกร้าหลักทรัพย์. กระดานกลุ่มอุตสาหกรรมประกอบด้วยกองทุน SPDR sector funds สิบกองทุนตามที่ระบุในแผงควบคุม ซึ่งเป็นตะกร้าเดิมในทุกเซสชัน เพื่อให้ค่า dispersion สามารถเปรียบเทียบกันระหว่างวันได้ ส่วนกระดานหุ้นที่มีการเคลื่อนไหวสูง (mover boards) กำหนดให้มีมูลค่าการซื้อขาย (turnover) 10 ล้านดอลลาร์ และราคาปิดก่อนหน้าต้องสูงกว่า 1 ดอลลาร์ โดยไม่รวมรายการสัญลักษณ์ที่ใช้ซ้ำตามที่ระบุไว้ด้านบน และมีคอลัมน์บันทึกการแตกหุ้น (split-record)
  • ข้อควรระวัง. มูลค่าการซื้อขาย (Dollar volume) เป็นค่าประมาณการต่อนาที (ราคาปิด × ปริมาณการซื้อขายต่อแท่ง) ดัชนีจากการรายงาน ณ วันที่ 30 มิถุนายน มีข้อมูลน้อยมาก (หมายเหตุเกี่ยวกับช่องว่างช่วงสิ้นเดือน) จำนวนข่าวมาจากแหล่งข้อมูลของผู้ให้บริการเพียงแห่งเดียว การที่ไม่มีบทความปรากฏที่นี่ ไม่ได้เป็นหลักฐานยืนยันว่าไม่มีการเผยแพร่ข่าวที่ใดเลย
  • วิธีการ. หนึ่งเซสชัน (1 ตรวจสอบจากแท่งเทียนที่สังเกตได้); เวลาบันทึกในรูปแบบ UTC และแปลงเป็นเวลา New York ในการดึงข้อมูล; "close" คือราคาปิดของแท่งนาทีปกติแท่งสุดท้าย ไม่ใช่ราคาจากการประมูล (auction print); วันหมดอายุของ Option ถูกประมวลผลใหม่จาก OCC ticker (เนื่องจากคอลัมน์ในตารางมีความผิดพลาด); ค่า moneyness วัดจากราคาปิดแท่งนาทีปกติล่าสุดของ SPY; แผงควบคุมจะทำงานเพียงครั้งเดียวขณะจัดทำข้อมูล ผ่านช่องทางอ่านอย่างเดียว (read-only path) ข้อมูลในคลังข้อมูล ณ วันที่ 13 กรกฎาคม 2026

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