Strasmore Research
Rekap pasar Matt ConnorOleh Matt Connor · Diperbarui 2026-08-02

Rekap Pasar 29 Juli 2026 dan Angka Penting

Rekap pasar 29 Juli 2026 berdasarkan tape: indeks, breadth, sector spread, options flow, quote tape, rates, dan kalender dengan angka berbasis query.

Rekap pasar untuk Rabu, 29 Juli 2026, membaca keseluruhan sesi berdasarkan stored queries: perubahan close-over-close SPY mencapai -1.52%, porsi saham yang naik dalam liquid tape sebesar 27.2%, dan options tape mencatat 66.84 juta kontrak. Setiap jendela di bawah ini ditetapkan pada tanggal awal dan akhir yang eksplisit, sehingga menjalankan kembali SQL panel mana pun akan menghasilkan angka yang sama.

Papan skor

Setiap perubahan membandingkan bar menit terakhir sesi reguler pada 29 Juli dengan bar pada Selasa, 28 Juli, yaitu dua sesi perdagangan berturut-turut. Baris disusun menurut abjad, sehingga setiap ETF mempertahankan posisi tetap.

QuerySPY / QQQ / DIA / IWM: 29 Juli vs penutupan 28 Juli, jam reguler
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-07-28 13:30:00' AND window_start < '2026-07-28 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-29 13:30:00' AND window_start < '2026-07-29 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_open) / toFloat64(p.prior_close) - 1) * 100, 2) AS gap_pct,
    round((toFloat64(s.day_close) / toFloat64(s.day_open) - 1) * 100, 2) AS intraday_pct,
    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
FROM sess s LEFT JOIN prior p ON s.ticker = p.ticker
ORDER BY ticker
Run this yourself

DIA bergerak -2.19%, IWM -1.63%, QQQ -2.07%, dan SPY -1.52% hingga ditutup pada $729.51. Setiap baris membagi pergerakan tersebut menjadi dua bagian: SPY dibuka -0.11% dari penutupan Selasa dan bergerak -1.41% dari pembukaan hingga penutupan. Pergerakan overnight dan intraday tidak harus searah. Pembagian di antara keduanya merupakan ciri awal suatu sesi.

Apakah hari itu tidak biasa?

Angka dari satu sesi tidak banyak berarti tanpa distribusinya. Karena itu, hari tersebut ditempatkan dalam peringkat di antara sesi-sesi pada bulan berjalan sebelumnya menggunakan logika yang sama.

QueryPergerakan harian SPY dalam konteks trailing (open-to-close, 29 Juni hingga 29 Juli)
SQL tepat di balik setiap angka
SELECT
    round(anyIf(oc_pct, d = toDate('2026-07-29')), 2) AS spy_open_to_close_pct,
    arrayCount(x -> x > abs(anyIf(oc_pct, d = toDate('2026-07-29'))), groupArrayIf(abs(oc_pct), d != toDate('2026-07-29'))) + 1 AS spy_abs_move_rank,
    count() AS spy_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-29 13:30:00')
      AND window_start < toDateTime('2026-07-30 00:00:00')
      AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
    GROUP BY d
)
Run this yourself

Pergerakan SPY dari pembukaan hingga penutupan sebesar -1.41% menempati peringkat 1 dari 22 sesi sebelumnya berdasarkan ukuran absolut, dalam jendela yang mencakup periode hingga 2026-06-29. Peringkat tersebut menghitung jumlah sesi lain dalam jendela yang mengalami pergerakan lebih besar, lalu menambahkan satu. Dengan demikian, peringkat pertama berarti pergerakan terbesar dalam bulan sebelumnya.

Breadth

Level indeks adalah satu angka. Breadth menghitung berapa banyak saham yang bergerak searah dengannya.

