Strasmore Research
Piyasa özetleri Matt ConnorYazan Matt Connor

20 Temmuz 2026 hafta piyasa özeti

Opsiyon vadesi sonrası haftada endeks skor tablosu, sektör dağılımı, haftalık genişlik ve sermaye akışı ölçüldü. SPY haftalık değişimi ve sıralaması raporlanmıştır.

20 Temmuz 2026 haftası, Temmuz ayı opsiyon vadesinin ardından gelen ilk tam haftaydı ve içinde kapanış olmayan 5 seans sürdü. SPY'nin haftalık kapanıştan kapanışa değişimi -0.59% oldu; açılıştan kapanışa ölçülen değişim, geriye dönük bir yıllık haftalar içinde 43 sırada yer aldı (53 hafta içinde). Aşağıdaki her rakam kayıtlı bir sorgudan okunur ve her pencere belirli tarihlere sabitlenmiştir; SQL yeniden çalıştırıldığında aynı değerler elde edilir.

Tahtada hafta

Haftalık değişimler 17 Temmuz Cuma günkü normal kapanıştan 24 Temmuz Cuma günküne kadar uzanır. Son sütun bir önceki haftayı taşır, böylece ikisi yan yana durur. Satırlar alfabetiktir.

SorgulaSPY / QQQ / DIA / IWM: 20 Temmuz haftası, 17 Temmuz kapanışına göre ve önceki haftanın değişimiyle
Her verinin arkasındaki tam SQL
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

Haftalık bazda: DIA -0.38%, IWM -0.98%, QQQ -1.59% ve SPY -0.59% hareket ederek $738.85 seviyesinden kapandı. Aynı alfabetik sıradaki bir önceki haftanın okumaları -0.95%, -0.63%, -4.17% ve -1.55% idi. Dört endeksin birbirinden ne kadar uzakta olduğu bir skor tahtasının ölçtüğü ilk şeydir ve bu her zaman küçük değildir.

Geçen yıla kıyasla haftalık performans

Bir haftalık rakam, arkasındaki dağılım olmadan anlam ifade etmez. Bu panel, her geçen haftayı aynı mantıkla, normal seansın açılışından kapanışına kadar yeniden hesaplar ve bu haftayı içinde sıralar.

SorgulaSPY'nin yıllık takip bağlamında haftası (açılış-kapanış haftalık getirileri)
Her verinin arkasındaki tam SQL
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
)

Bu şekilde ölçüldüğünde, SPY -1.1% getiri sağladı ve 2025-07-21'ya kadar giden 53 hafta içinde 43. sırada yer aldı. Tanım farkına dikkat edin: bu rakam haftanın ilk normal seans açılışından başlarken, yukarıdaki skor tablosu bir önceki haftanın kapanışından başlar. Her ikisi de göründükleri her yerde etiketlenmiştir.

Beş seans, tek bir yön

SorgulaSPY seans bazında: kapanış, değişim ve hisse hacmi, 20-24 Temmuz
Her verinin arkasındaki tam SQL
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

Seans seans, SPY'nin değişimi Pazartesi -0.15%, Salı 0.84%, Çarşamba -0.12%, Perşembe -1.22% ve Cuma 0.08% olarak gerçekleşti ve 40.1 milyon hisse işlem hacmiyle 738.85$ seviyesinden kapandı. Pazartesi rakamı, dönemin hemen öncesindeki seans olan 17 Temmuz kapanışına göre ölçülmüştür.

Genişlik, seans seans

Endeks seviyesi tek bir sayıdır. Genişlik ise o seviyeye kaç hissenin eşlik ettiğini ölçer. Yeşil bir haftanın geniş mi dar mı olduğunu belirleyen sayı budur.

SorgulaSeans başına yükselen ve düşen hisseler, 5 milyon $+ işlem görenler, 20-24 Temmuz
Her verinin arkasındaki tam SQL
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

