Strasmore Research
Rekap pasar Matt ConnorOleh Matt Connor · Diperbarui 2026-07-25

Rekap Pasar 30 Juni 2026

Sesi terakhir kuartal dalam angka: penguatan index yang dipimpin sektor teknologi di tengah pasar yang mayoritas melemah, memory complex unggul, dan data options tape saat penutupan.

Selasa, 30 Juni 2026 — sesi terakhir kuartal ini — merupakan hari penguatan yang dipimpin oleh sektor teknologi di tengah pasar yang mayoritas melemah: QQQ naik 1.63% dan SPY 0.73%, namun hanya 4 dari 10 dana sektor S&P yang ditutup lebih tinggi (3,349 nama likuid naik, 3,033 turun). Sesi sebelumnya: rekap 29 Juni. Setiap angka di bawah ini dibaca dari kueri tersimpan — perluas panel apa pun untuk melihat SQL.

Papan skor

Setiap perubahan membandingkan bar menit sesi reguler terakhir pada tanggal 30 Juni dengan tanggal 29 Juni.

QuerySPY / QQQ / DIA / IWM — 30 Juni vs penutupan 29 Juni, regular hours
SQL tepat di balik setiap angka
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, mendekati level tertingginya di $748.02. 1.63% pada QQQ dibandingkan dengan 0.12% pada DIA menjadi gambaran hari ini: saham growth menguat, blue chips hampir tidak bergerak, dan IWM 0.49%.

Kuartal ini berakhir hari ini

Tanggal 30 Juni menutup sesi terakhir 62 pada kuartal kedua, dan tren hari tersebut merupakan miniatur dari tren kuartal ini.

QueryQ2 2026 end to end: setiap index ETF dari pembukaan 1 April hingga penutupan 30 Juni, regular hours
SQL tepat di balik setiap angka
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

Pembukaan 1 April hingga penutupan 30 Juni: QQQ +26.53%, IWM 20.21%, SPY 14.13%, DIA 12.08%. QQQ memimpin performa kuartal ini dan juga pada 30 Juni, meskipun posisi di papan tengah bertukar: SPY sedikit mengungguli IWM pada hari tersebut, namun IWM memimpin SPY sepanjang kuartal. QQQ ditutup lebih tinggi pada 38 dari 62 sesi (rekap Q2 mengulasnya panel demi panel).

Apakah hari ini tidak biasa?

QueryPergerakan open-to-close SPY dibandingkan dengan sesi trailing month (rank 1 = pergerakan absolut terbesar)
SQL tepat di balik setiap angka
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 pembukaan hingga penutupan dalam sesi — sudut pandang yang berbeda dari skor penutupan terhadap penutupan — SPY bergerak 0.68%, menempati peringkat 7 dari 21 sesi sebelumnya berdasarkan ukuran absolut. Indeks tersebut tenang; namun pergerakan di bawahnya tidak.

Breadth: keunggulan positif yang sempit

QueryAdvancers vs decliners di antara ticker dengan volume perdagangan minimal $1M pada 30 Juni
SQL tepat di balik setiap angka
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% dari instrumen likuid mengalami kenaikan — hasil yang tidak pasti di bawah cetakan growth-index 1.63%. Filter likuiditas menghapus 5,055 dari 11,525 ticker sesi ganda (perdagangan di bawah $1 juta), yang dihitung di sini, tidak pernah disembunyikan.

Sektor demi sektor: ke mana aliran dana sebenarnya

Menghitung jumlah nama dengan satu suara masing-masing menyembunyikan posisi dana yang sebenarnya. Sepuluh dana di bawah ini masing-masing memegang satu bagian dari S&P 500, dan spread antara yang terbaik dan terburuk mengukur seberapa tidak meratanya sebuah sesi.

QuerySepuluh dana sektor S&P pada 30 Juni: perubahan vs penutupan Senin, dan selisih jarak dari leader
SQL tepat di balik setiap angka
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 sendiri: industrials 1.34%, materials 0.36% dan discretionary 0.15% adalah satu-satunya sektor lain yang hijau, dan sisanya berwarna merah mulai dari financials (-0.17%) hingga utilities (-1.48%), staples (-1.53%) dan real estate terakhir di -2%. Terbaik dikurangi terburuk: 4.69 percentage points, 4 dari 10 dana berwarna hijau. Indeks naik kurang dari satu persen, dengan spread empat poin di bawahnya: satu sektor mendominasi hari tersebut.

Pergerakan terbesar hari ini, di seluruh pasar

