Strasmore Research
Rekap pasar Matt ConnorOleh Matt Connor

rekap pasar pekan 20 juli 2026

Pekan setelah kedaluwarsa opsi Juli: skor indeks, sebaran sektor, breadth mingguan, dan aliran dana di pasar. Data dari kueri tersimpan.

Pekan 20 Juli 2026 merupakan pekan penuh pertama setelah kedaluwarsa opsi bulanan Juli, dan berlangsung selama 5 sesi tanpa penutupan di dalamnya. Perubahan close-to-close SPY pada pekan tersebut mencapai -0.59%, dan jika diukur dari open-to-close terhadap tahun trailing pekan, peringkatnya adalah 43 dari 53. Setiap angka di bawah ini dibaca dari kueri tersimpan, dan setiap jendela waktu ditetapkan pada tanggal yang eksplisit, sehingga menjalankan ulang SQL akan mengembalikan angka yang sama.

Pekan di papan

Perubahan mingguan dihitung dari penutupan reguler Jumat 17 Juli hingga Jumat 24 Juli. Kolom terakhir memuat pekan sebelumnya, sehingga keduanya berdampingan. Baris diurutkan secara alfabetis.

QuerySPY / QQQ / DIA / IWM: pekan 20 Juli vs penutupan 17 Juli, dengan perubahan pekan sebelumnya
SQL tepat di balik setiap angka
SELECT ticker,
    round(argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-17 13:30:00' AND window_start < '2026-07-17 20:00:00'), 2) AS prior_week_close,
    round(argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-24 13:30:00' AND window_start < '2026-07-24 20:00:00'), 2) AS week_close,
    round((argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-24 13:30:00' AND window_start < '2026-07-24 20:00:00')
         / argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-17 13:30:00' AND window_start < '2026-07-17 20:00:00') - 1) * 100, 2) AS week_change_pct,
    round((argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-17 13:30:00' AND window_start < '2026-07-17 20:00:00')
         / argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-10 13:30:00' AND window_start < '2026-07-10 20:00:00') - 1) * 100, 2) AS prior_week_change_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
  AND ((window_start >= '2026-07-10 13:30:00' AND window_start < '2026-07-10 20:00:00')
    OR (window_start >= '2026-07-17 13:30:00' AND window_start < '2026-07-17 20:00:00')
    OR (window_start >= '2026-07-24 13:30:00' AND window_start < '2026-07-24 20:00:00'))
GROUP BY ticker
ORDER BY ticker

Sepanjang pekan: DIA bergerak -0.38%, IWM -0.98%, QQQ -1.59%, dan SPY -0.59% menuju penutupan di $738.85. Pembacaan pekan sebelumnya, dalam urutan alfabetis yang sama, adalah -0.95%, -0.63%, -4.17%, dan -1.55%. Seberapa jauh jarak keempat indeks tersebut merupakan hal pertama yang diukur oleh papan skor, dan jarak itu tidak selalu kecil.

Minggu ini versus tahun berjalan

Satu angka mingguan tidak berarti banyak tanpa distribusi di belakangnya. Panel ini menghitung ulang setiap minggu berjalan dengan logika yang sama, dari harga pembukaan hingga penutupan sesi reguler, dan memberi peringkat minggu ini di dalamnya.

QueryPekan SPY dalam konteks tahun berjalan (return mingguan open-to-close)
SQL tepat di balik setiap angka
SELECT round(anyIf(ret, wk = toDate('2026-07-20')), 2) AS week_open_to_close_pct,
       arrayCount(x -> x > anyIf(ret, wk = toDate('2026-07-20')), groupArrayIf(ret, wk != toDate('2026-07-20'))) + 1 AS rank_best,
       count() AS weeks_compared,
       toString(min(wk)) AS first_week,
       anyIf(sessions_measured, wk = toDate('2026-07-20')) AS sessions_this_week
FROM (
    SELECT toStartOfWeek(toDate(toTimeZone(window_start, 'America/New_York')), 1) AS wk,
           uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions_measured,
           (argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100 AS ret
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime('2025-07-21 00:00:00')
      AND window_start < toDateTime('2026-07-25 00:00:00')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY wk
    HAVING sessions_measured >= 3
)

Diukur dengan cara itu, SPY menghasilkan -1.1% dan berada di peringkat 43 dari 53 minggu sejak 2025-07-21. Perhatikan celah definisi: angka ini dimulai dari pembukaan sesi reguler pertama minggu ini, sedangkan papan skor di atas dimulai dari penutupan minggu sebelumnya. Keduanya diberi label di setiap tempat kemunculannya.

Lima sesi, satu alur

QuerySPY per sesi: penutupan, perubahan, dan volume saham, 20-24 Juli
SQL tepat di balik setiap angka
SELECT toString(d) AS date,
       round(c, 2) AS spy_close,
       round((c / prev_c - 1) * 100, 2) AS change_pct,
       round(shares_m, 1) AS spy_shares_m
FROM (
    SELECT d, c, shares_m,
           lagInFrame(c) OVER (ORDER BY d ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_c
    FROM (
        SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
               argMax(toFloat64(close), window_start) AS c,
               toFloat64(sum(volume)) / 1e6 AS shares_m
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND ((window_start >= '2026-07-17 13:30:00' AND window_start < '2026-07-17 20:00:00')
            OR (window_start >= '2026-07-20 13:30:00' AND window_start < '2026-07-24 20:00:00'))
          AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
        GROUP BY d
    )
)
WHERE d >= '2026-07-20'
ORDER BY date

Sesi demi sesi, perubahan SPY tercatat -0.15% pada Senin, 0.84% pada Selasa, -0.12% pada Rabu, -1.22% pada Kamis, dan 0.08% pada Jumat, ditutup di $738.85 pada 40.1 juta saham. Angka Senin diukur terhadap penutupan 17 Juli, sesi yang tepat sebelum periode tersebut.

Luas Pasar, Sesi demi Sesi

Level indeks hanyalah satu angka. Luas pasar menghitung berapa banyak saham yang bergerak bersamanya, dan angka itulah yang menentukan apakah pekan hijau bersifat luas atau sempit.

QueryPemajuan dan penurunan per sesi, nama dengan perdagangan $5M+, 20-24 Juli
SQL tepat di balik setiap angka
SELECT toString(d) AS date, advancers, decliners, unchanged, measured_names
FROM (
    SELECT d,
           countIf(c > prev_c) AS advancers,
           countIf(c < prev_c) AS decliners,
           countIf(c = prev_c) AS unchanged,
           count() AS measured_names
    FROM (
        SELECT d, c, dv,
               lagInFrame(c) OVER (PARTITION BY ticker ORDER BY d ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_c
        FROM (
            SELECT ticker,
                   toDate(toTimeZone(window_start, 'America/New_York')) AS d,
                   argMax(toFloat64(close), window_start) AS c,
                   sum(toFloat64(close) * toFloat64(volume)) AS dv
            FROM global_markets.delayed_stocks_minute_aggs
            WHERE ((window_start >= '2026-07-17 13:30:00' AND window_start < '2026-07-17 20:00:00')
                OR (window_start >= '2026-07-20 13:30:00' AND window_start < '2026-07-24 20:00:00'))
              AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
            GROUP BY ticker, d
        )
    )
    WHERE d >= '2026-07-20' AND prev_c > 0 AND dv >= 5000000
    GROUP BY d
)
ORDER BY date

Pada hari Senin, 1268 dari 3945 nama yang diukur naik dan 2632 turun. Pada hari Jumat, rasionya menjadi 2273 naik berbanding 1635 turun, dari total 3950. Nama yang tidak memiliki harga penutupan di kedua sisi sesi tidak disertakan, itulah sebabnya jumlah yang diukur sedikit berubah dari hari ke hari.

Pertanyaan yang sama diajukan sekali, untuk keseluruhan pekan:

QueryBreadth mingguan: penutupan reguler 24 Juli vs penutupan reguler 17 Juli, nama dengan perdagangan $5M+ selama pekan
SQL tepat di balik setiap angka
SELECT
    countIf(cw > cp AND liquid) AS advancers,
    countIf(cw < cp AND liquid) AS decliners,
    countIf(cw = cp AND liquid) AS unchanged,
    countIf(liquid) AS measured_names,
    countIf(NOT liquid) AS dropped_by_liquidity_filter,
    round(100.0 * countIf(cw > cp AND liquid) / countIf(liquid), 1) AS advancer_pct
FROM (
    SELECT ticker, cp, cw, dv >= 5000000 AS liquid
    FROM (
        SELECT ticker,
               argMaxIf(toFloat64(close), window_start, window_start < '2026-07-18 00:00:00') AS cp,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-24 13:30:00') AS cw,
               sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-20 13:30:00') AS dv
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ((window_start >= '2026-07-17 13:30:00' AND window_start < '2026-07-17 20:00:00')
            OR (window_start >= '2026-07-20 13:30:00' AND window_start < '2026-07-25 00:00:00'))
          AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
        GROUP BY ticker
        HAVING cp > 0 AND cw > 0
    )
)

Dari 6100 nama yang memenuhi ambang batas volume perdagangan reguler sebesar lima juta dolar, 2437 ditutup di atas harga penutupan 17 Juli dan 3630 ditutup di bawahnya, dengan pangsa saham yang naik sebesar 40%. Filter likuiditas menyisihkan 5099 nama lainnya yang diperdagangkan di bawah ambang batas tersebut selama pekan itu. Nama-nama itu dihitung di sini, bukan dibuang begitu saja.

Papan skor sektor

Sebelas ETF sektor SPDR, dari penutupan 17 Juli hingga 24 Juli, diperingkat dari terbaik hingga terburuk.

QueryETF sektor, perubahan penuh pekan: penutupan 24 Juli vs penutupan 17 Juli
SQL tepat di balik setiap angka
SELECT sector, week_pct, round(max(week_pct) OVER () - week_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((cw / cp - 1) * 100, 2) AS week_pct
    FROM (
        SELECT ticker,
               argMaxIf(toFloat64(close), window_start, window_start < '2026-07-18 00:00:00') AS cp,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-24 13:30:00') AS cw
        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-17 13:30:00' AND window_start < '2026-07-17 20:00:00')
            OR (window_start >= '2026-07-24 13:30:00' AND window_start < '2026-07-24 20:00:00'))
        GROUP BY ticker
        HAVING cp > 0 AND cw > 0
    )
)
ORDER BY week_pct DESC

Energy berada di puncak papan dengan 3.33%. Consumer Discretionary berada di dasar dengan -5.2%, tertinggal 8.53 poin persentase di belakangnya. Kesenjangan ini adalah dispersi sektor minggu ini, dan penting untuk dipahami sendiri: minggu di mana kesebelas sektor berada dalam jarak satu poin satu sama lain adalah pasar yang sangat berbeda dari minggu di mana selisihnya mencapai dua digit.

Ke mana perginya dolar-dolar itu

QueryNama teratas berdasarkan volume dolar jam reguler, pekan penuh 20-24 Juli
SQL tepat di balik setiap angka
SELECT ticker, week_dollar_bn, round(100 * week_dollar_bn / max(week_dollar_bn) OVER (), 1) AS pct_of_leader
FROM (
    SELECT ticker,
           round(sum(toFloat64(close) * toFloat64(volume)) / 1e9, 1) AS week_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-07-20 13:30:00' AND window_start < '2026-07-24 20:00:00'
      AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker
    ORDER BY week_dollar_bn DESC
    LIMIT 8
)
ORDER BY week_dollar_bn DESC

MU mencetak 158.1 miliar dolar omzet jam reguler sepanjang lima sesi, melampaui SPY yang mencatat 133.9 miliar dolar dan QQQ dengan 101.5 miliar dolar. Di peringkat kedelapan, AAPL, memperdagangkan 34.5% dari omzet pemimpin. Catatan omzet menunjukkan di mana pasar menghabiskan pekannya untuk berdebat, dan belum tentu sejalan dengan pergerakan harga. Versi per-saham dari ukuran ini adalah volume relatif.

Pergerakan Terbesar Pekan Ini

Pemecahan saham mengubah angka cetakan tanpa mengubah nilai: pemecahan terbalik menghasilkan kenaikan palsu empat digit, pemecahan maju menghasilkan kejatuhan palsu dengan ukuran yang sama. Pekan ini membawa 25 pemecahan terbalik dan 11 pemecahan maju, dan kedua papan di bawah ini mengecualikan nama apa pun yang pemecahannya terjadi antara penutupan 17 Juli dan penutupan 24 Juli, rentang waktu yang tepat saat perubahan diukur. Keduanya juga mensyaratkan volume perdagangan lima juta dolar pada jam reguler.

QueryPergerak mingguan: sepuluh pemenang dan penurunan terbesar, penutupan jam reguler, perdagangan $5M+, pemecahan saham dikecualikan
SQL tepat di balik setiap angka
SELECT ticker, board, week_pct, week_dollar_m, sessions_traded,
       round(100 * week_dollar_m / max(week_dollar_m) OVER (), 1) AS pct_of_dollar_max
FROM (
    SELECT 'gainers' AS board, ticker, round((cw / cp - 1) * 100, 1) AS week_pct,
           round(dv / 1e6, 1) AS week_dollar_m, sessions_traded
    FROM (
        SELECT ticker,
               argMaxIf(toFloat64(close), window_start, window_start < '2026-07-18 00:00:00') AS cp,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-24 13:30:00') AS cw,
               sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-20 13:30:00') AS dv,
               uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-20 13:30:00') AS sessions_traded
        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-17' AND execution_date <= '2026-07-24')
          AND ((window_start >= '2026-07-17 13:30:00' AND window_start < '2026-07-17 20:00:00')
            OR (window_start >= '2026-07-20 13:30:00' AND window_start < '2026-07-25 00:00:00'))
          AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
        GROUP BY ticker
        HAVING cp > 0 AND cw > 0 AND dv >= 5000000
    )
    ORDER BY week_pct DESC
    LIMIT 10
    UNION ALL
    SELECT 'decliners' AS board, ticker, round((cw / cp - 1) * 100, 1) AS week_pct,
           round(dv / 1e6, 1) AS week_dollar_m, sessions_traded
    FROM (
        SELECT ticker,
               argMaxIf(toFloat64(close), window_start, window_start < '2026-07-18 00:00:00') AS cp,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-24 13:30:00') AS cw,
               sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-20 13:30:00') AS dv,
               uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-20 13:30:00') AS sessions_traded
        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-17' AND execution_date <= '2026-07-24')
          AND ((window_start >= '2026-07-17 13:30:00' AND window_start < '2026-07-17 20:00:00')
            OR (window_start >= '2026-07-20 13:30:00' AND window_start < '2026-07-25 00:00:00'))
          AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
        GROUP BY ticker
        HAVING cp > 0 AND cw > 0 AND dv >= 5000000
    )
    ORDER BY week_pct ASC
    LIMIT 10
)
ORDER BY board DESC, abs(week_pct) DESC

Masuk ke salah satu papan membutuhkan pergerakan nyata. Pergerakan kenaikan paling kecil yang ditampilkan naik 92.3%, dan penurunan paling kecil tercatat -47.8%. Pada titik ekstrem, STAK bergerak 383.7% dengan perdagangan 251.6 juta dolar, dan LBGJ bergerak -98.8% dengan 47.7 juta. Penurunan itu mendekati seluruh nilai kuotasi nama tersebut, sehingga papan membawa tanda terimanya sendiri: LBGJ mencetak bar jam reguler pada 5 dari lima sesi, dan tidak ada pemecahan yang terjadi terhadapnya di antara dua penutupan yang diukur papan.

Selisih kuotasi, sesi demi sesi

Harga adalah yang utama. Biaya untuk menyelesaikan transaksi adalah selisih kuotasi, yang diukur di sini pada SPY satu sesi pada satu waktu, langsung dari rekaman NBBO mentah, bukan dari ringkasan apa pun.

QueryMedian spread kuotasi SPY dan pembaruan NBBO per sesi, jam reguler, 20-24 Juli
SQL tepat di balik setiap angka
SELECT toString(toDate(sip_timestamp)) AS date,
       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 = 'SPY'
  AND sip_timestamp >= '2026-07-20 13:30:00'
  AND sip_timestamp < '2026-07-24 20:00:00'
  AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
GROUP BY toDate(sip_timestamp)
HAVING countIf(bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price) > 0
ORDER BY toDate(sip_timestamp)

Selisih kuotasi median SPY terukur 0.27 basis poin dari harga tengah pada hari Senin dan 0.27 pada hari Jumat, pada 3.89 juta dan 4.4 juta pembaruan NBBO. Dua kolom terakhir adalah pengungkapan, bukan temuan: 0 kuotasi satu sisi dan 1084 kuotasi bersilang dihitung dari median hari Senin, bukan dihilangkan secara diam-diam. Kuotasi bersilang, harga beli di atas harga jual, adalah artefak biasa dari umpan terkonsolidasi yang digabungkan dari banyak tempat pada resolusi nanodetik.

Pekan opsi setelah kadaluwarsa bulanan

Kadaluwarsa bulanan Juli jatuh pada hari Jumat sebelum pekan ini dimulai, sehingga setiap kontrak yang diperdagangkan dalam lima sesi ini adalah kontrak yang bertahan dari kadaluwarsa tersebut. Waktu kadaluwarsa menentukan ritme yang digunakan oleh pedagang sesi yang sama.

QueryKontrak opsi, saham hari yang sama, dan saham call per sesi, 20-24 Juli
SQL tepat di balik setiap angka
SELECT toString(toDate(sip_timestamp)) AS date,
       round(toFloat64(sum(size)) / 1e6, 1) AS contracts_m,
       round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = formatDateTime(toDate(sip_timestamp), '%y%m%d')) / sum(size), 1) AS pct_0dte,
       round(100.0 * sumIf(size, substring(ticker, length(ticker) - 8, 1) = 'C') / sum(size), 1) AS pct_call,
       round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260724') / sum(size), 1) AS pct_expiring_jul24
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-20 00:00:00' AND sip_timestamp < '2026-07-25 00:00:00'
GROUP BY toDate(sip_timestamp)
ORDER BY toDate(sip_timestamp)

Volume kontrak mencapai 64 juta pada hari Senin dan 71.1 juta pada hari Jumat. Pangsa sesi yang sama, yang berarti kontrak yang kadaluwarsa pada sesi saat diperdagangkan, tercatat 40.2% pada hari Senin dibandingkan 49% pada hari Jumat, sesi kadaluwarsa pekan itu. Opsi beli (call) mengambil 53.5% dari volume kontrak hari Jumat. Dan daya tarik hari Jumat itu sudah terlihat sejak sesi pembukaan: 15.1% dari volume hari Senin sudah berada dalam kontrak yang berjangka waktu kadaluwarsa pada hari itu.

Suku Bunga Sepanjang Pekan

QueryKurva Treasury per sesi, cetakan 17 Juli hingga 24 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,
       round((toFloat64(yield_10_year) - (SELECT toFloat64(any(yield_10_year)) FROM global_markets.treasury_yields WHERE date = '2026-07-17')) * 100) AS chg_10y_from_prior_close_bp
FROM global_markets.treasury_yields
WHERE date >= '2026-07-17' AND date <= '2026-07-24'
ORDER BY date

Diukur dari cetakan 17 Juli, imbal hasil tenor sepuluh tahun bergerak 16 basis poin menjadi 4.71% pada cetakan terakhir yang tercatat, dengan imbal hasil tenor dua tahun di 4.37% dan tenor tiga puluh tahun di 5.17%. selisih imbal hasil dua hingga sepuluh tahun menutup rangkaian pada 34 basis poin. Berkas Treasury berjalan sekitar satu sesi di belakang data terkini, sehingga panel ini memuat 5 cetakan, masing-masing diberi tanggal dalam tabel.

Shorts: file harian

FINRA menerbitkan file volume penjualan pendek harian. Volume pendek adalah arus harian bruto, bukan posisi, dan file-file ini terkadang tiba terpotong, sehingga cakupan diukur sebelum rasio apa pun dikutip darinya.

QueryCakupan file volume pendek harian: ticker pada file dan saham pendek, 20-24 Juli
SQL tepat di balik setiap angka
SELECT date, tickers_on_file, short_shares_bn,
       round(100.0 * tickers_on_file / max(tickers_on_file) OVER (), 1) AS pct_of_fullest_file
FROM (
    SELECT toString(date) AS date,
           uniqExact(ticker) AS tickers_on_file,
           round(sum(short_shares) / 1e9, 2) AS short_shares_bn
    FROM (
        SELECT date, ticker, max(short_volume) AS short_shares
        FROM global_markets.stocks_short_volume
        WHERE date >= '2026-07-20' AND date <= '2026-07-24'
        GROUP BY date, ticker
    )
    GROUP BY date
)
ORDER BY date

5 file harian tersedia untuk minggu ini. File pertama berisi 15098 ticker dan 4.71 miliar saham yang ditandai sebagai pendek; file terakhir berisi 15062 ticker, atau 99.7% dari jumlah ticker file terlengkap. Klaim volume pendek per nama yang diambil dari file yang berada jauh di bawah file tetangganya tetap tidak dapat diverifikasi hingga file tersebut diajukan ulang.

Kalender di balik pekan ini

QueryPengajuan SEC per sesi dan jenis formulir, 20-24 Juli
SQL tepat di balik setiap angka
SELECT toString(filing_date) AS date,
       count() AS filings,
       countIf(form_type = '4') AS form4,
       countIf(form_type = '8-K') AS form8k,
       countIf(form_type = '424B2') AS f424b2
FROM global_markets.stocks_sec_edgar_index
WHERE filing_date >= '2026-07-20' AND filing_date <= '2026-07-24'
GROUP BY filing_date
ORDER BY date

Sesi pertama dalam arsip membawa 3012 pengajuan, 632 di antaranya adalah laporan Form 4 orang dalam dan 166 di antaranya adalah 8-K. Sesi terakhir membawa 3814, dengan 644 Form 4 dan 223 8-K. 5 dari sesi pekan ini memiliki indeks harian EDGAR dalam arsip; indeks itu tiba sesuai jadwalnya sendiri, yang kadang tertinggal dari rekaman.

QueryKalender korporat pekan: dividen, pemecahan, pencatatan, berita
SQL tepat di balik setiap angka
SELECT
    (SELECT count() FROM global_markets.stocks_sec_edgar_index WHERE filing_date >= '2026-07-20' AND filing_date <= '2026-07-24') AS filings_week,
    (SELECT uniqExact(filing_date) FROM global_markets.stocks_sec_edgar_index WHERE filing_date >= '2026-07-20' AND filing_date <= '2026-07-24') AS filing_days_on_file,
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date >= '2026-07-20' AND ex_dividend_date <= '2026-07-24') AS ex_dividends_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-20' AND ex_dividend_date <= '2026-07-24') AS household_ex_dividends_week,
    (SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date >= '2026-07-20' AND execution_date <= '2026-07-24') AS reverse_splits_week,
    (SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date >= '2026-07-20' AND execution_date <= '2026-07-24') AS forward_splits_week,
    (SELECT count() FROM global_markets.stocks_ipos WHERE listing_date >= '2026-07-20' AND listing_date <= '2026-07-24') AS listings_week,
    (SELECT count() FROM global_markets.stocks_news WHERE published_utc >= '2026-07-20 04:00:00' AND published_utc < '2026-07-25 04:00:00') AS news_week,
    (SELECT uniqExact(JSONExtractString(publisher, 'name')) FROM global_markets.stocks_news WHERE published_utc >= '2026-07-20 04:00:00' AND published_utc < '2026-07-25 04:00:00') AS news_publishers_week

Sisa dokumen pekan ini: 17106 pengajuan SEC di 5 hari yang terindeks, 592 catatan ex-dividen, 1 di antaranya dari sepuluh nama rumah tangga yang diperiksa panel ini, 25 pemecahan saham terbalik dan 11 pemecahan saham maju, 4 pencatatan baru, dan 1704 artikel dari 2 penerbit. Pasangan terakhir itu mengukur perhatian satu umpan, bukan liputan media dunia.

Sesi-sesi yang terverifikasi

QueryVerifikasi sesi: sesi, bar, baris hari libur, penutupan naik dan turun, penutupan berikutnya
SQL tepat di balik setiap angka
WITH spy AS (
    SELECT d, c, lagInFrame(c) OVER (ORDER BY d ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS p
    FROM (
        SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
               argMax(toFloat64(close), window_start) AS c
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND ((window_start >= '2026-07-17 13:30:00' AND window_start < '2026-07-17 20:00:00')
            OR (window_start >= '2026-07-20 13:30:00' AND window_start < '2026-07-24 20:00:00'))
          AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
        GROUP BY d
    )
)
SELECT
    uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions_in_week,
    toString(min(toDate(toTimeZone(window_start, 'America/New_York')))) AS first_session,
    toString(max(toDate(toTimeZone(window_start, 'America/New_York')))) AS last_session,
    count() AS regular_bars_in_week,
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date >= '2026-07-20' AND date <= '2026-07-24') AS holiday_rows_in_week,
    (SELECT countIf(c > p) FROM spy WHERE d >= '2026-07-20') AS up_sessions,
    (SELECT countIf(c < p) FROM spy WHERE d >= '2026-07-20') AS down_sessions,
    (SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-24' 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-24' 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-20 13:30:00' AND window_start < '2026-07-24 20:00:00'
  AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199

5 sesi, 2026-07-20 hingga 2026-07-24, dengan 0 baris hari libur di mana pun dalam jendela. SPY mencetak 1950 baris menit sesi reguler di seluruhnya. 2 sesi ditutup di atas penutupan sebelumnya dan 3 ditutup di bawahnya. Penutupan terjadwal berikutnya adalah Labor Day pada 2026-09-07.

Di geladak

Minggu berikutnya, baca dari tabel kami sendiri:

QueryPekan depan di kalender: penutupan, ex-dividen, pemecahan, dan penarikan kedaluwarsa
SQL tepat di balik setiap angka
SELECT
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date >= '2026-07-27' AND date <= '2026-07-31' AND status != 'open') AS closures_next_week,
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date >= '2026-07-27' AND ex_dividend_date <= '2026-07-31') AS ex_dividends_next_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-27' AND ex_dividend_date <= '2026-07-31') AS household_ex_div_next_week,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date >= '2026-07-27' AND execution_date <= '2026-07-31') AS splits_next_week,
    (SELECT round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260731') / sum(size), 1) FROM global_markets.options_trades WHERE sip_timestamp >= '2026-07-24 00:00:00' AND sip_timestamp < '2026-07-25 00:00:00') AS jul31_expiry_pct_of_friday_volume,
    (SELECT toString(max(settlement_date)) FROM global_markets.stocks_short_interest WHERE settlement_date <= '2026-07-24') AS latest_short_interest_settlement

Tabel hari libur menunjukkan 0 penutupan pada minggu berikutnya. 368 catatan ex-dividen jatuh di dalamnya, 0 dari kelompok rumah tangga, bersama 15 pemecahan saham yang dijadwalkan. Dari volume opsi hari Jumat, 14.2% sudah berada dalam kontrak yang kedaluwarsa pada hari Jumat berikutnya. Tanggal penyelesaian bunga pendek terbaru yang tercatat adalah 2026-07-15, sebuah berkas yang diterbitkan dengan jeda yang cukup lama sehingga memiliki penjelasannya sendiri.

FAQ

Bagaimana kinerja pasar saham pada pekan 20 Juli 2026?

SPY berubah -0.59% dari penutupan ke penutupan antara 17 Juli hingga 24 Juli, dengan QQQ di -1.59%, DIA di -0.38%, dan IWM di -0.98%. Di antara saham likuid, 2437 naik dan 3630 turun.

Sektor mana yang memimpin pada pekan 20 Juli 2026?

Energy, di 3.33%. Yang terlemah dari sebelas ETF sektor SPDR adalah Consumer Discretionary di -5.2%, tertinggal 8.53 poin persentase.

Berapa banyak sesi perdagangan dalam pekan 20 Juli 2026?

5, berlangsung 2026-07-20 hingga 2026-07-24, dengan 0 baris hari libur dalam jendela tersebut. Penutupan terjadwal berikutnya adalah Labor Day.

Ticker mana yang paling banyak diperdagangkan dalam dolar pada pekan 20 Juli 2026?

MU, dengan 158.1 miliar dolar volume jam reguler, unggul dari SPY di 133.9 miliar.

Catatan data

Semua stempel waktu yang tersimpan adalah UTC; jam reguler adalah 13:30-20:00 UTC per sesi, dan batas mingguan berjalan dari penutupan jam reguler 17 Juli hingga 24 Juli. Setiap panel perbandingan penutupan-ke-penutupan di sini membaca batang menit terakhir jam reguler di setiap sisi perbandingan, sehingga cetakan di jam tambahan tidak akan pernah menjadi penutupan mingguan. Peringkat tahun berjalan menggunakan return mingguan dari pembukaan ke penutupan, sehingga tidak akan cocok dengan papan skor penutupan-ke-penutupan; kedua definisi diberi label di tempat kemunculannya. Luas pasar mingguan dan papan pergerakan menerapkan filter omzet jam reguler sebesar lima juta dolar, dan luas pasar menerbitkan jumlah nama yang disisihkan oleh filter tersebut. Papan pergerakan mengecualikan nama yang pemecahan sahamnya terjadi setelah penutupan 17 Juli hingga 24 Juli, yaitu rentang waktu yang sama dengan perubahan diukur, yang mencakup pemecahan yang dicap pada akhir pekan di antaranya maupun yang dicap pada sesi; papan tersebut tidak mengecualikan ETF leverage dan invers, yang dapat mendominasi papan pada minggu yang bersifat directional. Bagian bawah pboard penurunan bisa mendekati kerugian total nilai kuotasi untuk minggu tersebut, dan papan tersebut menerbitkan berapa dari lima sesi setiap nama muncul. Panel spread SPY menghitung kuotasi satu sisi dan silang alih-alih membuangnya secara diam-diam, dan median diambil dari sisa kuotasi yang valid. File Treasury berjalan sekitar satu sesi di belakang pita dan indeks harian EDGAR tiba sesuai jadwalnya sendiri, sehingga panel suku bunga dan pengajuan melaporkan berapa hari data yang sebenarnya mereka miliki. Tidak ada indeks volatilitas tersirat yang muncul di sini: seri tersebut tidak dilisensikan ke gudang data ini, sehingga volatilitas dibaca dari pita melalui rentang, pangsa opsi hari yang sama, dan perilaku kuotasi.

Metodologi

  • Sumber data pasar: pita konsolidasi. delayed_stocks_minute_aggs untuk harga dan volume, cache_stocks_quotes untuk panel NBBO, options_trades untuk minggu opsi.
  • Penutupan: bar menit sesi reguler terakhir dari sesi tersebut, tidak pernah berupa cetakan pukul 16:00 yang diasumsikan dan tidak pernah berupa cetakan jam tambahan.
  • Sesi: diverifikasi dari tabel hari libur ditambah bar yang teramati, tidak pernah diasumsikan dari kalender.
  • Penanganan zona waktu: klausa WHERE menggunakan literal UTC mentah, dan toTimeZone hanya muncul dalam daftar SELECT untuk label ET.
  • Desimal: kolom harga, ukuran, dan volume diubah ke Float64 sebelum pembagian atau perkalian apa pun.
  • Agregat deterministik: kuantil eksak di seluruh bagian, dan setiap klaim urutan atau tanda dalam prosa dikodekan sebagai batas kewajaran.
  • Tanggal gudang data: 26 Juli 2026.

Tautan silang: edisi sebelumnya dari seri mingguan ini, apa itu selisih harga permintaan-penawaran, kapan opsi kedaluwarsa, minat jual pendek versus volume jual pendek, dan selisih imbal hasil dua tahun dengan sepuluh tahun.

Setiap kueri di atas berjalan tanpa perubahan di terminal Strasmore jika Anda ingin mengarahkan ulang jendela ke minggu yang berbeda.