Pazartesi günü 1268 ölçülen isimden 3945'i yükseldi, 2632'sı düştü. Cuma gününe gelindiğinde 3950 isim içinde bölünme 2273 yükselen, 1635 düşen şeklindeydi. Bir seansın her iki tarafında da kapanışı olmayan isimler hesaplama dışı bırakılır; bu nedenle ölçülen sayı günden güne hafifçe dalgalanır.

Aynı soru, tüm hafta boyunca tek seferde soruldu:

SorgulaHaftalık yaygınlık: 24 Temmuz normal kapanışı, 17 Temmuz normal kapanışına göre, hafta boyunca 5 milyon $+ işlem gören hisseler
Her verinin arkasındaki tam SQL
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
    )
)

Beş milyon dolarlık normal seans işlem hacmi barajını aşan 6100 isim arasında 2437'i 17 Temmuz kapanışının üzerinde, 3630'si altında kapandı; yükselenlerin payı 40% oldu. Likidite filtresi, hafta boyunca bu barajın altında işlem gören 5099 ismi daha ayırdı. Bunlar sessizce atılmak yerine burada sayılmaktadır.

Sektör skor tablosu

On bir SPDR sektör ETF'si, 17 Temmuz kapanışından 24 Temmuz kapanışına, en iyiden en kötüye sıralandı.

SorgulaSektör ETF'leri, tam hafta değişimi: 24 Temmuz kapanışı, 17 Temmuz kapanışına göre
Her verinin arkasındaki tam SQL
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 tahtanın zirvesinde 3.33% seviyesinde yer aldı. Consumer Discretionary ise -5.2% ile en altta kaldı, 8.53 puan gerisinde. Bu fark haftanın sektör dağılımıdır ve tek başına okunmaya değer: on bir sektörün tümü birbirine bir puan içinde yaklaştığı bir hafta, farkın çift hanelere ulaştığı bir piyasadan çok farklıdır.

Dolarlar nereye gitti

SorgulaNormal saatlerde dolar hacmine göre en yüksek hisseler, tam hafta 20-24 Temmuz
Her verinin arkasındaki tam SQL
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, beş seans boyunca 158.1 milyar dolar normal seans cirosu üretti. Bu, SPY'nin 133.9 milyar dolar ve QQQ'nün 101.5 milyar dolar cirosunun üzerinde. Sıralamada sekizinci sıradaki AAPL, liderin dolar cirosunun 34.5%'sini işlem gördü. Ciro kayıtları, piyasanın haftasını tartışarak geçirdiği yeri gösterir ve bu, fiyatla aynı fikirde olmak zorunda değildir. Bu ölçütün hisse bazlı versiyonu bağıl hacim'dir.

Haftanın en büyük hareket edenleri

Bölünmeler fiyatı değiştirmeden görüntüyü değiştirir: ters bölünme sahte bir dört haneli kazanç, ileri bölünme ise aynı büyüklükte sahte bir çöküş üretir. Haftada 25 ters bölünme ve 11 ileri bölünme gerçekleşti ve aşağıdaki her iki tablo da, değişimin tam olarak ölçüldüğü aralık olan 17 Temmuz kapanışı ile 24 Temmuz kapanışı arasında bölünmesi gerçekleşen herhangi bir hisseyi hariç tutar. Her ikisi de beş milyon dolarlık normal işlem saati cirosu şartı arar.

SorgulaHaftalık hareketliler: en büyük on yükselen ve düşen, normal saat kapanışları, 5 milyon $+ işlem görenler, bölünmeler hariç
Her verinin arkasındaki tam SQL
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

Herhangi bir tabloya girmek gerçek bir hareket gerektirdi. Gösterilen en ılımlı yükselen 92.3% arttı ve en ılımlı düşen -47.8% kaydetti. Uç noktalarda, STAK, 251.6 milyon dolar işlem hacminde 383.7% hareket etti ve LBGJ, 47.7 milyon dolarda -98.8% hareket etti. Bu düşüş, hissenin tüm değerine yakındır, bu nedenle tablo kendi makbuzunu taşır: LBGJ, beş seansın 5'unda normal işlem saati çubukları kaydetti ve tablonun ölçtüğü iki kapanış arasında buna karşı hiçbir bölünme gerçekleşmedi.

