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

ringkasan pasaran 2 julai 2026

Pusingan pra-cuti: keluasan hijau di bawah Nasdaq jatuh, teknologi terakhir dana sektor, ingatan terus merudum, dan pecahan saham yang palsukan kejatuhan.

Khamis, 2 Julai 2026, sesi terakhir sebelum cuti Hari Kemerdekaan, merupakan hari pusingan yang bertopengkan tajuk jualan. QQQ mencatat -1.71% manakala DIA naik 1.04%, dan keluasan pasaran adalah POSITIF: 3398 nama cair naik berbanding 2758, 54.6% pita hijau manakala indeks pertumbuhan jatuh. Lapan daripada sebelas dana sektor ditutup lebih tinggi; jualan tertumpu dalam sektor teknologi dan kompleks ingatan yang pecah sehari sebelumnya.

Papan skor

PertanyaanSPY / QQQ / DIA / IWM: 2 Julai berbanding penutup 1 Julai, 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-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00'
    GROUP BY ticker
),
sess AS (
    SELECT ticker,
           argMin(open, window_start) AS day_open,
           argMax(close, window_start) AS day_close,
           max(high) AS day_high,
           min(low) AS day_low,
           round(toFloat64(sum(volume)) / 1e6, 1) AS shares_traded_m
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
      AND window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 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
Run this yourself →

DIA pada 1.04% berbanding QQQ pada -1.71% menggambarkan hari ini dalam satu baris, dengan sektor perindustrian dan pertumbuhan hampir tiga mata perbezaan pulangan harian. SPY berada di tengah-tengah pada -0.12%; IWM ditutup pada -0.59%.

Adakah hari itu luar biasa?

Dua lensa dalam satu panel: pergerakan SPY dari buka ke tutup dan pergerakan QQQ dari tutup ke tutup, masing-masing dibandingkan dengan bulan sebelumnya mengikut saiz mutlak (kedudukan 1 = terbesar).

PertanyaanSPY dan QQQ disusun mengikut sesi bulan sebelumnya (kedudukan 1 = pergerakan mutlak terbesar)
SQL tepat di sebalik setiap nombor
WITH per_day AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           (argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100 AS oc_pct,
           argMax(toFloat64(close), window_start) AS rth_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'QQQ')
      AND window_start >= toDateTime('2026-06-02 00:00:00')
      AND window_start < toDateTime('2026-07-03 00:00:00')
      AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
    GROUP BY ticker, d
),
with_prev AS (
    SELECT ticker, d, oc_pct,
           lagInFrame(rth_close) OVER (PARTITION BY ticker ORDER BY d) AS prev_close,
           (rth_close / lagInFrame(rth_close) OVER (PARTITION BY ticker ORDER BY d) - 1) * 100 AS cc_pct
    FROM per_day
)
SELECT
    round(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-02')), 2) AS spy_open_to_close_pct,
    arrayCount(x -> x > abs(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-02'))),
               groupArrayIf(abs(oc_pct), ticker = 'SPY' AND d != toDate('2026-07-02'))) + 1 AS spy_abs_move_rank,
    countIf(ticker = 'SPY') AS spy_sessions_compared,
    round(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-02')), 2) AS qqq_close_over_close_pct,
    arrayCount(x -> x > abs(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-02'))),
               groupArrayIf(abs(cc_pct), ticker = 'QQQ' AND d != toDate('2026-07-02') AND isFinite(cc_pct) AND prev_close > 0)) + 1 AS qqq_abs_move_rank,
    countIf(ticker = 'QQQ' AND isFinite(cc_pct) AND prev_close > 0) AS qqq_sessions_compared,
    toString(minIf(d, ticker = 'SPY')) AS first_session
FROM with_prev
Run this yourself →

Di peringkat indeks, tidak. Pergerakan SPY dari buka ke tutup -0.35% berada di kedudukan 15 daripada 22 sesi sebelumnya, iaitu separuh bawah. QQQ lebih ketara tetapi masih tidak melampau: pergerakan tutup ke tutup -1.71% berada di kedudukan 9 daripada 21 sesi yang mempunyai harga tutup sebelumnya yang jelas, sejak 2026-06-02, iaitu hari buruk sederhana bagi indeks pertumbuhan. Saham individu adalah tempat di mana 2 Julai adalah luar biasa.

Keluasan: pita hijau, indeks pertumbuhan merah

PertanyaanPenaik berbanding penurun dalam kalangan ticker dengan dagangan sekurang-kurangnya $1J pada 2 Julai
SQL tepat di sebalik setiap nombor
WITH per_ticker AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-02 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-02 00:00:00')) AS day_close,
        sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-02 00:00:00') AS day_dollar_volume
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE (window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00')
       OR (window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 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,
    reverse(arrayStringConcat(extractAll(reverse(toString(countIf(day_close > prior_close AND day_dollar_volume >= 1000000))), '[0-9]{1,3}'), ',')) AS advancers_fmt,
    reverse(arrayStringConcat(extractAll(reverse(toString(countIf(day_close < prior_close AND day_dollar_volume >= 1000000))), '[0-9]{1,3}'), ',')) AS decliners_fmt,
    reverse(arrayStringConcat(extractAll(reverse(toString(count() - countIf(day_dollar_volume >= 1000000))), '[0-9]{1,3}'), ',')) AS dropped_by_liquidity_filter_fmt,
    reverse(arrayStringConcat(extractAll(reverse(toString(count())), '[0-9]{1,3}'), ',')) AS tickers_traded_both_sessions_fmt
FROM per_ticker
WHERE prior_close > 0 AND day_close > 0
Run this yourself →

3,398 saham naik, 2,758 saham turun, 63 tidak berubah, 54.6% daripada pita cair meningkat manakala QQQ jatuh. Indeks wajaran modal dan keluasan kiraan sama memberikan jawapan berbeza; hari seperti inilah sebabnya kedua-duanya mendapat panel. Penapis menggugurkan 5,317 daripada 11,536 ticker dwi-sesi di bawah $1 juta dagangan.

Sektor demi sektor: di mana pita hijau berada

Keluasan mengira jumlah nama; ia tidak menyatakan jenisnya. Sebelas dana sektor SPDR membahagikan sesi mengikut industri, dan jurang antara terbaik dan terburuk adalah serakan hari itu dalam satu nombor.

PertanyaanSebelas ETF sektor SPDR: penutup 2 Julai berbanding penutup 1 Julai, waktu biasa
SQL tepat di sebalik setiap nombor
WITH per_etf AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-02 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-02 00:00:00')) AS day_close,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-02 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('XLB', 'XLC', 'XLE', 'XLF', 'XLI', 'XLK', 'XLP', 'XLRE', 'XLU', 'XLV', 'XLY')
      AND ((window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00')
        OR (window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 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_close / prior_close - 1) * 100 - min((day_close / prior_close - 1) * 100) OVER (), 2) AS pts_above_worst_sector,
    day_dollar_bn
FROM per_etf
ORDER BY ticker
Run this yourself →

Penjagaan kesihatan (XLV) mendahului papan pada 2.63%, diikuti utiliti 2.23%, keperluan asas 2%, bahan 1.94%. Teknologi (XLK) berada di tempat terakhir pada -2.71%, satu-satunya sektor yang turun lebih daripada satu mata; pengguna pilihan (-0.81%) dan perkhidmatan komunikasi (-0.13%) adalah dana merah yang lain, lapan selebihnya hijau. Serakan terbaik-ke-terburuk: 5.34 mata peratusan. Pecahan DIA-naik/QQQ-turun merentasi pasaran, bukan hanya empat megacap, itulah sebabnya garis maju-mundur hijau di bawah Nasdaq yang jatuh bukanlah percanggahan.

Sorotan hari ini: kejatuhan memori, hari kedua

Kompleks yang jatuh pada hari Rabu jatuh lebih teruk pada hari Khamis, dari segi magnitud dan pergerakan bersama, bukan punca.

PertanyaanNama memori dan storan: perubahan berbanding penutup Rabu, masa julat, dan volum dolar
SQL tepat di sebalik setiap nombor
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-02 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-02 00:00:00')) AS day_close,
        maxIf(toFloat64(high), window_start >= '2026-07-02 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-07-02 00:00:00') AS day_low,
        argMinIf(window_start, toFloat64(low), window_start >= '2026-07-02 00:00:00') AS low_bar,
        argMaxIf(window_start, toFloat64(high), window_start >= '2026-07-02 00:00:00') AS high_bar,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-02 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('MU', 'SNDK', 'STX', 'WDC')
      AND ((window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00')
        OR (window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 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
Run this yourself →

SanDisk mencatat -14.32%, Seagate -10.38%, Western Digital -9.92%, MU -5.57%, pada $51.4 bilion pusing ganti MU, kira-kira satu setengah kali ganda SPY. MU dan SanDisk mencatat paras terendah lewat (15:26, 15:26 ET), Seagate dan Western Digital lebih awal (14:23, 13:59). Konteks: Rabu dan analisis mendalam MU.

Separuh lagi pusingan, dalam saham bermodal besar:

PertanyaanPutaran megacap: perubahan berbanding penutup Rabu, masa julat, dan volum dolar
SQL tepat di sebalik setiap nombor
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-02 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-02 00:00:00')) AS day_close,
        maxIf(toFloat64(high), window_start >= '2026-07-02 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-07-02 00:00:00') AS day_low,
        argMinIf(window_start, toFloat64(low), window_start >= '2026-07-02 00:00:00') AS low_bar,
        argMaxIf(window_start, toFloat64(high), window_start >= '2026-07-02 00:00:00') AS high_bar,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-02 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('AAPL', 'MSFT', 'NVDA', 'TSLA')
      AND ((window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00')
        OR (window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 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
Run this yourself →

AAPL naik 4.75% dalam garisan satu arah, paras rendah pada 09:30 ET, paras tinggi pada 15:57, tiga minit sebelum penutupan, manakala TSLA memaparkan imej cermin pada -7.65%. MSFT menambah 1.41%; NVDA ditutup -1.55%. Indeks sama, hari bertentangan.

Tempat wang didagangkan

PertanyaanPemimpin volum dua cara: 6 teratas mengikut dolar didagangkan, 4 teratas mengikut saham didagangkan (satu penyenaraian simbol guna semula dikecualikan 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-07-02 13:30:00' AND window_start < '2026-07-02 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-07-02 13:30:00' AND window_start < '2026-07-02 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
Run this yourself →

$51.4 billion MU mendahului pita untuk sesi keempat berturut-turut (Isnin, Selasa, Rabu) berbanding $32.7 billion SPY, dan $26.57 billion SanDisk meletakkan nama memori kedua dalam empat teratas. SOXS, ETF songsang 3x semikonduktor, mendahului papan saham pada 748.2 juta: saham murah menguasai kiraan saham, saham mahal menguasai kiraan dolar, dan volume relatif membandingkan sama ada dengan norma nama sendiri. Asas: waktu biasa 2 Julai, satu penyenaraian simbol guna semula dikecualikan (resit).

PertanyaanSaham didagangkan setiap 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-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00'
GROUP BY et_time
ORDER BY et_time
Run this yourself →

2.13 billion saham dalam setengah jam pembukaan, palung 0.81 billion pada 14:30, 2.3 billion menjelang penutupan malam cuti, baldi terakhir adalah yang terbesar hari itu, kerana lelongan penutup menarik pesanan tertunda ke dalam satu cetakan.

Pita opsyen: mingguan beralih mendarat

PertanyaanSatu baris untuk keseluruhan hari opsyen: volum, tamat tempoh hari sama, minggu peralihan cuti, dan Julai bulanan
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-07-02 00:00:00' AND sip_timestamp < '2026-07-03 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-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00'
    ) AS spy_regular_close
SELECT
    round(count() / 1e6, 2) AS option_prints_m,
    round(toFloat64(sum(size)) / 1e6, 2) AS contracts_m,
    round(100.0 * sumIf(size, option_type = 'C') / sum(size), 1) AS call_pct_of_volume,
    round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260702') / 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, substring(ticker, length(ticker) - 14, 6) = '260710')) / 1e6, 2) AS jul10_weekly_contracts_m,
    round(toFloat64(sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260717')) / 1e6, 2) AS jul17_monthly_contracts_m,
    round(toFloat64(sumIf(size, underlying_symbol = 'SPY')) / 1e6, 2) AS spy_contracts_m,
    round(toFloat64(sumIf(size, underlying_symbol = 'QQQ')) / 1e6, 2) AS qqq_contracts_m,
    top_contract.1 AS top_contract_underlying,
    top_contract.2 AS top_contract_strike,
    top_contract.3 AS top_contract_type,
    top_contract.4 AS top_contract_expiry,
    top_contract.5 AS top_contract_volume,
    reverse(arrayStringConcat(extractAll(reverse(toString(assumeNotNull(top_contract.5))), '[0-9]{1,3}'), ',')) AS top_contract_volume_fmt,
    round(top_contract.7, 3) AS top_contract_avg_price,
    round(top_contract.2 - spy_regular_close, 2) AS top_strike_minus_spy_close,
    round(spy_regular_close - top_contract.2, 2) AS spy_close_minus_strike
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'
Run this yourself →

Opsyen didagangkan 80.96 juta kontrak merentasi 13.15 juta cetakan, dan 47.4% daripada jumlah itu tamat tempoh pada hari Khamis yang sama. Tiada kontrak dengan kod tamat tempoh 3 Julai dicetak sepanjang hari (0 cetakan), maka hari Khamis membawa tamat tempoh harian dan mingguan beralih minggu itu serentak. Kontrak paling sibuk ialah SPY $740 put pada hari yang sama, 540,403 kontrak pada premium purata $0.499, dengan SPY ditutup 4.8 dolar di atas harga mogok: di luar wang, dan satu put di papan yang mana Selasa dan Rabu mempunyai call. Call masih mengambil 58.4% daripada jumlah dagangan; mingguan seterusnya menarik 9.64 juta kontrak, bulanan Julai 8.82 juta (mekanisme tamat tempoh).

Pita sebut harga: kos untuk berdagang

Harga menunjukkan apa yang berlaku; sebut harga menunjukkan kosnya. sebaran bida-permintaan adalah tol bagi setiap pusingan penuh, dalam mata asas harga pertengahan (satu mata asas ialah satu peratus daripada satu peratus). Kami mengukurnya setiap sesi, sama ada biasa atau tidak, yang menjadikan "sebaran melebar" sebagai dakwaan yang boleh diuji.

PertanyaanKiraan kemas kini NBBO saham: 2 Julai berbanding 1 Julai, dengan kemas kini ticker bernama (juta)
SQL tepat di sebalik setiap nombor
SELECT
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-02')) / 1e6, 2) AS jul2_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-01')) / 1e6, 2) AS jul1_updates_m,
    round((countIf(toDate(sip_timestamp) = toDate('2026-07-02')) / countIf(toDate(sip_timestamp) = toDate('2026-07-01')) - 1) * 100, 1) AS day_over_day_pct,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-02') AND ticker = 'SPY') / 1e6, 2) AS jul2_spy_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-02') AND ticker = 'QQQ') / 1e6, 2) AS jul2_qqq_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-02') AND ticker = 'MU') / 1e6, 2) AS jul2_mu_updates_m
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-07-01 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'
Run this yourself →

Bida dan tawaran terbaik kebangsaan, bahagian teratas buku konsolidasi, telah ditulis semula 597.22 juta kali pada 2 Julai berbanding 449.15 juta pada 1 Julai: lonjakan 33% menjelang penutupan. QQQ mengambil 7.56 juta, melebihi 5.42 juta SPY; MU 1.01 juta.

PertanyaanMedian sebaran disebut dalam mata asas, waktu biasa: ETF indeks, megacap, dan nama memori
SQL tepat di sebalik setiap nombor
SELECT
    ticker,
    round(med_bps, 2) AS median_spread_bps,
    round(med_dollars * 100, 1) AS median_spread_cents,
    round(med_bps / min(med_bps) OVER (), 1) AS times_the_spy_spread,
    round(quote_updates / 1e6, 2) AS rth_updates_m,
    invalid_quotes_dropped
FROM (
    SELECT
        ticker,
        quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000,
                             toFloat64(bid_price) > 0 AND toFloat64(ask_price) > toFloat64(bid_price)) AS med_bps,
        quantileExactIf(0.5)(toFloat64(ask_price) - toFloat64(bid_price),
                             toFloat64(bid_price) > 0 AND toFloat64(ask_price) > toFloat64(bid_price)) AS med_dollars,
        count() AS quote_updates,
        countIf(NOT (toFloat64(bid_price) > 0 AND toFloat64(ask_price) > toFloat64(bid_price))) AS invalid_quotes_dropped
    FROM global_markets.cache_stocks_quotes
    WHERE ticker IN ('SPY', 'QQQ', 'AAPL', 'TSLA', 'NVDA', 'MU', 'SNDK', 'WDC')
      AND sip_timestamp >= '2026-07-02 13:30:00' AND sip_timestamp < '2026-07-02 20:00:00'
    GROUP BY ticker
)
ORDER BY median_spread_bps ASC
Run this yourself →

SPY mencatatkan median 0.27 mata asas lebar: kira-kira 2 sen pada ETF $744.8. QQQ berada pada 0.83 mata asas, NVDA 1.03. Nama yang jatuh adalah yang mahal untuk didagangkan: MU 5.52 mata asas, SanDisk 10.4, Western Digital 10.79, 40 kali ganda sebaran SPY. Melintasi bakul nama memori menelan kos berganda berbanding melintasi indeks, sebelum sebarang kesan harga. Sebut harga tidak sah (sebelah, bersilang) dikira setiap nama, bukan disembunyikan.

PertanyaanAdakah kecairan luar biasa? Median sebaran waktu biasa SPY berbanding sesi bulan sebelumnya
SQL tepat di sebalik setiap nombor
WITH per_day AS (
    SELECT toDate(sip_timestamp) AS d,
           quantileExact(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000) AS med_bps
    FROM global_markets.cache_stocks_quotes
    WHERE ticker = 'SPY'
      AND sip_timestamp >= '2026-06-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'
      AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
      AND toFloat64(bid_price) > 0 AND toFloat64(ask_price) > toFloat64(bid_price)
    GROUP BY d
)
SELECT
    round(anyIf(med_bps, d = toDate('2026-07-02')), 3) AS jul2_median_spread_bps,
    round(quantileExact(0.5)(med_bps), 3) AS trailing_median_bps,
    round(anyIf(med_bps, d = toDate('2026-07-02')) - quantileExact(0.5)(med_bps), 3) AS jul2_minus_trailing_bps,
    arrayCount(x -> x > anyIf(med_bps, d = toDate('2026-07-02')), groupArrayIf(med_bps, d != toDate('2026-07-02'))) + 1 AS wider_rank,
    count() AS sessions_compared,
    round(max(med_bps), 3) AS widest_session_bps
FROM per_day
Run this yourself →

Hari biasa untuk kecairan, dan itulah penemuannya: median sebaran SPY sebanyak 0.27 mata asas terletak 0 mata asas daripada median bulan sebelumnya (0.27 mata asas), menduduki kedudukan 11 daripada 22 sesi mengikut kelebaran, jauh daripada yang paling lebar bulan ini pada 0.409 mata asas. Kekalahan tertumpu di bawah pita hijau tidak menekan sistem kecairan.

Kadar: cetakan 2 Julai, sudah tiba

PertanyaanResit: cetakan perbendaharaan 2 Julai telah difailkan
SQL tepat di sebalik setiap nombor
SELECT
    (SELECT count() FROM global_markets.treasury_yields WHERE date = '2026-07-02') AS jul2_rows,
    (SELECT count() FROM global_markets.treasury_yields WHERE date = '2026-07-01') AS jul1_rows
Run this yourself →

Suapan perbendaharaan berjalan sehari atau dua di belakang pita: pada penerbitan pertama, penutup 2 Julai tiada sebarang baris dalam fail, dan halaman ini menyatakannya sebaliknya daripada membuat tekaan. Cetakan tersebut kini telah tiba, 1 baris untuk 2 Julai, 1 untuk 1 Julai, jadi panel di bawah membawa keluk sesi itu sendiri.

PertanyaanCetakan keluk sesi: 2 Julai berbanding 1 Julai (hanya tempoh matang yang diisi)
SQL tepat di sebalik setiap nombor
SELECT
    t.1 AS curve_point,
    round(t.2, 2) AS jul2_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-07-02') AS d,
         (SELECT * FROM global_markets.treasury_yields WHERE date = '2026-07-01') AS p
)
Run this yourself →

Pada penutup, kadar 10 tahun berada pada 4.49%, sebaran 2s10s pada 0.35 mata.

Kalendar di sebalik hari ini

PertanyaanKalendar korporat dan aliran maklumat 2 Julai, dalam satu baris (termasuk lapan pecahan saham di sebalik satu pergerakan penyaring palsu)
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-07-02'
    ) 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-07-02'
            )
            WHERE t != 'SPCX'
            GROUP BY t
        )
    ) AS top_news,
    (
        SELECT (count(), countIf(split_to > split_from), countIf(split_to < split_from),
                arrayStringConcat(groupArray(concat(ticker, ' ', toString(split_to), '-for-', toString(split_from))), '; '))
        FROM global_markets.stocks_splits
        WHERE execution_date = '2026-07-02' AND ticker NOT IN ('SPCX')
    ) AS splits
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-02') AS ex_dividend_records,
    splits.1 AS splits_executed,
    splits.2 AS forward_splits,
    splits.3 AS reverse_splits,
    splits.4 AS split_records,
    (SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-02') AS ipos_listed,
    (SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-02') AS sec_filings,
    (SELECT uniqExactIf(accession_number, form_type = '4') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-02') AS insider_form4_filings,
    (SELECT uniqExactIf(accession_number, form_type = '8-K') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-02') AS filings_8k,
    (SELECT arrayStringConcat(groupArray(concat(ticker, ' — ', issuer_name)), '; ') FROM (
        SELECT ticker, issuer_name FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-02' 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 any(split_from) FROM global_markets.stocks_splits WHERE ticker = 'CRWD' AND execution_date = '2026-07-02') AS crwd_split_from,
    (SELECT any(split_to) FROM global_markets.stocks_splits WHERE ticker = 'CRWD' AND execution_date = '2026-07-02') AS crwd_split_to,
    (SELECT round(toFloat64(argMax(close, window_start)), 2) FROM global_markets.delayed_stocks_minute_aggs
     WHERE ticker = 'CRWD' AND window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00') AS crwd_prev_close,
    (SELECT round(toFloat64(argMax(close, window_start)), 2) FROM global_markets.delayed_stocks_minute_aggs
     WHERE ticker = 'CRWD' AND window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00') AS crwd_day_close,
    (SELECT round(sum(toFloat64(close) * toFloat64(volume)) / 1e6, 2) FROM global_markets.delayed_stocks_minute_aggs
     WHERE ticker = 'CRWD' AND window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00') AS crwd_dollar_m,
    (SELECT count() FROM (
        SELECT ticker FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date = '2026-07-02')
          AND window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00'
        GROUP BY ticker
    )) AS split_names_with_bars
Run this yourself →

322 rekod dividen telah menjadi ex-dividen, 2 penyenaraian baharu tiba (MIACU — Meridian3 Industrials Acquisition Corp.; VIIU — Viking Acquisition Corp. II), dan indeks SEC mencatat 5203 pemfailan sepanjang cuti, 2109 Borang 4, 258 8-K. Suapan berita membawa 201 artikel daripada 3 penerbit (NVDA paling banyak diliputi, 18 daripadanya).

Pecahan saham memerangkap sesiapa yang membaca harga penutupan mentah. CRWD menjalankan pecahan saham ke hadapan 4-untuk-1, jadi pita tidak terlaras menunjukkan $772.45 pada hari Rabu dan $193.67 pada hari Khamis, penurunan palsu yang sebenarnya empat saham baharu bagi setiap satu saham lama. Ia tidak bersendirian: 8 rekod pecahan dilaksanakan, 5 ke hadapan dan 3 songsang (lajur split_records menyenaraikannya), dan pecahan songsang memalsukan artifak yang bertentangan, harga mentah yang melonjak semalaman. Hanya 2 daripada nama tersebut didagangkan pada pita kami; perolehan $1473.51 juta CRWD adalah satu-satunya yang cukup besar untuk mencemarkan skrin, dan setiap skrin pergerakan di sini mengecualikannya.

Dalam jadual

Fakta kalendar, bukan ramalan, apa yang terkandung dalam jadual bagi sesi seterusnya.

PertanyaanSelepas cuti: sesi seterusnya, dividen ex dan pecahan sahamnya, penutupan berjadual seterusnya, dan ketinggalan faedah pendek
SQL tepat di sebalik setiap nombor
SELECT
    (SELECT count() FROM global_markets.delayed_stocks_minute_aggs
     WHERE ticker = 'SPY' AND window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00') AS jul6_spy_regular_bars,
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-06') AS exdiv_records_jul6,
    (SELECT arrayStringConcat(groupArray(ticker), ', ') FROM global_markets.stocks_dividends
     WHERE ex_dividend_date = '2026-07-06'
       AND ticker IN ('AAPL', 'MSFT', 'JPM', 'JNJ', 'XOM', 'KO', 'PG', 'WMT', 'CVX', 'HD')) AS household_exdivs_jul6,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date = '2026-07-06') AS splits_jul6,
    (SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-02') AS next_scheduled_closure,
    (SELECT any(name) FROM global_markets.stocks_market_holidays
     WHERE date = (SELECT min(date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-02')) AS next_closure_name,
    (SELECT any(status) FROM global_markets.stocks_market_holidays
     WHERE date = (SELECT min(date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-02')) AS next_closure_status,
    (SELECT toString(max(settlement_date)) FROM global_markets.stocks_short_interest
     WHERE settlement_date <= '2026-07-02') AS latest_si_settlement,
    (SELECT dateDiff('day', max(settlement_date), toDate('2026-07-02')) FROM global_markets.stocks_short_interest
     WHERE settlement_date <= '2026-07-02') AS si_settlement_age_days
Run this yourself →

Isnin 6 Julai dibuka semula dengan sesi penuh 390 bar, disahkan daripada barnya sendiri. Ia membawa 119 rekod ex-dividen, satu nama terkenal antara sepuluh yang kami selidiki (JPM), dan 15 pelaksanaan pecahan saham. Penutupan berjadual seterusnya: Labor Day, 2026-09-07 (closed). Faedah jualan pendek adalah berita lama, seperti biasa, penyelesaian terbaru dalam fail 2026-06-30, 2 hari lalu, penerbitan ketinggalan di belakang penyelesaian kira-kira dua minggu (kenapa).

Sesi, disahkan, dan hari Jumaat yang tidak berlaku

PertanyaanSemakan sesi: julat baris minit SPY yang diperhatikan, dan penutupan 3 Julai pada pita
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-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00') AS regular_session_bars,
    uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00') AS day_sessions,
    (SELECT count() FROM global_markets.delayed_stocks_minute_aggs
     WHERE ticker = 'SPY' AND window_start >= '2026-07-03 00:00:00' AND window_start < '2026-07-04 00:00:00') AS jul3_spy_bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-02 00:00:00' AND window_start < '2026-07-03 00:00:00'
Run this yourself →

2 Julai merupakan sesi penuh, bukan penutupan awal: bar SPY berjalan dari 04:00 hingga 19:59 waktu New York (termasuk bar pra-pasaran dan selepas waktu dagangan), dengan tepat 390 bar dalam tetingkap biasa. Hari Jumaat, 3 Julai mencetak 0 bar SPY, penutupan penuh sempena Hari Kemerdekaan, 4 Julai jatuh pada hari Sabtu. Minggu empat sesi: ringkasan minggu.

Soalan Lazim

Mengapa Indeks Dow naik manakala Nasdaq jatuh pada 2 Julai 2026?

Kedua-dua indeks memegang syarikat yang berbeza: DIA ditutup pada 1.04%, QQQ pada -1.71%. Papan sektor menunjukkan perpecahan yang sama, penjagaan kesihatan, utiliti dan barangan keperluan di kedudukan teratas, teknologi di kedudukan terakhir pada -2.71%, jurang 5.34 mata antara terbaik dan terburuk.

Adakah pasaran saham dibuka pada hari Jumaat minggu Hari Kemerdekaan?

Tidak. Hari Kemerdekaan jatuh pada hari Sabtu, dan bursa mematuhinya dengan penutupan penuh pada hari Jumaat selepas sesi ini: pita kami menunjukkan 0 bar minit SPY untuk hari tersebut.

Apakah kesan pecahan saham ke hadapan terhadap harga saham?

Ia mendarabkan jumlah saham dengan empat dan membahagikan harga dengan empat; nilai kedudukan tidak berubah. CRWD, 2 Julai: harga tutup tidak terlaras $772.45 pada hari Rabu, $193.67 pada hari Khamis, penurunan palsu pada mana-mana penyaring yang melangkau pecahan tersebut.

Seberapa lebar spread bida-tawaran pada 2 Julai 2026?

Spread sebut harga median SPY ialah 0.27 mata asas daripada harga pertengahan dalam waktu biasa, 11 daripada 22 sesi sebelumnya dari segi kelebaran, hari yang biasa. Saham individu lebih lebar: MU 5.52 mata asas, WDC 10.79.

Nota data

  • Jumlah dolar adalah proksi seminit, harga tutup × volum, dijumlahkan setiap bar.
  • Cetakan perbendaharaan 2 Julai tiba selepas penerbitan pertama, nota asal mendedahkan ketiadaannya dengan resit kiraan baris; semakan ini membawa cetakan tersebut, resit ditunjukkan.
  • Perubahan harga tutup mentah CRWD adalah artifak pecahan saham, dikecualikan daripada skrin pergerakan.
Nota data penuh
  • Papan sektor adalah sebelas dana SPDR Select Sector (XLB, XLC, XLE, XLF, XLI, XLK, XLP, XLRE, XLU, XLV, XLY), bakul tetap yang didedahkan, bukan medan sektor vendor.
  • Kiraan pita sebut harga dikumpulkan mengikut tarikh UTC cap masa SIP; sesi musim panas jatuh dalam satu hari UTC.
  • Satu penyenaraian Jun simbol yang digunakan semula dikecualikan daripada papan pendahulu (resit); kerja tanda forensik terdapat dalam penerokaan mendalam.

Metodologi

  • Tempohnya ialah satu sesi dagangan (1 sesi, disahkan daripada bar yang diperhatikan). Cap masa disimpan dalam UTC dan ditukar kepada waktu New York dalam pertanyaan; "tutup" bermaksud bar minit sesi biasa terakhir, dan perubahan hari membandingkan 2 Julai dengan 1 Julai. Penutupan 3 Julai disahkan daripada bar, tidak pernah diandaikan.
  • Spread disebut (ask tolak bid) dalam mata asas harga pertengahan, median merentas kemas kini NBBO waktu biasa, pada kuantil deterministik. Perpuluhan ditukar kepada apungan sebelum aritmetik nisbah; tamat tempoh opsyen dihuraikan semula daripada ticker OCC. Setiap panel dibaca sekali, pada masa penulisan, melalui laluan baca sahaja yang terkawal.

Carta, jadual, dan SQL adalah satu objek. Tampalkan mana-mana panel ke dalam terminal Strasmore dan jadikan ia milik anda. Sesi sebelumnya: 1 Julai. Minggu ini: minggu cuti empat sesi.