Breadth menghitung berapa banyak saham yang naik; bagian ini menunjukkan saham mana yang paling banyak bergerak — lima teratas dan terendah berdasarkan persentase perubahan di antara saham dengan nilai perdagangan $10 juta atau lebih.

QueryTop 5 gainers dan top 5 decliners di antara nama dengan perdagangan $10M+ pada 30 Juni (satu listing simbol ganda dikecualikan)
SQL tepat di balik setiap angka
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

Kedua papan tidak terlihat seperti indeks. JEM memimpin pada +256.76% dengan nilai perdagangan $141 juta; SOC turun 55.89% dengan nilai $306 juta. ABVX naik 38.56% dengan nilai $942 juta, yang merupakan turnover terberat di kedua papan; NVCT turun 35.62% dan UNCY 39.09%. Kolom catatan split menjaga kejujuran papan — reverse split satu-untuk-sepuluh tercatat sebagai "kenaikan" +900% pada tape yang tidak disesuaikan — dan setiap nama di sini membawa 0: harga riil.

Tiga baris adalah satu perdagangan dua kali: CRCA (-35.16%) dan CRCG (-35.19%) turun sementara CRCD naik 35.47% — masing-masing hampir dua kali lipat dari pergerakan -17.53% nama terkait kripto di bawahnya: wrapper saham tunggal dengan leverage.

Sorotan hari ini: semikonduktor memasuki pergantian kuartal

Enam nama, satu tema, hasil yang sangat berbeda — hanya pergerakan bersama dan besaran; data tidak menjelaskan alasannya.

QueryNama-nama semiconductor dan storage: perubahan vs penutupan Senin, range, dan dollar volume
SQL tepat di balik setiap angka
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% — sementara MU, instrumen terbesar dalam perdagangan dengan turnover $37.41 miliar, ditutup hanya lebih tinggi 0.52% dan Western Digital (-2.01%) tidak berpartisipasi. Inilah kompleksitas di balik cetakan sektor 2.69% teknologi (Juni MU, tick by tick).

Arus berlawanan terjadi pada finansial yang terkait kripto, berlawanan dengan tren pasar yang hijau:

QueryFinancials terkait Crypto: perubahan vs penutupan Senin, range, dan dollar volume
SQL tepat di balik setiap angka
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%, dengan titik terendah $62.52 terjadi pada 15:59 ET — menit terakhir sesi — bersamaan dengan MSTR -6.2%, COIN -3.61% dan HOOD -1.53%. Pergerakan bersama teramati; penyebab tidak dinyatakan.

Apa yang dimuat dalam feed berita

Rekapitulasi yang tidak mencoba menegaskan penyebab harus memberikan informasi kepada pembaca tentang apa yang sebenarnya diterbitkan pada hari itu.

QueryNews feed pada 30 Juni: jumlah artikel dan headline terakhir hari ini untuk setiap nama dalam rekap ini
SQL tepat di balik setiap angka
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 diliput adalah NVDA dengan 21 artikel — sama sekali bukan termasuk penggerak pasar hari itu — artikel terakhir pada sesi tersebut (16:28 ET, Investing.com) berjudul "These Stocks Could Benefit as the Robotaxi Race Heats Up". MU menarik 7; satu-satunya artikel SanDisk (The Motley Fool) adalah satu-satunya headline sepanjang hari yang menyebutkan pergerakan aktual: "Why Sandisk Stock Is Skyrocketing Today".

Kesenjangan tersebut adalah temuannya: penurunan terbesar hari itu, kenaikan terberatnya, dan nama terkait kripto yang jatuh paling dalam masing-masing menarik 0, 0 dan 0 artikel — masing-masing nol, di dalam feed yang berisi 211 artikel. Liputan bukan merupakan proksi untuk price action.

Di mana uang diperdagangkan

QueryVolume leaders dalam dua kategori: top 6 berdasarkan dollars traded, top 4 berdasarkan shares traded (satu listing simbol ganda dikecualikan menunggu verifikasi entitas)
SQL tepat di balik setiap angka
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

Berdasarkan nilai dolar, MU mendominasi segalanya, termasuk dana indeks: $37.41 miliar dibandingkan $31.84 miliar milik SPY — sesi kedua berturut-turut MU diperdagangkan lebih tinggi daripada dana indeks utama (rekap hari Senin memuat sesi pertama). Papan saham menunjukkan hal lain: SOXS, ETF semikonduktor terbalik dengan leverage tiga kali (515.5 juta saham), dan dua nama di bawah satu dolar yang nilainya tidak signifikan dibandingkan MU — volume dapat dibaca dengan dua cara.