İşlem bazında kote edilmiş spread

Fiyat manşette yer alır. İşlemin gerçekleştirilme maliyeti ise kote edilmiş spread olup, burada SPY üzerinde her bir işlem seansı için, herhangi bir özete başvurmaksızın doğrudan ham NBBO kaydından ölçülmüştür.

SorgulaSPY medyan kotasyon spread'i ve seans başına NBBO güncellemeleri, normal saatler, 20-24 Temmuz
Her verinin arkasındaki tam SQL
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)

SPY'nin medyan kote edilmiş spread'i Pazartesi günü orta fiyatın 0.27 baz puanı, Cuma günü ise 0.27 baz puanı olarak ölçülmüş olup, sırasıyla 3.89 milyon ve 4.4 milyon NBBO güncellemesi üzerinden hesaplanmıştır. Son iki sütun bulgu değil, açıklama niteliğindedir: Pazartesi gününe ait medyandan 0 tek taraflı kotasyon ve 1084 çapraz kotasyon sessizce çıkarılmak yerine sayılmıştır. Alış fiyatının satış fiyatının üzerinde olduğu çapraz kotasyon, birçok işlem platformundan gelen verilerin nanosaniye hassasiyetinde birleştirilmesiyle oluşan konsolide akışın olağan bir yapay ürünüdür.

Aylık vade sonunun ardından gelen opsiyon haftası

Temmuz ayı aylık vade sonu, bu hafta başlamadan önceki Cuma gününe denk geldi. Bu nedenle bu beş seansta işlem gören her sözleşme, o vade sonundan sağ çıkmış durumda. Vade sonu zamanlaması, aynı gün içinde işlem yapan kalabalığın uyduğu ritmi belirler.

SorgulaOpsiyon kontratları, aynı gün hisse ve çağrı hisse payı, seans bazında, 20-24 Temmuz
Her verinin arkasındaki tam SQL
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)

Sözleşme hacmi Pazartesi günü 64 milyon, Cuma günü ise 71.1 milyon olarak gerçekleşti. Aynı gün içinde vadesi dolan sözleşmelerin payı, yani işlem gördükleri seansta sona erenler, Pazartesi için 40.2%, haftanın vade sonu seansı olan Cuma için ise 49% olarak okundu. Alım opsiyonları, Cuma günkü sözleşme hacminin 53.5%'ini oluşturdu. Ve o Cuma gününün çekiciliği, açılış seansından itibaren görüldü: Pazartesi hacminin 15.1%'i, vadesi o Cuma günü dolacak sözleşmelerdeydi.

Hafta boyunca faiz oranları

SorgulaSeans bazında Hazine eğrisi, 17 Temmuz baskısından 24 Temmuz'a
Her verinin arkasındaki tam SQL
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

17 Temmuz baskısından ölçüldüğünde, on yıllık faiz 16 baz puan hareket ederek dosyadaki son baskıda 4.71% seviyesine ulaştı; iki yıllık 4.37%, otuz yıllık ise 5.17% oldu. iki-on yıllık getiri farkı seriyi 34 baz puandan tamamladı. Hazine'nin dosyası piyasa verilerinin yaklaşık bir seans gerisinden geldiğinden, bu panelde her biri tabloda tarihlendirilmiş 5 baskı yer almaktadır.

Açıklar: günlük dosyalar

FINRA, günlük açığa satış hacmi dosyası yayımlar. Açığa satış hacmi, pozisyon değil brüt günlük akıştır ve bu dosyalar bazen kesik gelir; bu nedenle, herhangi bir oran alıntılanmadan önce kapsama ölçülür.

SorgulaGünlük açığa satış hacmi dosya kapsamı: dosyadaki semboller ve açığa satılan hisseler, 20-24 Temmuz
Her verinin arkasındaki tam SQL
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

