Strasmore Research
Ringkasan pasaran Matt ConnorOleh Matt Connor · Dikemas kini 2026-07-25

ringkasan pasaran 30 jun 2026 nombor hari ini

Sesi terakhir suku tahun: indeks teknologi naik, pasaran kebanyakannya merah, kompleks memori cemerlang, dan pilihan saham hari sama ditutup.

Selasa, 30 Jun 2026 — sesi terakhir suku tahun — merupakan hari kenaikan yang diterajui teknologi dalam pasaran yang kebanyakannya merah: QQQ naik 1.63% dan SPY 0.73%, namun hanya 4 daripada 10 dana sektor S&P ditutup lebih tinggi (3,349 nama cair naik, 3,033 turun). Sesi sebelumnya: ringkasan 29 Jun. Setiap nombor di bawah dibaca daripada pertanyaan tersimpan — kembangkan mana-mana panel untuk butiran.

Papan skor

Setiap perubahan membandingkan bar minit terakhir sesi biasa 30 Jun dengan hari Isnin 29 Jun.

PertanyaanSPY / QQQ / DIA / IWM — 30 Jun berbanding penutup 29 Jun, waktu biasa
SQL tepat di sebalik setiap nombor
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 dibuka pada $741.29 dan ditutup pada $746.32, hampir dengan paras tertinggi $748.02. 1.63% QQQ berbanding 0.12% DIA menggambarkan bentuk hari ini: saham pertumbuhan melonjak, saham kukuh hampir tidak bergerak, IWM 0.49%.

Suku tahun ini ditutup

30 Jun menutup sesi terakhir daripada 62 sesi dalam suku kedua, dan kecenderungan hari itu adalah gambaran kecil suku tahun tersebut.

PertanyaanS2 2026 dari hujung ke hujung: setiap ETF indeks dari bukaan 1 April hingga penutup 30 Jun, waktu biasa
SQL tepat di sebalik setiap nombor
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

Dari pembukaan 1 April hingga penutupan 30 Jun: QQQ +26.53%, IWM 20.21%, SPY 14.13%, DIA 12.08%. QQQ mendahului suku tahun dan juga 30 Jun itu sendiri, walaupun kedudukan tengah papan bertukar: SPY mengatasi IWM pada hari itu, IWM mendahului SPY sepanjang suku tahun. QQQ ditutup lebih tinggi pada 38 daripada 62 sesi (ringkasan Q2 membincangkannya panel demi panel).

Adakah hari itu luar biasa?

PertanyaanPergerakan bukaan-ke-penutup SPY yang diranking berbanding sesi bulan sebelumnya (ranking 1 = pergerakan mutlak terbesar)
SQL tepat di sebalik setiap nombor
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
)

Pergerakan dari buka hingga tutup dalam sesi — satu lensa yang berbeza daripada papan skor tutup-ke-tutup — SPY bergerak 0.68%, menduduki ranking 7 daripada 21 sesi sebelumnya mengikut saiz mutlak. Indeks itu tenang; jalur dagangan di bawahnya tidak.

Keluasan: kelebihan positif yang sempit

PertanyaanPenaik berbanding penurun dalam kalangan simbol dengan dagangan sekurang-kurangnya $1J pada 30 Jun
SQL tepat di sebalik setiap nombor
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 saham naik, 3,033 saham turun, 88 tidak berubah: 51.8% daripada pita cecair meningkat — sekadar lambungan duit syiling di bawah cetakan indeks pertumbuhan 1.63%. Penapis kecairan menggugurkan 5,055 daripada 11,525 penanda dagangan dwi-sesi (di bawah $1 juta didagangkan), dikira di sini, tidak pernah disembunyikan.

Sektor demi sektor: ke mana sebenarnya aliran wang

Mengira setiap nama sebagai satu undi menyembunyikan tempat wang berada. Sepuluh dana di bawah masing-masing memegang satu bahagian S&P 500, dan jurang antara terbaik dan terburuk mengukur betapa tidak sekata sesuatu sesi.

PertanyaanSepuluh dana sektor S&P pada 30 Jun: perubahan berbanding penutup Isnin, dan jarak setiap satu di belakang peneraju
SQL tepat di sebalik setiap nombor
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

Teknologi (XLK) naik 2.69% dan berdiri sendirian: perindustrian 1.34%, bahan 0.36% dan diskresi 0.15% merupakan satu-satunya sektor lain yang menghijau, dan papan itu merah dari kewangan (-0.17%) hingga ke utiliti (-1.48%), barangan keperluan (-1.53%) dan hartanah di tempat terakhir pada -2%. Terbaik tolak terburuk: 4.69 mata peratusan, 4 daripada 10 dana menghijau. Indeks naik kurang daripada satu peratus, jurang empat mata di bawahnya: satu sektor menanggung hari itu.