Satu nama sengaja tidak dicantumkan di kedua papan: pencatatan bulan Juni yang ticker-nya sebelumnya milik perusahaan lain yang tidak terkait, sehingga feed vendor menandai dua entitas dengan tiga huruf yang sama (bukti di sini).

QueryShares traded per bucket 30 menit, regular hours (miliar)
SQL tepat di balik setiap angka
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 miliar saham pada setengah jam pertama, titik terendah 0.78 miliar pada 13:30, dan volume terbesar hari itu — 2.69 miliar — menjelang penutupan akhir kuartal, di mana lelang penutupan dan aliran rebalancing tercatat (analisis mendalam 29 Juni berada di bawah grafik).

Data opsi

QuerySatu baris untuk keseluruhan hari options: volume, same-day expiry, put/call skew SPY berdasarkan moneyness, minggu yang bergeser karena hari libur
SQL tepat di balik setiap angka
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'

Opsi yang diperdagangkan mencapai 61.95 juta kontrak dari 10.06 juta cetakan; call mencakup 57.3% dari total volume, dan 28% di antaranya kedaluwarsa pada hari Selasa tersebut. SPY menunjukkan tren berbeda: 12.04 juta kontrak dengan put/call ratio sebesar 1.09 — jumlah put lebih banyak daripada call, pada hari saat fund tersebut naik.

Pengurutan opsi SPY yang kedaluwarsa pada hari yang sama terhadap harga penutupan $746.32 memperjelas skew tersebut: 3.33 juta out-of-the-money puts (strike di bawah harga penutupan) dan 2.28 juta out-of-the-money calls, dibandingkan dengan 1.77 juta in-the-money calls dan 0.63 juta in-the-money puts — strike downside yang kedaluwarsa tanpa nilai menjadi kategori tersibuk pada hari 0DTE SPY. Tidak ada data untuk kode kedaluwarsa Jumat, 3 Juli (0 cetakan — pasar tutup pada hari Jumat tersebut); weekly Kamis mencatat 10.52 juta.

QueryEnam kontrak option tersibuk pada 30 Juni, berdasarkan kontrak yang diperdagangkan
SQL tepat di balik setiap angka
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 tersibuk secara keseluruhan adalah SPY $747 call yang kedaluwarsa pada hari yang sama — 821,361 kontrak dengan rata-rata premium $0.641, berakhir $0.68 di atas bar reguler terakhir SPY, dan tidak bernilai. Data pendukungnya memberikan pelajaran: lima dari enam kontrak tersibuk adalah strike SPY hari yang sama dengan selisih satu dolar di sekitar harga penutupan (SPY $748 call berikutnya), yang masing-masing diperdagangkan dengan harga beberapa sen. Pengecualiannya, dengan volume sebesar 65.1% dari pemimpin volume, adalah KWEB $29 call yang kedaluwarsa December 18, 2026, bukan kontrak hari yang sama: satu posisi enam bulan di antara lima tiket lotre sore hari.

Suku Bunga: tenor panjang naik menjelang penutupan semester

QueryTreasury curve, penutupan 30 Juni vs 29 Juni (hanya maturity yang terisi)
SQL tepat di balik setiap angka
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
)

Tenor panjang meningkat pada hari terakhir semester: 10-year naik 6 bp menjadi 4.44%, 2-year naik 4 bp menjadi 4.14%, dan spread 2s10s melebar 2 bp menjadi 0.3 poin. Yield tenor panjang naik dalam sesi di mana sektor terlemah, real estate (-2%), dan sektor terlemah ketiga, utilities (-1.48%), keduanya merupakan sektor yang sensitif terhadap suku bunga: sebuah kejadian yang patut diperhatikan, namun bukan mekanisme yang dapat dibuktikan oleh data ini (rekap H1 memuat kurva semester tersebut).

Kalender di balik hari tersebut

QueryKalender korporasi dan aliran informasi 30 Juni, dalam satu baris (gap filing-index ditampilkan)
SQL tepat di balik setiap angka
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 catatan dividen menjadi ex-dividend pada hari terakhir kuartal tersebut — gelombang akhir kuartal, karena sebagian besar perusahaan AS membayar dividen setiap kuartal — dengan 7 splits dan 2 pencatatan baru (AACU — Ares Acquisition Corp III; OSPRU — Osprey Acquisition Corp. III). Kolom pelaporan adalah sorotan kualitas data: indeks SEC mencatat 31 laporan untuk tanggal 30 Juni — 0 insider Form 4, 0 8-K — dibandingkan dengan 4439 pada sesi sebelumnya. Terdapat pola akhir bulan dalam feed, yang dijelaskan dalam catatan celah akhir bulan; setiap perhitungan yang mencakup hari ini akan terendah sampai data tersebut terisi kembali.