QueryBreadth liquid-tape: penutupan 29 Juli vs penutupan 28 Juli, filter transaksi $1M
SQL tepat di balik setiap angka
SELECT
    countIf(c29 > c28 AND liquid) AS advancers,
    countIf(c29 < c28 AND liquid) AS decliners,
    countIf(c29 = c28 AND liquid) AS unchanged,
    countIf(liquid) AS liquid_tickers,
    countIf(NOT liquid) AS dropped_by_liquidity_filter,
    round(100.0 * countIf(c29 > c28 AND liquid) / countIf(liquid), 1) AS advancer_pct
FROM (
    SELECT ticker, c28, c29, dv29 >= 1000000 AS liquid
    FROM (
        SELECT ticker,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-28 20:00:00') AS c28,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS c29,
               sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-29 13:30:00') AS dv29
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-29 20:00:00'
        GROUP BY ticker
        HAVING c28 > 0 AND c29 > 0
    )
)
Run this yourself

Dari 6066 saham dengan nilai transaksi jam perdagangan reguler yang melampaui ambang satu juta dolar, 1652 ditutup di atas penutupan Selasa dan 4342 ditutup di bawahnya. Dengan demikian, proporsi saham yang menguat mencapai 27.2%. Filter ini mengecualikan 5363 saham dengan likuiditas lebih rendah, yang dihitung di sini alih-alih dihapus tanpa penjelasan.

Kelompok saham mega-cap

Delapan nama mega-cap yang sama muncul di setiap sesi, disusun menurut abjad agar masing-masing tetap berada di barisnya. Keranjang tetap adalah intinya: pembaca mengenali setiap baris, dan tidak ada pemilihan saham unggulan secara editorial setelah fakta.