Pergerakan terbesar hari ini, merentas pasaran

Breadth mengira berapa banyak nama yang naik; ini menunjukkan yang paling banyak bergerak — lima teratas dan lima terbawah mengikut peratusan perubahan dalam kalangan nama yang didagangkan $10 juta atau lebih.

Pertanyaan5 penaik teratas dan 5 penurun teratas dalam kalangan nama dengan dagangan $10J+ pada 30 Jun (satu penyenaraian simbol guna semula dikecualikan)
SQL tepat di sebalik setiap nombor
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

Tiada satu pun papan yang menyerupai indeks. JEM mendahului pada +256.76% dengan dagangan $141 juta; SOC rugi 55.89% dengan dagangan $306 juta. ABVX naik 38.56% dengan dagangan $942 juta, pusing ganti tertinggi di mana-mana papan; NVCT jatuh 35.62% dan UNCY 39.09%. Lajur rekod pecahan memastikan papan itu jujur — pecahan saham terbalik 1-ke-10 muncul sebagai "kenaikan" +900% pada pita yang tidak dilaraskan — dan setiap nama di sini membawa 0: cetakan sebenar.

Tiga baris adalah satu dagangan dua kali: CRCA (-35.16%) dan CRCG (-35.19%) jatuh manakala CRCD naik 35.47% — setiap satu hampir dua kali ganda pergerakan -17.53% nama berkaitan kripto di bawah: saham tunggal berleveraj.

Sorotan hari ini: semikonduktor menjelang pusingan suku tahun

Enam nama, satu tema, hasil yang sangat berbeza — hanya pergerakan bersama dan magnitud; data tidak menyatakan sebabnya.

PertanyaanNama semikonduktor dan storan: perubahan berbanding penutup Isnin, julat, dan volum dolar
SQL tepat di sebalik setiap nombor
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 melonjak 10.79%, AMD 7.7%, Intel 5.93%, TSMC 4.86% — manakala MU, tiket terbesar pasaran dengan perolehan $37.41 bilion, ditutup hanya 0.52% lebih tinggi dan Western Digital (-2.01%) tidak turut serta. Ini adalah kompleks di sebalik cetakan sektor teknologi sebanyak 2.69% (Jun MU, detik demi detik).

Arus berlawanan melanda kewangan berkaitan kripto, bertentangan dengan pasaran hijau:

PertanyaanKewangan berkaitan kripto: perubahan berbanding penutup Isnin, julat, dan volum dolar
SQL tepat di sebalik setiap nombor
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 mencetak -17.53%, paras rendah $62.52 tiba pada 15:59 ET — minit terakhir sesi — bersama MSTR -6.2%, COIN -3.61% dan HOOD -1.53%. Pergerakan bersama diperhatikan; punca tidak dinyatakan.

Apa yang dibawa oleh suapan berita

Rekapitulasi yang enggan menyatakan punca berhutang kepada pembaca apa yang sebenarnya diterbitkan pada hari itu.

PertanyaanSuapan berita pada 30 Jun: kiraan artikel dan tajuk berita terakhir hari itu bagi setiap nama dalam ringkasan ini
SQL tepat di sebalik setiap nombor
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

Nama yang paling banyak diliputi ialah NVDA dengan 21 artikel — langsung bukan antara penggerak hari itu — artikel terakhir sesi (16:28 ET, Investing.com) bertajuk "These Stocks Could Benefit as the Robotaxi Race Heats Up". MU menarik 7; satu-satunya artikel SanDisk (The Motley Fool) merupakan satu-satunya tajuk utama sepanjang hari yang menyebut pergerakan sebenar: "Why Sandisk Stock Is Skyrocketing Today".

Jurang inilah penemuannya: penurunan terbesar hari itu, kenaikan tertinggi dan nama berkaitan kripto yang jatuh paling teruk masing-masing menarik 0, 0 dan 0 artikel — sifar setiap satu, dalam suapan sebanyak 211 keping. Liputan bukan proksi untuk pergerakan harga.

Tempat wang didagangkan

PertanyaanPeneraju volum dua cara: 6 teratas mengikut dolar didagangkan, 4 teratas mengikut saham didagangkan (satu penyenaraian simbol guna semula dikecualikan sementara menunggu pengesahan entiti)
SQL tepat di sebalik setiap nombor
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

Mengikut dolar, MU mengatasi segala-galanya, termasuk dana indeks: $37.41 bilion berbanding $31.84 bilion SPY — sesi kedua berturut-turut ia mengatasi dagangan dana indeks utama (ringkasan hari Isnin mencatatkan yang pertama). Papan saham pula menceritakan hal lain: SOXS, ETF semikonduktor songsang dengan leveraj 3x (515.5 juta saham), dan dua nama bernilai kurang satu dolar yang hanya setitik dalam dagangan MU — volume dibaca dua cara.