Hafta için 5 günlük dosya mevcuttur. İlk dosya 15098 ticker ve 4.71 milyar açık işaretli hisse içerir; son dosya 15062 ticker ya da en dolu dosyanın ticker sayısının 99.7%'sini içerir. Komşularının oldukça altında kalan bir dosyadan çıkarılan herhangi bir hisse başına açığa satış hacmi iddiası, o dosya yeniden yayımlanana kadar doğrulanamaz durumda kalır.

Haftanın takvimi

SorgulaSEC başvuruları, seans ve form türüne göre, 20-24 Temmuz
Her verinin arkasındaki tam SQL
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

Dosyadaki ilk seansta 3012 başvuru yer aldı; bunların 632'ü içeriden Form 4 raporu, 166'i ise 8-K idi. Son seansta 3814 başvuru bulunuyordu; 644 Form 4 ve 223 8-K şeklindeydi. Haftanın seanslarının 5'u için EDGAR günlük endeksi dosyada mevcut; bu endeks kendi takvimine göre yayımlanıyor ve bazen kayıtların gerisinde kalıyor.

SorgulaHaftanın kurumsal takvimi: temettüler, bölünmeler, listelenmeler, haberler
Her verinin arkasındaki tam SQL
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

Haftanın kalan evrakı: 5 endekslenmiş güne yayılan 17106 SEC başvurusu, 592 temettü kaydı (bunların 1'ü bu panelin takip ettiği on bilinen şirkete ait), 25 ters ve 11 düz hisse bölünmesi, 4 yeni halka arz ve 2 yayıncıdan 1704 makale. Son iki kalem, bir beslemenin kapsama alanını ölçer, tüm piyasayı değil.

Seanslar, doğrulandı

SorgulaSeans doğrulaması: seanslar, çubuklar, tatil satırları, yükselen ve düşen kapanışlar, sonraki kapanış
Her verinin arkasındaki tam SQL
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 seans, 2026-07-20 ile 2026-07-24 arasında, pencerede herhangi bir yerde 0 tatil satırı bulunuyor. SPY bu seanslarda 1950 normal seanslık dakika barı üretti. 2 seans önceki kapanışın üzerinde kapandı, 3 seans ise altında kapandı. Bir sonraki planlanan kapanış 2026-09-07 tarihinde Labor Day.

Sıradaki

Gelecek hafta, kendi tablolarımızdan okunanlar:

SorgulaTakvimde gelecek hafta: kapanışlar, temettü dışı günler, bölünmeler ve vade sonu çekilmesi
Her verinin arkasındaki tam SQL
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

Tatil takvimi, takip eden haftada 0 tatili göstermektedir. 368 temettü kaydı tarihi hafta içine denk gelmektedir; 0’i hanehalkı setinden olmak üzere, 15 planlanmış hisse bölünmesi de yer almaktadır. Cuma günkü opsiyon hacminin 14.2%’si zaten bir sonraki Cuma günü sona erecek kontratlarda işlem görmekteydi. Dosyadaki en güncel kısa faiz kapanış tarihi 2026-07-15 olup, bu dosya yeterli gecikmeyle yayınlanarak kendine özgü açıklamasına sahiptir.

SSS

Borsa 20 Temmuz 2026 haftasında nasıl performans gösterdi?

SPY, 17 Temmuz'dan 24 Temmuz'a kapanıştan kapanışa -0.59% değişti. QQQ -1.59%, DIA -0.38% ve IWM -0.98% seviyesindeydi. Likit hisseler arasında 2437 yükselirken 3630 düştü.

20 Temmuz 2026 haftasında hangi sektör öne çıktı?

Energy, 3.33% seviyesinde. On bir SPDR sektör ETF'si arasında en zayıfı Consumer Discretionary oldu, -5.2% seviyesinde ve 8.53 puan geride kaldı.

20 Temmuz 2026 haftasında kaç işlem seansı vardı?

5, 2026-07-20 ile 2026-07-24 arasında, pencerede 0 tatil satırı bulunuyor. Bir sonraki planlı kapanış Labor Day.

20 Temmuz 2026 haftasında hangi hisse senedinde en yüksek işlem hacmi gerçekleşti?

MU, normal seans cirosu 158.1 milyar dolar ile, SPY'nin 133.9 milyar dolarının önünde yer aldı.

Veri notları

Tüm kayıtlı zaman damgaları UTC'dir; normal seans 13:30-20:00 UTC dakikadır ve hafta sınırları 17 Temmuz normal kapanışından 24 Temmuz'a kadar uzanır. Buradaki her kapanıştan kapanışa panel, karşılaştırmanın her iki tarafındaki son normal seans dakika çubuğunu okur, bu nedenle uzatılmış seans baskısı asla haftalık kapanış belirleyemez. Geçen yıl sıralaması açılıştan kapanışa haftalık getirileri kullanır, bu nedenle kapanıştan kapanışa skor tablosuyla eşleşmez; her iki tanım da göründükleri yerde etiketlenmiştir. Haftalık yaygınlık ve hareket tabloları beş milyon dolarlık normal seans işlem hacmi filtresi uygular ve yaygınlık, filtrenin dışarıda bıraktığı isimlerin sayısını yayınlar. Hareket tabloları, bölünmesi 17 Temmuz kapanışından 24 Temmuz'a kadar (değişimin tam olarak ölçüldüğü aralık) gerçekleşen herhangi bir ismi hariç tutar; bu, aradaki hafta sonuna damgalanan bir bölünmeyi ve bir seansa damgalananı yakalar; kaldıraçlı ve ters ETF'leri hariç tutmazlar, bunlar yönlü bir haftada bir tabloya hakim olabilir. Düşüş tablosunun alt kısmı, hafta için alıntılanan değerin tamamen kaybına yakın olabilir ve bu tablo, her ismin beş seansın kaçında işlem gördüğünü yayınlar. SPY spread paneli, tek taraflı ve çapraz kotasyonları sessizce düşürmek yerine sayar ve medyan, kalan geçerli kotasyonlar üzerinden alınır. Hazine dosyası, banttan yaklaşık bir seans geriden gelir ve EDGAR günlük endeksi kendi takvimine göre yayınlanır, bu nedenle oranlar ve başvuru panelleri, gerçekte kaç gün tuttuklarını bildirir. Burada hiçbir zımni volatilite endeksi görünmez: bu seriler bu veri ambarına lisanslanmamıştır, bu nedenle volatilite, aralıklar, aynı gün opsiyon payı ve kotasyon davranışı yoluyla banttan okunur.

Metodoloji

  • Piyasa veri kaynağı: konsolide bant. delayed_stocks_minute_aggs fiyat ve hacimler için, cache_stocks_quotes NBBO paneli için, options_trades opsiyon haftası için.
  • Kapanış: seansın son normal seans dakika çubuğu; asla varsayılan 16:00 baskısı veya seans dışı baskı değildir.
  • Seanslar: tatil tablosu ve gözlemlenen çubuklardan doğrulanır; asla takvimden varsayılmaz.
  • Saat dilimi işleme: WHERE yan tümceleri ham UTC değişmezlerini kullanır ve toTimeZone yalnızca ET etiketleri için SELECT listelerinde yer alır.
  • Ondalıklar: fiyat, büyüklük ve hacim sütunları herhangi bir bölme veya çarpma işleminden önce Float64'e dönüştürülür.
  • Belirleyici toplamlar: tüm hesaplamalarda tam çeyreklikler kullanılır ve düzyazıdaki her sıralama veya işaret iddiası bir tutarlılık sınırı olarak kodlanır.
  • Veri ambarı tarihi: 26 Temmuz 2026.

Çapraz bağlantılar: bu haftalık serinin önceki sayısı, alış-satış farkının ne olduğu, opsiyonların ne zaman sona erdiği, açığa satış faizinin açığa satış hacmine karşılığı ve iki yıl ile on yıl arasındaki fark.

Yukarıdaki her sorgu, bir pencereyi farklı bir veriye yönlendirmek isterseniz Strasmore terminalinde değişiklik yapılmadan çalışır.