QueryDelapan mega-cap: perubahan vs 28 Juli dan nilai transaksi jam reguler, 29 Juli
SQL tepat di balik setiap angka
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-29 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-29 00:00:00')) AS day_close,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-29 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('AAPL', 'AMZN', 'AVGO', 'GOOGL', 'META', 'MSFT', 'NVDA', 'TSLA')
      AND ((window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-28 20:00:00')
        OR (window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 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,
    day_dollar_bn
FROM per_name
ORDER BY ticker
Run this yourself

AAPL bergerak -0.63%, META -1.12%, MSFT -0.27%, dan NVDA -3.51% berdasarkan turnover jam perdagangan reguler sebesar 22.26 miliar dolar, sementara TSLA berada di -2.97%. Kolom dolar menunjukkan seberapa besar porsi tape yang dibawa sendiri oleh delapan nama ini; panel breadth di atas menunjukkan sejauh mana bagian pasar lainnya bergerak mengikuti mereka.

Pergerakan saham hari ini

Kedua papan mensyaratkan nilai transaksi jam perdagangan reguler sebesar lima juta dolar, mengecualikan setiap saham yang pemecahannya dieksekusi di antara dua waktu penutupan yang diukur, serta mengecualikan satu simbol yang digunakan kembali berdasarkan pengaman ambiguitas internal yang dijelaskan dalam catatan.

QueryGainer dan decliner terbesar: penutupan 29 Juli vs penutupan 28 Juli, transaksi $5M+, split dikecualikan
SQL tepat di balik setiap angka
SELECT ticker, board, day_pct, day_dollar_m
FROM (
    SELECT 'gainers' AS board, ticker, round((c29 / c28 - 1) * 100, 1) AS day_pct, round(dv / 1e6, 1) AS day_dollar_m
    FROM (
        SELECT ticker,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-28 20:00:00') AS c28,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS c29,
               sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-29 13:30:00') AS dv
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker NOT IN ('SPCX')
          AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date > '2026-07-28' AND execution_date <= '2026-07-29')
          AND window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-29 20:00:00'
        GROUP BY ticker
        HAVING c28 > 0 AND c29 > 0 AND dv >= 5000000
    )
    ORDER BY day_pct DESC
    LIMIT 8
    UNION ALL
    SELECT 'decliners' AS board, ticker, round((c29 / c28 - 1) * 100, 1) AS day_pct, round(dv / 1e6, 1) AS day_dollar_m
    FROM (
        SELECT ticker,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-28 20:00:00') AS c28,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS c29,
               sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-29 13:30:00') AS dv
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker NOT IN ('SPCX')
          AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date > '2026-07-28' AND execution_date <= '2026-07-29')
          AND window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-29 20:00:00'
        GROUP BY ticker
        HAVING c28 > 0 AND c29 > 0 AND dv >= 5000000
    )
    ORDER BY day_pct ASC
    LIMIT 8
)
ORDER BY board DESC, abs(day_pct) DESC
Run this yourself

Peraih kenaikan terbesar di papan tersebut, DFNS, bergerak sebesar 119.8% dengan nilai transaksi 544.9 juta dolar. Penurunan terdalam, YYAI, mencatat -68.1% dengan nilai transaksi 8.5 juta dolar. Halaman ini mencatat besaran dan bukti transaksinya; halaman ini tidak mengaitkan narasi apa pun dengannya.

Dispersi sektor

Sebelas dana SPDR select-sector, berdasarkan penutupan 29 Juli dibandingkan dengan 28 Juli, diurutkan dari kinerja terbaik hingga terburuk. Keranjang ini telah ditetapkan dan bersifat tetap, bukan klasifikasi vendor.

QueryETF sektor, penutupan 29 Juli vs penutupan 28 Juli, diurutkan
SQL tepat di balik setiap angka
SELECT sector, day_pct, round(max(day_pct) OVER () - day_pct, 2) AS points_behind_best
FROM (
    SELECT multiIf(ticker = 'XLK', 'Technology', ticker = 'XLC', 'Communications', ticker = 'XLE', 'Energy',
                   ticker = 'XLF', 'Financials', ticker = 'XLI', 'Industrials', ticker = 'XLB', 'Materials',
                   ticker = 'XLP', 'Staples', ticker = 'XLRE', 'Real Estate', ticker = 'XLU', 'Utilities',
                   ticker = 'XLV', 'Health Care', 'Consumer Discretionary') AS sector,
           round((c29 / c28 - 1) * 100, 2) AS day_pct
    FROM (
        SELECT ticker,
               argMaxIf(toFloat64(close), window_start, window_start < '2026-07-29 00:00:00') AS c28,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-29 00:00:00') AS c29
        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-28 13:30:00' AND window_start < '2026-07-28 20:00:00')
            OR (window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00'))
        GROUP BY ticker
        HAVING c28 > 0 AND c29 > 0
    )
)
ORDER BY day_pct DESC
Run this yourself

Energy memimpin dengan 1.89%, sedangkan Industrials berada di posisi terbawah dengan -3.21%, tertinggal 5.1 percentage points. Spread tersebut menunjukkan dispersi sektor pada hari itu: pergerakan pasar ketika kesebelas sektor berada dalam rentang satu poin akan terlihat sangat berbeda dari pergerakan pasar ketika rentangnya mencapai beberapa poin.

Di mana perdagangan dolar berlangsung

Query6 teratas berdasarkan nilai transaksi, 4 teratas berdasarkan jumlah saham: jam reguler 29 Juli
SQL tepat di balik setiap angka
SELECT leaderboard, ticker, dollar_volume_bn, shares_m,
    round(1000 * dollar_volume_bn / shares_m, 2) AS implied_avg_price
FROM (
    SELECT
        'by dollars traded' AS leaderboard,
        ticker,
        round(sum(toFloat64(close) * toFloat64(volume)) / 1e9, 2) AS dollar_volume_bn,
        round(sum(toFloat64(volume)) / 1e6, 1) AS shares_m
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 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(volume)) / 1e6, 1) AS shares_m
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00'
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker
    ORDER BY shares_m DESC
    LIMIT 4
)
ORDER BY leaderboard, if(leaderboard = 'by shares traded', shares_m, dollar_volume_bn) DESC
Run this yourself