Satu nama sengaja ditinggalkan dari kedua-dua papan: penyenaraian Jun yang tickernya sebelum ini milik syarikat lain yang tidak berkaitan, jadi suapan vendor menandakan dua entiti dengan tiga huruf yang sama (resit di sini).

PertanyaanSaham didagangkan setiap kelompok 30 minit, waktu biasa (bilion)
SQL tepat di sebalik setiap nombor
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 bilion saham dalam setengah jam pembukaan, palung 0.78 bilion pada 13:30, dan baldi terbesar hari itu — 2.69 bilion — menjelang penutup akhir suku tahun, di mana lelongan penutup dan aliran penyelarasan semulanya dicetak (analisis mendalam 29 Jun mengupas di bawah palang).

Pita opsyen

PertanyaanSatu baris untuk keseluruhan hari opsyen: volum, tamat tempoh hari sama, kecenderungan put/call SPY mengikut moneyness, minggu yang dianjak cuti
SQL tepat di sebalik setiap nombor
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'

Opsyen didagangkan 61.95 juta kontrak merentas 10.06 juta cetakan; panggilan merangkumi 57.3% daripada jumlah volum pita, dan 28% daripadanya tamat tempoh pada hari Selasa itu. SPY condong ke arah lain: 12.04 juta kontrak dengan nisbah jual/panggil 1.09 — lebih banyak jual daripada panggil, pada hari dana itu meningkat.

Menyusun tempoh matang hari sama SPY berbanding harga tutupnya $746.32 menjadikan condong itu nyata: 3.33 juta jual di luar wang (strike di bawah harga tutup) dan 2.28 juta panggil di luar wang, berbanding 1.77 juta panggil dalam wang dan 0.63 juta jual dalam wang — strike menurun yang tamat tempoh tanpa nilai merupakan kelompok paling sibuk dalam hari 0DTE SPY. Tiada apa-apa dengan kod tamat tempoh Jumaat, 3 Julai yang dicetak langsung (0 cetakan — pasaran tutup pada hari Jumaat itu); mingguan Khamis membawa 10.52 juta.

PertanyaanEnam kontrak opsyen paling sibuk pada 30 Jun, mengikut kontrak didagangkan
SQL tepat di sebalik setiap nombor
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

Kontrak paling sibuk di mana-mana ialah panggil SPY hari sama $747821,361 kontrak dengan premium purata $0.641, berakhir $0.68 di atas bar biasa terakhir SPY, dan tanpa nilai. Papan di belakangnya ialah pengajarannya: lima daripada enam kontrak paling sibuk pada pita itu ialah strike SPY hari sama yang berjarak satu dolar di sekitar harga tutup (SPY $748 call seterusnya), setiap satu didagangkan untuk sen. Pengecualian, pada 65.1% daripada volum peneraju, ialah KWEB $29 call yang tamat tempoh December 18, 2026, bukan kontrak hari sama: satu kedudukan enam bulan di antara lima tiket loteri petang.

Kadar: hujung panjang meningkat menjelang penutup separuh tahun

PertanyaanKeluk Treasury, penutup 30 Jun berbanding 29 Jun (hanya kematangan yang diisi)
SQL tepat di sebalik setiap nombor
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
)

Hujung panjang meningkat pada hari terakhir separuh tahun: 10 tahun naik 6 bp kepada 4.44%, 2 tahun 4 bp kepada 4.14%, dan sebaran 2s10s mencanak 2 bp kepada 0.3 mata. Hasil panjang meningkat semasa sesi yang sektor paling lemahnya, hartanah (-2%), dan sektor ketiga paling lemah, utiliti (-1.48%), kedua-duanya secara klasik sensitif terhadap kadar: satu kejadian bersama yang patut diberi perhatian, bukan mekanisme yang boleh dibuktikan oleh data ini (ringkasan H1 membawa keluk separuh tahun).

Kalendar di sebalik hari tersebut

PertanyaanKalendar korporat dan aliran maklumat 30 Jun, dalam satu baris (jurang indeks pemfailan dipamerkan)
SQL tepat di sebalik setiap nombor
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

704 rekod dividen menjadi ex-dividen pada hari terakhir suku tahun — gelombang akhir suku tahun, kebanyakan syarikat AS membayar dividen suku tahun — bersama 7 pecahan saham dan 2 penyenaraian baharu (AACU — Ares Acquisition Corp III; OSPRU — Osprey Acquisition Corp. III). Lajur pemfailan menjadi tajuk utama kualiti data: indeks SEC mengandungi 31 pemfailan untuk 30 Jun — 0 Borang 4 orang dalam, 0 8-K — berbanding 4439 sesi sebelumnya. Corak akhir bulan dalam suapan data, yang didiagnosis dalam nota jurang akhir bulan; sebarang kiraan yang merangkumi hari ini adalah rendah sehingga data diisi semula.