Sesi terverifikasi

QueryPengecekan sesi: rentang minute-bar SPY yang terobservasi
SQL tepat di balik setiap angka
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 jendela reguler — sesi lengkap, terverifikasi dari tape (dataset kalender bursa hanya memuat penutupan mendatang).

Kesimpulan sesi ini

Hasil cetak SPY 0.73% dengan 51.8% nama saham yang naik, 4 dari 10 dana sektor berwarna hijau, dan 4.69 poin antara yang terbaik dan terburuk bukanlah rally yang luas — ini adalah rally satu sektor yang menggunakan tampilan indeks, dengan periode setengah jam terberatnya dalam lelang akhir kuartal. Perubahan indeks adalah sebuah rata-rata, dan kali ini didorong oleh teknologi sementara sebagian besar sektor turun: periksa dispersi sebelum mempercayai tanda panah.

FAQ

Bagaimana performa pasar saham pada 30 Juni 2026?

Pasar ditutup lebih tinggi: SPY naik 0.73% dan QQQ 1.63% dibandingkan penutupan 29 Juni. Breadth lebih sempit — 51.8% dari saham likuid naik, 4 dari 10 dana sektor S&P berwarna hijau.

Sektor mana yang memimpin pasar pada 30 Juni 2026?

Teknologi: XLK naik 2.69%, dibandingkan 1.34% untuk sektor industri di posisi berikutnya dan -2% untuk real estate di posisi terakhir — selisih 4.69 poin antara yang terbaik dan terburuk.

Apa penggerak saham terbesar pada 30 Juni 2026?

Di antara saham dengan nilai perdagangan 10 juta dolar atau lebih, JEM naik paling tinggi (+256.76%) dan SOC turun paling dalam (55.89%). Keduanya tidak memiliki catatan split: keduanya adalah pergerakan harga riil, bukan artefak aksi korporasi.

Bagaimana performa pasar saham pada Q2 2026?

Dari pembukaan 1 April hingga penutupan 30 Juni, selama 62 sesi: QQQ +26.53%, IWM 20.21%, SPY 14.13%, DIA 12.08% — kuartal yang dipimpin oleh growth, diakhiri dengan hari yang dipimpin oleh growth.

Mengapa volume perdagangan sangat tinggi di setengah jam terakhir?

Setengah jam terakhir mencatat 2.69 miliar saham dibandingkan 2.05 miliar saat pembukaan. Closing auction menetapkan harga penutupan resmi setiap saham dalam satu crossing, dan index funds bertransaksi di sana untuk menyesuaikannya; rebalancing akhir kuartal memusatkan aliran tersebut.

Catatan data dan metode

  • Keranjang aset. Papan sektor terdiri dari sepuluh dana sektor SPDR yang tertera pada panelnya — keranjang yang sama setiap sesi, sehingga angka dispersi dapat dibandingkan antar hari. Papan penggerak pasar memerlukan turnover sebesar $10 juta dan harga penutupan sebelumnya di atas $1, tidak termasuk pencatatan simbol yang digunakan kembali di atas, serta menyertakan kolom catatan split.
  • Peringatan. Volume dolar adalah proksi per menit (harga penutupan × volume per bar). Indeks pengajuan 30 Juni hampir kosong (catatan celah akhir bulan menjelaskannya). Jumlah berita berasal dari satu feed vendor: tidak adanya artikel di sini bukan bukti bahwa tidak ada yang diterbitkan di tempat lain.
  • Metode. Satu sesi (1, diverifikasi dari bar yang teramati); stempel waktu disimpan dalam UTC, dikonversi ke waktu New York dalam kueri; "close" adalah bar menit reguler terakhir, bukan cetakan lelang. Kedaluwarsa opsi diurai ulang dari ticker OCC (kolom tabel itu sendiri rusak); moneyness diukur terhadap bar reguler terakhir SPY. Panel dijalankan sekali, pada saat penulisan, melalui jalur baca-saja yang terbatas. Gudang data per 13 Juli 2026.

Setiap panel adalah hasil kueri tersimpan — grafik, tabel, dan SQL dalam satu objek. Tempelkan salah satunya ke dalam terminal Strasmore. Sesi berikutnya: 1 Juli.