MU memimpin papan perdagangan dolar dengan nilai transaksi jam reguler sebesar 44.99 miliar, disusul SPY sebesar 42.29 miliar. Papan saham menjawab pertanyaan yang berbeda: SNXX memimpin dengan 173.4 juta saham dan harga rata-rata tersirat sebesar $7.32. Volume dalam dolar menunjukkan perhatian pasar, sedangkan volume saham menunjukkan tingkat perputarannya. Versi metrik ini untuk setiap emiten disebut relative volume.

Aktivitas options

QueryOptions tape: kontrak, porsi call, porsi same-day vs Selasa, kontrak SPY tersibuk
SQL tepat di balik setiap angka
WITH
    (
        SELECT (strike, typ, vol_m, is_0dte)
        FROM (
            SELECT toFloat64(any(strike_price)) AS strike, any(option_type) AS typ,
                   round(toFloat64(sum(size)) / 1e6, 2) AS vol_m,
                   if(substring(ticker, length(ticker) - 14, 6) = '260729', 1, 0) AS is_0dte
            FROM global_markets.options_trades
            WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00'
              AND underlying_symbol = 'SPY'
            GROUP BY ticker
            ORDER BY vol_m DESC, strike ASC
            LIMIT 1
        )
    ) AS top_spy,
    (
        SELECT round(toFloat64(argMax(close, window_start)), 2)
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY' AND window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00'
    ) AS spy_regular_close,
    (
        SELECT round(toFloat64(sum(size)) / 1e6, 2)
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-28 00:00:00' AND sip_timestamp < '2026-07-29 00:00:00'
    ) AS jul28_contracts_m,
    (
        SELECT round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260728') / sum(size), 1)
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-28 00:00:00' AND sip_timestamp < '2026-07-29 00:00:00'
    ) AS jul28_pct_0dte
SELECT
    round(count() / 1e6, 2) AS option_prints_m,
    round(toFloat64(sum(size)) / 1e6, 2) AS contracts_m,
    jul28_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) = '260729') / sum(size), 1) AS pct_0dte,
    jul28_pct_0dte,
    spy_regular_close,
    top_spy.1 AS top_spy_strike,
    top_spy.2 AS top_spy_type,
    top_spy.3 AS top_spy_contracts_m,
    top_spy.4 AS top_spy_is_0dte,
    round(top_spy.1 - spy_regular_close, 2) AS top_spy_strike_minus_close
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00'
Run this yourself

Aktivitas options mencatat 11.03 juta transaksi untuk 66.84 juta kontrak, dibandingkan dengan 59.28 juta pada Selasa. Call mencakup 53.6% dari volume kontrak. Kontrak yang berakhir pada sesi yang sama, kelompok zero-days-to-expiry, mencatat 33.1% dibandingkan dengan 29% pada Selasa. Ritme ini ditentukan oleh waktu kedaluwarsa. Kontrak SPY yang paling aktif adalah 735 P dengan 0.36 juta kontrak. Strike-nya berjarak 5.49 dolar dari penutupan reguler SPY di $729.51, yang diukur sebagai strike dikurangi harga penutupan.

Pita kuotasi

Data kuotasi adalah dataset yang paling langka di desk ini dan diukur setiap sesi. Hari-hari biasa juga dicatat.

QueryJumlah pembaruan NBBO saham: 29 Juli vs 28 Juli, dengan pembaruan ticker bernama (jutaan)
SQL tepat di balik setiap angka
SELECT
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-29')) / 1e6, 2) AS jul29_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-28')) / 1e6, 2) AS jul28_updates_m,
    round((countIf(toDate(sip_timestamp) = toDate('2026-07-29')) / countIf(toDate(sip_timestamp) = toDate('2026-07-28')) - 1) * 100, 1) AS day_over_day_pct,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-29') AND ticker = 'SPY') / 1e6, 2) AS jul29_spy_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-29') AND ticker = 'QQQ') / 1e6, 2) AS jul29_qqq_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-29') AND ticker = 'NVDA') / 1e6, 2) AS jul29_nvda_updates_m
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-07-28 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00'
Run this yourself