Sesi, disahkan

PertanyaanSemakan sesi: rentang bar minit SPY yang diperhatikan
SQL tepat di sebalik setiap nombor
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'

Bar SPY berjalan dari 04:00 hingga 19:59 waktu New York dengan tepat 390 bar tingkap biasa — sesi lengkap, disahkan daripada pita (set data kalendar bursa hanya membawa penutupan akan datang).

Apa yang disimpulkan oleh sesi ini

Cetakan SPY pada 0.73% dengan 51.8% nama meningkat, 4 daripada 10 dana sektor hijau dan 4.69 mata antara terbaik dan terburuk bukanlah kenaikan yang meluas — ia adalah kenaikan satu sektor yang memakai pakaian indeks, dengan separuh jam paling berat dalam lelongan akhir suku tahun. Perubahan indeks adalah purata, dan kali ini ia dibawa oleh teknologi sementara kebanyakan sektor jatuh: periksa serakan sebelum mempercayai anak panah.

Soalan Lazim

Bagaimanakah prestasi pasaran saham pada 30 Jun 2026?

Ia ditutup lebih tinggi: SPY naik 0.73% dan QQQ naik 1.63% berbanding penutup 29 Jun. Keluasan lebih sempit — 51.8% daripada nama cair meningkat, 4 daripada 10 dana sektor S&P hijau.

Sektor manakah yang memimpin pasaran pada 30 Jun 2026?

Teknologi: XLK naik 2.69%, berbanding 1.34% untuk industri seterusnya dan -2% untuk hartanah terakhir — 4.69 mata antara terbaik dan terburuk.

Apakah pergerakan saham terbesar pada 30 Jun 2026?

Antara nama yang didagangkan $10 juta atau lebih, JEM naik paling banyak (+256.76%) dan SOC rugi paling banyak (55.89%). Kedua-duanya tidak membawa rekod pecahan: kedua-duanya adalah pergerakan harga sebenar, bukan artifak tindakan korporat.

Bagaimanakah prestasi pasaran saham pada Q2 2026?

Dari pembukaan 1 April hingga penutup 30 Jun, merentas 62 sesi: QQQ +26.53%, IWM 20.21%, SPY 14.13%, DIA 12.08% — suku tahun yang diterajui pertumbuhan, diakhiri oleh hari yang diterajui pertumbuhan.

Mengapa begitu banyak volum didagangkan dalam setengah jam terakhir?

Setengah jam terakhir membawa 2.69 bilion saham berbanding 2.05 bilion pada pembukaan. Lelongan penutup menetapkan harga penutup rasmi setiap saham dalam satu lintasan, dan dana indeks berdagang di sana untuk memadankannya; pengimbangan semula akhir suku tahun menumpukan aliran tersebut.

Nota data dan kaedah

  • Bakul. Papan sektor terdiri daripada sepuluh dana sektor SPDR yang dinamakan dalam panelnya — bakul yang sama setiap sesi, jadi angka serakan boleh dibandingkan merentas hari. Papan pergerakan memerlukan $10 juta pusing ganti dan harga tutup sebelumnya melebihi $1, tidak termasuk penyenaraian simbol yang digunakan semula di atas, dan mempunyai lajur rekod berpecah.
  • Kaveat. Jumlah dolar adalah proksi seminit (harga tutup × volum setiap bar). Indeks pemfailan 30 Jun hampir kosong (nota jurang akhir bulan mendiagnosisnya). Kiraan berita adalah satu suapan vendor: tiada artikel di sini bukan bukti tiada apa-apa diterbitkan di mana-mana.
  • Kaedah. Satu sesi (1, disahkan daripada bar yang diperhatikan); cap masa disimpan dalam UTC, ditukar kepada waktu New York dalam pertanyaan; "tutup" ialah bar minit biasa terakhir, bukan cetakan lelongan. Tamat tempoh opsyen dihuraikan semula daripada ticker OCC (lajur jadual sendiri rosak); moneyness diukur terhadap bar biasa terakhir SPY. Panel dijalankan sekali, pada masa pengarangan, melalui laluan baca sahaja yang dikawal. Gudang data setakat 13 Julai 2026.

Setiap panel adalah hasil pertanyaan tersimpan — carta, jadual dan SQL dalam satu objek. Tampalkan mana-mana daripadanya ke terminal Strasmore. Sesi seterusnya: 1 Julai.