Pita kuotasi saham mencatat 722.65 juta pembaruan NBBO, dibandingkan dengan 536.07 juta pada Selasa, atau perubahan hari ke hari sebesar 34.8%. SPY mencatat 7.32 juta pembaruan, QQQ 8.72 juta, dan NVDA 4.41 juta.

QueryTujuh nama: median quoted spread RTH dalam basis point, dengan jumlah quote-quality, 29 Juli
SQL tepat di balik setiap angka
SELECT ticker,
       round(quantileExactIf(0.5)(10000 * (toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2), bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price), 2) AS median_spread_bps,
       round(count() / 1e6, 2) AS quote_updates_m,
       countIf(bid_price <= 0 OR ask_price <= 0) AS one_sided_quote_count,
       countIf(bid_price > ask_price AND bid_price > 0 AND ask_price > 0) AS crossed_quote_count
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('AAPL', 'DIA', 'IWM', 'NVDA', 'QQQ', 'SPY', 'TSLA')
  AND sip_timestamp >= '2026-07-29 13:30:00' AND sip_timestamp < '2026-07-29 20:00:00'
GROUP BY ticker
HAVING countIf(bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price) > 0
ORDER BY ticker
Run this yourself

Spread median kuotasi SPY selama jam perdagangan reguler mencapai 0.27 basis point dari nilai tengah, QQQ 0.75, dan NVDA 1.55. Dua kolom terakhir merupakan pengungkapan: kuotasi satu sisi dan kuotasi silang dihitung untuk setiap nama dan dipisahkan dari median, bukan dihapus secara diam-diam. Kuotasi silang, yaitu bid di atas ask, merupakan artefak biasa dari feed konsolidasi yang dirangkai dari banyak venue pada resolusi nanodetik.

QueryMedian spread SPY dibandingkan dengan setiap sesi Juli, spread tersempit di urutan pertama
SQL tepat di balik setiap angka
SELECT round(anyIf(spread_bps, d = toDate('2026-07-29')), 2) AS jul29_median_spread_bps,
       arrayCount(x -> x < anyIf(spread_bps, d = toDate('2026-07-29')), groupArrayIf(spread_bps, d != toDate('2026-07-29'))) + 1 AS rank_tightest,
       count() AS sessions_compared,
       toString(min(d)) AS first_session
FROM (
    SELECT toDate(sip_timestamp) AS d,
           quantileExactIf(0.5)(10000 * (toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2), bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price) AS spread_bps
    FROM global_markets.cache_stocks_quotes
    WHERE ticker = 'SPY'
      AND sip_timestamp >= '2026-07-01 13:30:00' AND sip_timestamp < '2026-07-29 20:00:00'
      AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
    GROUP BY d
    HAVING countIf(bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price) > 0
)
Run this yourself

Jika diperingkatkan terhadap setiap sesi Juli dengan logika yang sama, spread median SPY hari itu sebesar 0.27 basis point berada di urutan 20 dari 20, dihitung dari yang paling ketat, dalam periode yang dimulai pada 2026-07-01. Pada pita yang tenang, kalimat itu merupakan inti panel ini: hari likuiditas yang biasa adalah sebuah temuan, dipublikasikan dan dibatasi dengan jelas.

QueryOptions NBBO tape: total pembaruan vs stock tape, ditambah segmen root SPY, 29 Juli
SQL tepat di balik setiap angka
WITH
    (SELECT count() FROM global_markets.cache_options_quotes WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00') AS jul29_options_rows,
    (SELECT count() FROM global_markets.cache_stocks_quotes WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00') AS jul29_stock_quote_rows
SELECT
    round(jul29_options_rows / 1e9, 2) AS jul29_options_bn,
    round(jul29_options_rows / jul29_stock_quote_rows, 1) AS options_to_stock_ratio,
    round((SELECT count() FROM global_markets.cache_options_quotes WHERE ticker >= 'O:SPY26' AND ticker < 'O:SPY27' AND sip_timestamp >= '2026-07-29 13:30:00' AND sip_timestamp < '2026-07-29 20:00:00') / 1e6, 0) AS jul29_spy_options_m
Run this yourself

Pita NBBO opsi mencatat 13.55 miliar pembaruan, atau 18.8 kali lipat dari pita kuotasi saham, dengan root SPY saja mencatat 600 juta pembaruan selama jam perdagangan reguler.

Suku Bunga

QueryCatatan Treasury curve, 24 Juli hingga 29 Juli
SQL tepat di balik setiap angka
SELECT toString(date) AS date,
       round(toFloat64(yield_2_year), 2) AS yield_2y_pct,
       round(toFloat64(yield_10_year), 2) AS yield_10y_pct,
       round(toFloat64(yield_30_year), 2) AS yield_30y_pct,
       round((toFloat64(yield_10_year) - toFloat64(yield_2_year)) * 100) AS spread_2s10s_bp
FROM global_markets.treasury_yields
WHERE date >= '2026-07-24' AND date <= '2026-07-29'
ORDER BY date
Run this yourself

File Treasury tertinggal sekitar satu sesi dari pergerakan pasar, sehingga panel ini melaporkan transaksi yang tersimpan di dalamnya: baris bertanggal 4 dalam jendela tersebut. Data terbaru, bertanggal 2026-07-29, menempatkan yield two-year di 4.22%, ten-year di 4.67%, dan thirty-year di 5.2%, dengan spread two-to-ten-year sebesar 45 basis points.

Kalender di balik hari tersebut

QueryEx-dividend, split, listing, berita, dan komposisi pengajuan SEC 29 Juli
SQL tepat di balik setiap angka
WITH
    (
        SELECT (argMax(t, (n, t)), max(n))
        FROM (
            SELECT t, count() AS n
            FROM (
                SELECT arrayJoin(tickers) AS t
                FROM global_markets.stocks_news
                WHERE published_utc >= '2026-07-29 04:00:00' AND published_utc < '2026-07-30 04:00:00'
            )
            WHERE t != 'SPCX'
            GROUP BY t
        )
    ) AS top_news,
    (
        SELECT (count(), uniqExact(cik), countIf(form_type = '4'), countIf(form_type = '8-K'), countIf(form_type = '424B2'), countIf(form_type = '10-Q'))
        FROM global_markets.stocks_sec_edgar_index
        WHERE filing_date = '2026-07-29'
    ) AS fil
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-29') AS ex_dividend_records,
    (SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-29') AS reverse_splits,
    (SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-29') AS forward_splits,
    (SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-29') AS listings,
    (SELECT count() FROM global_markets.stocks_news WHERE published_utc >= '2026-07-29 04:00:00' AND published_utc < '2026-07-30 04:00:00') AS news_articles,
    (SELECT uniqExact(JSONExtractString(publisher, 'name')) FROM global_markets.stocks_news WHERE published_utc >= '2026-07-29 04:00:00' AND published_utc < '2026-07-30 04:00:00') AS news_publishers,
    top_news.1 AS top_news_ticker,
    top_news.2 AS top_news_n,
    fil.1 AS fil_total,
    fil.2 AS fil_filers,
    fil.3 AS fil_form4,
    fil.4 AS fil_8k,
    fil.5 AS fil_424b2,
    fil.6 AS fil_10q
Run this yourself

85 catatan dividen menjadi ex-dividend pada 29 Juli, 2 reverse split dan 1 forward split dieksekusi, serta 1 pencatatan baru masuk ke tape. Feed berita memuat 190 artikel dari 2 penerbit, dengan NVDA ticker yang paling banyak diberitakan dalam periode feed ini sebanyak 13 artikel. Indeks harian EDGAR memuat 5742 pengajuan untuk tanggal tersebut dari 3064 filer berbeda: 712 laporan insider Form 4, 440 laporan berjalan 8-K, 884 suplemen harga 424B2, dan 174 laporan kuartalan 10-Q. Indeks tersebut diperbarui sesuai jadwalnya sendiri, dan panel ini melaporkan semua data yang tersedia pada saat pembuatan.

Agenda

Sisa pekan ini, baca tabel yang sama dengan sengaja melihat melampaui periode tersebut.

Query30 dan 31 Juli dalam kalender: penutupan pasar, ex-dividend, split, expiry Jumat, dan jeda data short interest
SQL tepat di balik setiap angka
SELECT
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date >= '2026-07-30' AND date <= '2026-07-31' AND status != 'open') AS closures_rest_of_week,
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date >= '2026-07-30' AND ex_dividend_date <= '2026-07-31') AS exdiv_records_rest_of_week,
    (SELECT countIf(ticker IN ('AAPL', 'MSFT', 'JPM', 'KO', 'JNJ', 'XOM', 'CVX', 'PG', 'WMT', 'HD')) FROM global_markets.stocks_dividends WHERE ex_dividend_date >= '2026-07-30' AND ex_dividend_date <= '2026-07-31') AS household_exdivs,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date >= '2026-07-30' AND execution_date <= '2026-07-31') AS splits_rest_of_week,
    round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260731') / sum(size), 1) AS jul31_expiry_pct_of_wed_volume,
    (SELECT toString(max(settlement_date)) FROM global_markets.stocks_short_interest WHERE settlement_date <= '2026-07-29') AS latest_short_interest_settlement
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00'
Run this yourself

Tabel hari libur menunjukkan penutupan sebanyak 0 pada Kamis, 30 Juli, dan Jumat, 31 Juli. Sebanyak 611 catatan dividen memasuki tanggal ex-dividend selama dua sesi tersebut, termasuk 0 di antaranya dari sepuluh nama rumah tangga yang diperiksa, dan 12 stock split dijadwalkan untuk dieksekusi. Dari volume option hari Rabu, 19.7% sudah berada dalam kontrak yang dijadwalkan berakhir pada Jumat, 31 Juli. Data settlement short interest terbaru yang tercatat adalah 2026-07-15, sebuah berkas yang dipublikasikan dengan jeda cukup panjang hingga memiliki penjelasan tersendiri.

Sesi, terverifikasi

QueryVerifikasi sesi: bar SPY ET pertama/terakhir, jumlah regular bar, penerimaan hari libur, penutupan berikutnya
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,
    countIf(window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS regular_session_bars,
    uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS day_sessions,
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-29') AS jul29_holiday_rows,
    (SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-29' AND date <= '2026-12-31' AND status = 'closed') AS next_closure_date,
    (SELECT argMin(name, date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-29' AND date <= '2026-12-31' AND status = 'closed') AS next_closure_name
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-29 00:00:00' AND window_start < '2026-07-30 00:00:00'
Run this yourself

Sesi reguler penuh: bar SPY pertama pada 04:00 ET, bar terakhir pada 19:59 ET, 390 bar jam reguler, 1 sesi dalam jendela tersebut, dan 0 baris hari libur untuk tanggal tersebut. Penutupan terjadwal berikutnya adalah Labor Day pada 2026-09-07.

FAQ

Bagaimana kinerja pasar saham pada Rabu, 29 Juli 2026?

SPY berubah -1.52% dari penutupan ke penutupan menjadi $729.51, dengan QQQ di -2.07%, DIA di -2.19%, dan IWM di -1.63%. Di antara saham-saham likuid, 1652 naik dan 4342 turun.

Sektor mana yang memimpin pada 29 Juli 2026?

Energy, sebesar 1.89%, berdasarkan pengukuran terhadap sebelas dana SPDR select-sector. Yang terlemah dari sebelas dana tersebut, Industrials, mencatat -3.21%.

Seberapa aktif pasar options pada 29 Juli 2026?

Sebanyak 66.84 juta kontrak diperdagangkan, dibandingkan dengan 59.28 juta pada sesi sebelumnya. Kontrak same-day mencakup 33.1% volume, sedangkan call mencakup 53.6%.

Saham mana yang memperdagangkan nilai dolar terbesar pada 29 Juli 2026?

MU, dengan volume dolar jam perdagangan reguler sebesar 44.99 miliar, di atas SPY yang mencapai 42.29 miliar.

Catatan data

Edisi ini melanjutkan seri harian; edisi harian sebelumnya adalah 10 Juli 2026, sedangkan rekap mingguan memuat pekan sebelumnya. Panel berdasarkan ticker disusun secara alfabetis agar rujukan dalam uraian mengarah ke baris yang tetap. Papan peringkat dan papan saham dengan pergerakan terbesar disusun berdasarkan nilai, dan setiap klaim posisi yang dimuatnya dikodekan sebagai batas kewajaran. Keranjang mega-cap dan keranjang sektor yang terdiri atas sebelas fund merupakan himpunan tetap yang telah ditetapkan, bukan klasifikasi vendor. Papan saham dengan pergerakan terbesar menerapkan ambang turnover jam perdagangan reguler sebesar lima juta dolar, mengecualikan nama yang mengalami split di antara dua penutupan yang diukur, serta mengecualikan satu simbol yang digunakan ulang berdasarkan pengaman ambiguitas internal. Dengan demikian, setiap sorotan selalu merujuk pada nama yang dapat diverifikasi. Panel kuotasi menghitung kuotasi satu sisi dan crossed quotes untuk setiap nama, bukan menghapusnya secara diam-diam. File Treasury dan indeks harian EDGAR masuk sesuai jadwal masing-masing. Karena itu, panel tersebut melaporkan data yang tersedia, tanpa mengasumsikan data akan masuk. Tidak ada indeks implied volatility dalam edisi ini. Seri tersebut tidak dilisensikan ke warehouse ini. Karena itu, volatilitas dibaca dari tape melalui rentang pergerakan, porsi opsi pada hari yang sama, dan perilaku kuotasi.

Metodologi

  • Sumber data pasar: consolidated tape. delayed_stocks_minute_aggs untuk harga dan volume, options_trades untuk options tape, serta cache_stocks_quotes dan cache_options_quotes untuk panel NBBO.
  • Penutupan: bar menit terakhir pada sesi reguler, bukan print pukul 16.00 yang diasumsikan dan bukan print extended hours.
  • Penanganan zona waktu: semua timestamp tersimpan dalam UTC; klausa WHERE menggunakan literal UTC mentah, sedangkan toTimeZone hanya muncul dalam daftar SELECT untuk label ET.
  • Verifikasi sesi: berdasarkan tabel hari libur dan bar yang teramati, bukan berdasarkan asumsi dari kalender.
  • Perbandingan dengan sesi sebelumnya: dihitung dalam query dari 28 Juli, bukan diambil dari post sebelumnya.
  • Desimal: kolom harga, size, dan volume dikonversi ke Float64 sebelum operasi pembagian atau perkalian.
  • Agregat deterministik: quantile eksak dan tie-break berbasis tuple key digunakan di seluruh proses; setiap klaim mengenai urutan atau tanda dalam teks dikodekan sebagai batas sanity check.
  • Tanggal as-of warehouse: 1 Agustus 2026, tiga hari setelah sesi tersebut dan setelah jeda ingest tape yang biasanya berlangsung satu hingga dua hari; receipt berbatas di atas akan mempertahankan post ini jika suatu dataset ditemukan tidak tersedia saat pembuatan.

Tautan silang: rekap harian sebelumnya, rekap mingguan, kapan options kedaluwarsa, apa itu bid-ask spread, dan spread two-to-ten-year.

Setiap query di atas dapat dijalankan tanpa perubahan pada terminal Strasmore jika Anda ingin mengarahkan ulang suatu window ke sesi yang berbeda.