Strasmore Research
Piyasa özetleri Matt ConnorYazan Matt Connor · Güncellendi 2026-07-24

2 Temmuz 2026 Piyasa Özeti

Tatil öncesi piyasalarda rotasyon gözlendi. Nasdaq düşerken DIA yükseldi. Teknoloji sektörü geriledi ve bellek hisselerinde satış baskısı devam etti.

4 Temmuz 2026 Perşembe — Bağımsızlık Günü tatili öncesindeki son seans — satış baskısı altında bir rotasyon günü olarak gerçekleşti. QQQ -1.71% seviyesinde kapanırken DIA 1.04% oranında yükseldi ve piyasa genişliği POZİTİF seyretti: 3398 likit hisse yükselirken 2758 oranında işlem gördü; büyüme endeksi düşerken işlemlerin 54.6% kısmı yeşil kapattı. On bir sektör fonundan sekizi yükselişle kapandı; satışlar teknoloji ve bir önceki gün kırılan bellek kompleksinde yoğunlaştı.

Skor tabelası

SorgulaSPY / QQQ / DIA / IWM — 2 Temmuz, 1 Temmuz kapanışına göre, normal seans
Her verinin arkasındaki tam SQL
WITH prior AS (
    SELECT ticker, argMax(close, window_start) AS prior_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
      AND window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00'
    GROUP BY ticker
),
sess AS (
    SELECT ticker,
           argMin(open, window_start) AS day_open,
           argMax(close, window_start) AS day_close,
           max(high) AS day_high,
           min(low) AS day_low,
           round(toFloat64(sum(volume)) / 1e6, 1) AS shares_traded_m
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
      AND window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00'
    GROUP BY ticker
)
SELECT
    s.ticker AS ticker,
    round(toFloat64(p.prior_close), 2) AS prior_close,
    round(toFloat64(s.day_open), 2) AS day_open,
    round(toFloat64(s.day_close), 2) AS day_close,
    round((toFloat64(s.day_close) / toFloat64(p.prior_close) - 1) * 100, 2) AS pct_change,
    round(toFloat64(s.day_high), 2) AS day_high,
    round(toFloat64(s.day_low), 2) AS day_low,
    s.shares_traded_m AS shares_traded_m
FROM sess s
JOIN prior p ON s.ticker = p.ticker
ORDER BY s.ticker

Günün özeti tek bir satırda: DIA, 1.04% seviyesindeyken QQQ -1.71% seviyesinde seyrediyor; sanayi ve büyüme hisseleri arasında günlük getiride yaklaşık üç puanlık fark bulunuyor. SPY, -0.12% ile aradaki farkı kapattı; IWM ise -0.59% seviyesinden kapandı.

Gün olağan dışı mıydı?

Tek bir panelde iki bakış açısı: SPY'ın açılıştan kapanışa hareketi ve QQQ'ın kapanıştan kapanışa hareketi; her biri mutlak büyüklüğe göre geride kalan aya göre sıralanmıştır (sıra 1 = en büyük).

SorgulaSPY ve QQQ son bir aylık seanslara göre sıralama (sıra 1 = en büyük mutlak hareket)
Her verinin arkasındaki tam SQL
WITH per_day AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           (argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100 AS oc_pct,
           argMax(toFloat64(close), window_start) AS rth_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'QQQ')
      AND window_start >= toDateTime('2026-06-02 00:00:00')
      AND window_start < toDateTime('2026-07-03 00:00:00')
      AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
    GROUP BY ticker, d
),
with_prev AS (
    SELECT ticker, d, oc_pct,
           lagInFrame(rth_close) OVER (PARTITION BY ticker ORDER BY d) AS prev_close,
           (rth_close / lagInFrame(rth_close) OVER (PARTITION BY ticker ORDER BY d) - 1) * 100 AS cc_pct
    FROM per_day
)
SELECT
    round(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-02')), 2) AS spy_open_to_close_pct,
    arrayCount(x -> x > abs(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-02'))),
               groupArrayIf(abs(oc_pct), ticker = 'SPY' AND d != toDate('2026-07-02'))) + 1 AS spy_abs_move_rank,
    countIf(ticker = 'SPY') AS spy_sessions_compared,
    round(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-02')), 2) AS qqq_close_over_close_pct,
    arrayCount(x -> x > abs(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-02'))),
               groupArrayIf(abs(cc_pct), ticker = 'QQQ' AND d != toDate('2026-07-02') AND isFinite(cc_pct) AND prev_close > 0)) + 1 AS qqq_abs_move_rank,
    countIf(ticker = 'QQQ' AND isFinite(cc_pct) AND prev_close > 0) AS qqq_sessions_compared,
    toString(minIf(d, ticker = 'SPY')) AS first_session
FROM with_prev

Endeks düzeyinde hayır. SPY'ın -0.35% açılıştan kapanışa hareketi, geride kalan 22 oturumun 15'u arasındadır — yani alt yarımdadır. QQQ daha hareketliydi ancak yine de uç noktalarda değildi: -1.71% kapanıştan kapanışa hareketi, belirlenmiş bir önceki kapanışa sahip geride kalan 21 oturumun 9'ü arasındadır ve 2026-06-02'e kadar uzanmaktadır — büyüme endeksi için orta sıralarda bir kötü gün. 2 Temmuz'daki hareketlilik tekil hisselerde görülmüştür.

Piyasa Genişliği: yeşil bant, kırmızı büyüme endeksi

Sorgula2 Temmuz'da en az 1 milyon $ işlem hacmi olan hisselerde yükselenler vs düşenler
Her verinin arkasındaki tam SQL
WITH per_ticker AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-02 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-02 00:00:00')) AS day_close,
        sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-02 00:00:00') AS day_dollar_volume
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE (window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00')
       OR (window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00')
    GROUP BY ticker
)
SELECT
    countIf(day_close > prior_close AND day_dollar_volume >= 1000000) AS advancers,
    countIf(day_close < prior_close AND day_dollar_volume >= 1000000) AS decliners,
    countIf(day_close = prior_close AND day_dollar_volume >= 1000000) AS unchanged,
    countIf(day_dollar_volume >= 1000000) AS liquid_tickers,
    count() AS tickers_traded_both_sessions,
    count() - countIf(day_dollar_volume >= 1000000) AS dropped_by_liquidity_filter,
    round(100.0 * countIf(day_close > prior_close AND day_dollar_volume >= 1000000)
        / countIf(day_dollar_volume >= 1000000), 1) AS advancer_pct,
    reverse(arrayStringConcat(extractAll(reverse(toString(countIf(day_close > prior_close AND day_dollar_volume >= 1000000))), '[0-9]{1,3}'), ',')) AS advancers_fmt,
    reverse(arrayStringConcat(extractAll(reverse(toString(countIf(day_close < prior_close AND day_dollar_volume >= 1000000))), '[0-9]{1,3}'), ',')) AS decliners_fmt,
    reverse(arrayStringConcat(extractAll(reverse(toString(count() - countIf(day_dollar_volume >= 1000000))), '[0-9]{1,3}'), ',')) AS dropped_by_liquidity_filter_fmt,
    reverse(arrayStringConcat(extractAll(reverse(toString(count())), '[0-9]{1,3}'), ',')) AS tickers_traded_both_sessions_fmt
FROM per_ticker
WHERE prior_close > 0 AND day_close > 0

3,398 yükselen, 2,758 düşen, 63 değişmeyen — QQQ düşerken likit banttaki hisselerin 54.6%'u yükseldi. Piyasa değerine göre ağırlıklandırılmış endeksler ile eşit ağırlıklı genişlik farklı yanıtlar verdi; bu tür günler her iki göstergenin de panelde yer almasının nedenidir. Filtre, bir milyon doların altında işlem gören 11,536 adet 11,536 çift oturumlu sembolün 5,317'sini devre dışı bırakıyor.

Sektör bazında: yükselişin yoğunlaştığı alanlar

Piyasa genişliği hisse sayısını belirtir; ancak hangi türden olduklarını söylemez. On bir SPDR sektör ETF'si seansı sektör bazında incelediğinde, en iyi ve en kötü performans arasındaki fark, günün dağılımını tek bir rakamla gösterir.

SorgulaOn bir SPDR sektör ETF'si — 2 Temmuz kapanış vs 1 Temmuz kapanış, normal seans
Her verinin arkasındaki tam SQL
WITH per_etf AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-02 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-02 00:00:00')) AS day_close,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-02 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('XLB', 'XLC', 'XLE', 'XLF', 'XLI', 'XLK', 'XLP', 'XLRE', 'XLU', 'XLV', 'XLY')
      AND ((window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00')
        OR (window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00'))
    GROUP BY ticker
)
SELECT
    ticker,
    round(prior_close, 2) AS prior_close,
    round(day_close, 2) AS day_close,
    round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
    round((day_close / prior_close - 1) * 100 - min((day_close / prior_close - 1) * 100) OVER (), 2) AS pts_above_worst_sector,
    day_dollar_bn
FROM per_etf
ORDER BY ticker

Sağlık (XLV) 2.63% ile listenin başında yer aldı; ardından kamu hizmetleri 2.23%, temel tüketim 2% ve materyaller 1.94% geldi. Teknoloji (XLK) -2.71% ile son sırada yer aldı ve bir puandan fazla düşüş yaşayan tek sektör oldu; tüketici tercihlerine yönelik harcamalar (-0.81%) ve iletişim hizmetleri (-0.13%) diğer kırmızı fonlar olurken, kalan sekiz fon yükseliş gösterdi. En iyiden en kötüye dağılım: 5.34 yüzde puan. DIA'nın yükselip QQQ'nun düşmesi durumu, sadece dört dev şirketle sınırlı kalmayıp piyasanın geneline yayıldı; bu nedenle düşen bir Nasdaq altında yükselen bir yükseliş-düşüş çizgisi çelişki teşkil etmez.

Günün özeti: bellek sektöründe satış dalgası, ikinci gün

Çarşamba günü başlayan düşüş Perşembe günü şiddetlendi; temel neden aynı kalsa da düşüşün boyutu ve eşanlı hareket arttı.

SorgulaBellek ve depolama hisseleri: Çarşamba kapanışına göre değişim, aralık zamanlaması ve dolar hacmi
Her verinin arkasındaki tam SQL
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-02 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-02 00:00:00')) AS day_close,
        maxIf(toFloat64(high), window_start >= '2026-07-02 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-07-02 00:00:00') AS day_low,
        argMinIf(window_start, toFloat64(low), window_start >= '2026-07-02 00:00:00') AS low_bar,
        argMaxIf(window_start, toFloat64(high), window_start >= '2026-07-02 00:00:00') AS high_bar,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-02 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('MU', 'SNDK', 'STX', 'WDC')
      AND ((window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00')
        OR (window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00'))
    GROUP BY ticker
)
SELECT
    ticker,
    round(prior_close, 2) AS prior_close,
    round(day_close, 2) AS day_close,
    round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
    round(day_high, 2) AS day_high,
    formatDateTime(toTimeZone(high_bar, 'America/New_York'), '%H:%i') AS day_high_et,
    round(day_low, 2) AS day_low,
    formatDateTime(toTimeZone(low_bar, 'America/New_York'), '%H:%i') AS day_low_et,
    round((day_high / day_low - 1) * 100, 2) AS range_pct,
    day_dollar_bn
FROM per_name
ORDER BY ticker

SanDisk -14.32%, Seagate -10.38%, Western Digital -9.92%, MU -5.57% oranında değer kaybetti — MU işlem hacmi $51.4 milyar seviyesindeydi ve bu miktar SPY hacminin yaklaşık bir buçuk katına tekabül ediyordu. MU ve SanDisk en düşük seviyelerini gün sonunda (15:26, 15:26 ET), Seagate ve Western Digital ise daha erken saatlerde (14:23, 13:59) gördü. Bağlam: Çarşamba ve MU derinlemesine analizi.

Dev şirketlerdeki rotasyonun diğer yarısı:

SorgulaMegacap rotasyonu: Çarşamba kapanışına göre değişim, aralık zamanlaması ve dolar hacmi
Her verinin arkasındaki tam SQL
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-02 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-02 00:00:00')) AS day_close,
        maxIf(toFloat64(high), window_start >= '2026-07-02 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-07-02 00:00:00') AS day_low,
        argMinIf(window_start, toFloat64(low), window_start >= '2026-07-02 00:00:00') AS low_bar,
        argMaxIf(window_start, toFloat64(high), window_start >= '2026-07-02 00:00:00') AS high_bar,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-02 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('AAPL', 'MSFT', 'NVDA', 'TSLA')
      AND ((window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00')
        OR (window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00'))
    GROUP BY ticker
)
SELECT
    ticker,
    round(prior_close, 2) AS prior_close,
    round(day_close, 2) AS day_close,
    round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
    round(day_high, 2) AS day_high,
    formatDateTime(toTimeZone(high_bar, 'America/New_York'), '%H:%i') AS day_high_et,
    round(day_low, 2) AS day_low,
    formatDateTime(toTimeZone(low_bar, 'America/New_York'), '%H:%i') AS day_low_et,
    round((day_high / day_low - 1) * 100, 2) AS range_pct,
    day_dollar_bn
FROM per_name
ORDER BY ticker

AAPL, tek yönlü bir seyirle 4.75% yükseldi — en düşük seviyesini 09:30 ET, en yüksek seviyesini ise kapanıştan üç dakika önce 15:57 saatinde gördü; TSLA ise -7.65% ile bunun tam tersi bir hareket sergiledi. MSFT 1.41% kazanç sağladı; NVDA -1.55% ile kapandı. Aynı endeks, zıt günler.

İşlemlerin yoğunlaştığı alanlar

Sorgulaİki şekilde hacim liderleri: İşlem hacmine göre ilk 6, hisse sayısına göre ilk 4 (doğrulama bekleyen mükerrer sembol hariç)
Her verinin arkasındaki tam SQL
SELECT ticker, leaderboard, dollar_volume_bn, if(dollar_volume_bn < 1, dollar_volume_m, NULL) AS dollar_value_m, shares_m,
    round(100 * if(leaderboard = 'by dollars traded', dollar_volume_bn, shares_m)
        / max(if(leaderboard = 'by dollars traded', dollar_volume_bn, shares_m)) OVER (PARTITION BY leaderboard), 1) AS pct_of_board_leader
FROM (
    SELECT
        'by dollars traded' AS leaderboard,
        ticker,
        round(sum(toFloat64(close) * toFloat64(volume)) / 1e9, 2) AS dollar_volume_bn,
        round(sum(toFloat64(close) * toFloat64(volume)) / 1e6, 0) AS dollar_volume_m,
        round(sum(toFloat64(volume)) / 1e6, 1) AS shares_m
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00'
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker
    ORDER BY dollar_volume_bn DESC
    LIMIT 6
    UNION ALL
    SELECT
        'by shares traded' AS leaderboard,
        ticker,
        round(sum(toFloat64(close) * toFloat64(volume)) / 1e9, 2) AS dollar_volume_bn,
        round(sum(toFloat64(close) * toFloat64(volume)) / 1e6, 0) AS dollar_volume_m,
        round(sum(toFloat64(volume)) / 1e6, 1) AS shares_m
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00'
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker
    ORDER BY shares_m DESC
    LIMIT 4
)
ORDER BY leaderboard ASC, if(leaderboard = 'by dollars traded', dollar_volume_bn, shares_m) DESC

MU'nun $51.4 milyar tutarındaki hacmi, SPY'ın $32.7 milyar tutarındaki hacmine karşı üst üste dördüncü seansta (Pazartesi, Salı, Çarşamba) piyasaya yön verdi. SanDisk'in $26.57 milyar tutarındaki hacmi ise ilk dört içerisindeki ikinci bellek şirketini belirledi. 3x-ters yarı iletken ETF'si olan SOXS, 748.2 milyon ile hisse senedi tablosunda zirvede yer aldı: ucuz hisseler hisse adedi bazında, pahalı hisseler ise dolar tutarı bazında baskınlık kurar; göreli hacim ise bu değerleri ilgili hissenin kendi normuna göre karşılaştırır. Temel: 2 Temmuz normal işlem saatleri, bir kez kullanılan sembol listesi hariç tutulmuştur (makbuzlar).

Sorgula30 dakikalık dilim başına işlem gören hisse sayısı, normal seans (milyarlar)
Her verinin arkasındaki tam SQL
SELECT
    formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
    round(sum(toFloat64(volume)) / 1e9, 2) AS shares_bn,
    round(100 * sum(toFloat64(volume)) / max(sum(toFloat64(volume))) OVER (), 1) AS pct_of_biggest_bucket
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00'
GROUP BY et_time
ORDER BY et_time

Açılıştaki ilk yarım saatte 2.13 milyar hisse, 14:30 seviyesinde 0.81 milyar ile en düşük hacim ve tatil öncesi kapanışta 2.3 milyar; kapanış müzayedesi bekleyen emirleri tek bir fiyatta topladığı için son dilim günün en büyük hacmine sahiptir.

Opsiyon piyasası: kayan haftalık vadeler

SorgulaTüm opsiyon günü için tek satır: hacim, aynı gün vade dolanlar, tatil kaynaklı kaymış hafta ve Temmuz ayı
Her verinin arkasındaki tam SQL
WITH
    (
        SELECT (any(underlying_symbol), any(toFloat64(strike_price)), any(option_type),
                any(toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6)))),
                sum(size), count(), round(avg(toFloat64(price)), 3))
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'
        GROUP BY ticker
        ORDER BY sum(size) DESC
        LIMIT 1
    ) AS top_contract,
    (
        SELECT round(toFloat64(argMax(close, window_start)), 2)
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY' AND window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00'
    ) AS spy_regular_close
SELECT
    round(count() / 1e6, 2) AS option_prints_m,
    round(toFloat64(sum(size)) / 1e6, 2) AS contracts_m,
    round(100.0 * sumIf(size, option_type = 'C') / sum(size), 1) AS call_pct_of_volume,
    round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260702') / sum(size), 1) AS same_day_expiry_pct,
    round(toFloat64(sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260702')) / 1e6, 2) AS thu_jul2_expiry_contracts_m,
    countIf(substring(ticker, length(ticker) - 14, 6) = '260703') AS fri_jul3_expiry_prints,
    round(toFloat64(sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260710')) / 1e6, 2) AS jul10_weekly_contracts_m,
    round(toFloat64(sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260717')) / 1e6, 2) AS jul17_monthly_contracts_m,
    round(toFloat64(sumIf(size, underlying_symbol = 'SPY')) / 1e6, 2) AS spy_contracts_m,
    round(toFloat64(sumIf(size, underlying_symbol = 'QQQ')) / 1e6, 2) AS qqq_contracts_m,
    top_contract.1 AS top_contract_underlying,
    top_contract.2 AS top_contract_strike,
    top_contract.3 AS top_contract_type,
    top_contract.4 AS top_contract_expiry,
    top_contract.5 AS top_contract_volume,
    reverse(arrayStringConcat(extractAll(reverse(toString(assumeNotNull(top_contract.5))), '[0-9]{1,3}'), ',')) AS top_contract_volume_fmt,
    round(top_contract.7, 3) AS top_contract_avg_price,
    round(top_contract.2 - spy_regular_close, 2) AS top_strike_minus_spy_close,
    round(spy_regular_close - top_contract.2, 2) AS spy_close_minus_strike
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'

13.15 milyon işlem üzerinden toplamda 80.96 milyon kontrat işlem gördü ve bu hacmin 47.4% kısmı aynı Perşembe günü vadeliydi. Gün boyunca 3 Temmuz vadeli hiçbir kontrat işlem görmedi (0 işlem), bu nedenle Perşembe günü hem günlük vade sonu hem de haftalık vadelerin kayması aynı anda gerçekleşti. En yoğun işlem gören kontrat, aynı gün vadeli SPY $740 put opsiyonuydu — ortalama $0.499 prim ile 540,403 kontrat; SPY, kullanım fiyatının 4.8 dolar üzerinde kapandı: kullanım dışı kaldı ve Salı ve Çarşamba günleri call opsiyonların hakim olduğu bir tabloda put opsiyonu görüldü. Hacmin 58.4% kısmını hala call opsiyonlar oluşturdu; bir sonraki haftalık vade 9.64 milyon kontrat çekerken, Temmuz aylık vadeli opsiyonu 8.82 milyon kontrat oldu (vade sonu mekanikleri).

The quote tape: what it cost to trade

Prices say what happened; quotes say what it cost. The bid-ask spread is the toll on every round trip, in basis points of the mid-price (a basis point is a hundredth of a percent). We measure it every session, ordinary or not — which is what makes "spreads blew out" a falsifiable claim.

SorgulaHisselerin NBBO güncelleme sayısı: 2 Temmuz vs 1 Temmuz, sembol bazlı güncellemeler (milyonlar)
Her verinin arkasındaki tam SQL
SELECT
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-02')) / 1e6, 2) AS jul2_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-01')) / 1e6, 2) AS jul1_updates_m,
    round((countIf(toDate(sip_timestamp) = toDate('2026-07-02')) / countIf(toDate(sip_timestamp) = toDate('2026-07-01')) - 1) * 100, 1) AS day_over_day_pct,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-02') AND ticker = 'SPY') / 1e6, 2) AS jul2_spy_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-02') AND ticker = 'QQQ') / 1e6, 2) AS jul2_qqq_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-02') AND ticker = 'MU') / 1e6, 2) AS jul2_mu_updates_m
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-07-01 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'

The national best bid and offer — the top of the consolidated book — was rewritten 597.22 million times on July 2 against 449.15 million on July 1: a 33% jump into the closure. QQQ took 7.56 million, above SPY's 5.42 million; MU 1.01 million.

SorgulaBaz puan cinsinden medyan alış-satış farkı, normal seans — endeks ETF'leri, megacaplar ve bellek hisseleri
Her verinin arkasındaki tam SQL
SELECT
    ticker,
    round(med_bps, 2) AS median_spread_bps,
    round(med_dollars * 100, 1) AS median_spread_cents,
    round(med_bps / min(med_bps) OVER (), 1) AS times_the_spy_spread,
    round(quote_updates / 1e6, 2) AS rth_updates_m,
    invalid_quotes_dropped
FROM (
    SELECT
        ticker,
        quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000,
                             toFloat64(bid_price) > 0 AND toFloat64(ask_price) > toFloat64(bid_price)) AS med_bps,
        quantileExactIf(0.5)(toFloat64(ask_price) - toFloat64(bid_price),
                             toFloat64(bid_price) > 0 AND toFloat64(ask_price) > toFloat64(bid_price)) AS med_dollars,
        count() AS quote_updates,
        countIf(NOT (toFloat64(bid_price) > 0 AND toFloat64(ask_price) > toFloat64(bid_price))) AS invalid_quotes_dropped
    FROM global_markets.cache_stocks_quotes
    WHERE ticker IN ('SPY', 'QQQ', 'AAPL', 'TSLA', 'NVDA', 'MU', 'SNDK', 'WDC')
      AND sip_timestamp >= '2026-07-02 13:30:00' AND sip_timestamp < '2026-07-02 20:00:00'
    GROUP BY ticker
)
ORDER BY median_spread_bps ASC

SPY quoted a median 0.27 basis points wide: about 2 cents on a $744.8 ETF. QQQ came in at 0.83 bps, NVDA 1.03. The names doing the falling were the expensive ones to trade: MU 5.52 bps, SanDisk 10.4, Western Digital 10.7940x SPY's spread. Crossing a basket of memory names cost multiples of crossing the index, before any price impact. Invalid quotes (one-sided, crossed) are counted per name, not hidden.

SorgulaLikidite olağandışı mıydı? SPY normal seans medyan spread değeri vs son bir aylık seanslar
Her verinin arkasındaki tam SQL
WITH per_day AS (
    SELECT toDate(sip_timestamp) AS d,
           quantileExact(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000) AS med_bps
    FROM global_markets.cache_stocks_quotes
    WHERE ticker = 'SPY'
      AND sip_timestamp >= '2026-06-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'
      AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
      AND toFloat64(bid_price) > 0 AND toFloat64(ask_price) > toFloat64(bid_price)
    GROUP BY d
)
SELECT
    round(anyIf(med_bps, d = toDate('2026-07-02')), 3) AS jul2_median_spread_bps,
    round(quantileExact(0.5)(med_bps), 3) AS trailing_median_bps,
    round(anyIf(med_bps, d = toDate('2026-07-02')) - quantileExact(0.5)(med_bps), 3) AS jul2_minus_trailing_bps,
    arrayCount(x -> x > anyIf(med_bps, d = toDate('2026-07-02')), groupArrayIf(med_bps, d != toDate('2026-07-02'))) + 1 AS wider_rank,
    count() AS sessions_compared,
    round(max(med_bps), 3) AS widest_session_bps
FROM per_day

An ordinary day for liquidity, and that is the finding: SPY's median spread of 0.27 bps sits 0 bps from the trailing month's median (0.27 bps), ranking 11 of 22 sessions by wideness — nowhere near the month's widest at 0.409 bps. A concentrated rout under a green tape did not stress the plumbing.

Faiz Oranları: 2 Temmuz verileri açıklandı

SorgulaTahvil verileri: 2 Temmuz tahvil verileri kayıtlıdır
Her verinin arkasındaki tam SQL
SELECT
    (SELECT count() FROM global_markets.treasury_yields WHERE date = '2026-07-02') AS jul2_rows,
    (SELECT count() FROM global_markets.treasury_yields WHERE date = '2026-07-01') AS jul1_rows

Hazine veri akışı piyasa verilerinin bir veya iki gün gerisından gelir: İlk yayınlandığında 2 Temmuz kapanışına ait kayıtlı veri bulunmuyordu ve bu sayfa tahmin yürütmek yerine bu durumu belirtti. Veriler artık mevcut — 2 Temmuz için 1 satır, 1 Temmuz için 1 satır — bu nedenle aşağıdaki panel oturumun kendi eğrisini içermektedir.

SorgulaSeansın eğrisi: 2 Temmuz vs 1 Temmuz (sadece mevcut vadeler)
Her verinin arkasındaki tam SQL
SELECT
    t.1 AS curve_point,
    round(t.2, 2) AS jul2_yield_pct,
    round((t.2 - t.3) * 100) AS one_day_change_bp
FROM (
    SELECT arrayJoin([
        ('1 month',  toFloat64(d.yield_1_month),  toFloat64(p.yield_1_month)),
        ('3 month',  toFloat64(d.yield_3_month),  toFloat64(p.yield_3_month)),
        ('1 year',   toFloat64(d.yield_1_year),   toFloat64(p.yield_1_year)),
        ('2 year',   toFloat64(d.yield_2_year),   toFloat64(p.yield_2_year)),
        ('5 year',   toFloat64(d.yield_5_year),   toFloat64(p.yield_5_year)),
        ('10 year',  toFloat64(d.yield_10_year),  toFloat64(p.yield_10_year)),
        ('30 year',  toFloat64(d.yield_30_year),  toFloat64(p.yield_30_year)),
        ('2s10s spread', toFloat64(d.yield_10_year - d.yield_2_year), toFloat64(p.yield_10_year - p.yield_2_year))
    ]) AS t
    FROM (SELECT * FROM global_markets.treasury_yields WHERE date = '2026-07-02') AS d,
         (SELECT * FROM global_markets.treasury_yields WHERE date = '2026-07-01') AS p
)

Kapanışta 10 yıllık tahvil 4.49% seviyesinde, 2s10s spread ise 0.35 puan seviyesinde gerçekleşti.

Günün arkasındaki takvim

Sorgula2 Temmuz kurumsal takvimi ve bilgi akışı, tek satırda (sekiz bölünme dahil)
Her verinin arkasındaki tam SQL
WITH
    (
        SELECT (count(), uniqExact(publisher))
        FROM global_markets.stocks_news
        WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-07-02'
    ) AS news,
    (
        SELECT (argMax(t, n), max(n))
        FROM (
            SELECT t, count() AS n
            FROM (
                SELECT arrayJoin(tickers) AS t
                FROM global_markets.stocks_news
                WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-07-02'
            )
            WHERE t != 'SPCX'
            GROUP BY t
        )
    ) AS top_news,
    (
        SELECT (count(), countIf(split_to > split_from), countIf(split_to < split_from),
                arrayStringConcat(groupArray(concat(ticker, ' ', toString(split_to), '-for-', toString(split_from))), '; '))
        FROM global_markets.stocks_splits
        WHERE execution_date = '2026-07-02' AND ticker NOT IN ('SPCX')
    ) AS splits
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-02') AS ex_dividend_records,
    splits.1 AS splits_executed,
    splits.2 AS forward_splits,
    splits.3 AS reverse_splits,
    splits.4 AS split_records,
    (SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-02') AS ipos_listed,
    (SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-02') AS sec_filings,
    (SELECT uniqExactIf(accession_number, form_type = '4') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-02') AS insider_form4_filings,
    (SELECT uniqExactIf(accession_number, form_type = '8-K') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-02') AS filings_8k,
    (SELECT arrayStringConcat(groupArray(concat(ticker, ' — ', issuer_name)), '; ') FROM (
        SELECT ticker, issuer_name FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-02' ORDER BY ticker
    )) AS ipo_names,
    news.1 AS news_articles,
    news.2 AS news_publishers,
    top_news.1 AS most_covered_ticker,
    top_news.2 AS most_covered_articles,
    (SELECT any(split_from) FROM global_markets.stocks_splits WHERE ticker = 'CRWD' AND execution_date = '2026-07-02') AS crwd_split_from,
    (SELECT any(split_to) FROM global_markets.stocks_splits WHERE ticker = 'CRWD' AND execution_date = '2026-07-02') AS crwd_split_to,
    (SELECT round(toFloat64(argMax(close, window_start)), 2) FROM global_markets.delayed_stocks_minute_aggs
     WHERE ticker = 'CRWD' AND window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00') AS crwd_prev_close,
    (SELECT round(toFloat64(argMax(close, window_start)), 2) FROM global_markets.delayed_stocks_minute_aggs
     WHERE ticker = 'CRWD' AND window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00') AS crwd_day_close,
    (SELECT round(sum(toFloat64(close) * toFloat64(volume)) / 1e6, 2) FROM global_markets.delayed_stocks_minute_aggs
     WHERE ticker = 'CRWD' AND window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00') AS crwd_dollar_m,
    (SELECT count() FROM (
        SELECT ticker FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date = '2026-07-02')
          AND window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00'
        GROUP BY ticker
    )) AS split_names_with_bars

319 temettü kayıtları temettü öncesi durumdaydı, 2 yeni listelemeler gerçekleşti (MIACU — Meridian3 Industrials Acquisition Corp.; VIIU — Viking Acquisition Corp. II) ve SEC endeksi tatil dönemine 5200 bildirim kaydetti — 2109 Form 4lar, 258 8-Ks. Haber akışı 3 yayıncıdan 201 makale taşıdı (en çok kapsananlar NVDA, bunların 18'i).

Hisse bölünmeleri, ham kapanış verilerini okuyan herkesi yanıltabilir. CRWD 4'e bir 1 oranında ileri bölünme gerçekleştirdi; bu nedenle düzeltilmemiş veriler Çarşamba günü 772.45, Perşembe günü ise 193.67 fiyatlarını gösteriyor — bu durum, aslında her eski hisse için dört yeni hisse anlamına gelen yapay bir düşüştür. Bu durum tek örnek değildi: 8 bölünme kaydı yürütüldü, 5 ileri ve 3 ters bölünme (split_records sütunu bunları listeler) gerçekleşti; ters bölünme ise tam tersi bir yapay etki yaratır — bir gecede aniden yükselen ham bir fiyat. Bu isimlerin sadece 2'sı bizim veri akışımızda işlem gördü; CRWD'nin 1473.51 milyon dolarlık hacmi ekranları etkileyecek kadar büyüktür ve buradaki tüm hareketli hisse ekranları bunu kapsam dışı bırakır.

Beklenenler

Tahmin değil, takvim verisi — gelecek oturumlara dair veriler.

SorgulaTatil sonrası: bir sonraki seans, temettüsüz tarih ve bölünmeler, bir sonraki planlanan kapanış ve açık pozisyon gecikmesi
Her verinin arkasındaki tam SQL
SELECT
    (SELECT count() FROM global_markets.delayed_stocks_minute_aggs
     WHERE ticker = 'SPY' AND window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00') AS jul6_spy_regular_bars,
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-06') AS exdiv_records_jul6,
    (SELECT arrayStringConcat(groupArray(ticker), ', ') FROM global_markets.stocks_dividends
     WHERE ex_dividend_date = '2026-07-06'
       AND ticker IN ('AAPL', 'MSFT', 'JPM', 'JNJ', 'XOM', 'KO', 'PG', 'WMT', 'CVX', 'HD')) AS household_exdivs_jul6,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date = '2026-07-06') AS splits_jul6,
    (SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-02') AS next_scheduled_closure,
    (SELECT any(name) FROM global_markets.stocks_market_holidays
     WHERE date = (SELECT min(date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-02')) AS next_closure_name,
    (SELECT any(status) FROM global_markets.stocks_market_holidays
     WHERE date = (SELECT min(date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-02')) AS next_closure_status,
    (SELECT toString(max(settlement_date)) FROM global_markets.stocks_short_interest
     WHERE settlement_date <= '2026-07-02') AS latest_si_settlement,
    (SELECT dateDiff('day', max(settlement_date), toDate('2026-07-02')) FROM global_markets.stocks_short_interest
     WHERE settlement_date <= '2026-07-02') AS si_settlement_age_days

6 Temmuz Pazartesi günü, kendi barlarından doğrulandığı üzere tam bir 390-bar oturumuyla yeniden açıldı. On incelediğimiz isimden biri olan (JPM) bir tanınmış marka dahil olmak üzere 118 temettü hariç kayıt ve 15 bölünme işlemi gerçekleşti. Bir sonraki planlanan kapanış: Labor Day, 2026-09-07 (closed). Açığa satış faizi her zamanki gibi eski haber niteliğindeydi — kayıtlı en yeni takas 2026-06-30, 2 gün önce gerçekleşti; yayınlanma süreci takası yaklaşık iki hafta geriden takip etmektedir (neden).

Onaylanan seans — ve gerçekleşmeyen Cuma

SorgulaSeans kontrolü: SPY gözlemlenen dakika bazlı aralığı ve 3 Temmuz kapanış verisi
Her verinin arkasındaki tam SQL
SELECT
    formatDateTime(min(toTimeZone(window_start, 'America/New_York')), '%H:%i') AS first_spy_bar_et,
    formatDateTime(max(toTimeZone(window_start, 'America/New_York')), '%H:%i') AS last_spy_bar_et,
    count() AS spy_minute_bars,
    countIf(window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00') AS regular_session_bars,
    uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00') AS day_sessions,
    (SELECT count() FROM global_markets.delayed_stocks_minute_aggs
     WHERE ticker = 'SPY' AND window_start >= '2026-07-03 00:00:00' AND window_start < '2026-07-04 00:00:00') AS jul3_spy_bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-02 00:00:00' AND window_start < '2026-07-03 00:00:00'

2 Temmuz tam bir seanstı, erken kapanış değildi: SPY mumları New York saatiyle 04:00 ile 19:59 arasındadır (piyasa öncesi ve piyasa sonrası mumlar dahil), tam olarak 390 normal seans mumu bulunmaktadır. 3 Temmuz Cuma günü SPY için 0 mum kaydedildi — 4 Temmuz Cumartesi gününe denk geldiği için Bağımsızlık Günü nedeniyle tam kapanış yapıldı. Dört seanslık hafta: haftalık özet.

SSS

2 Temmuz 2026 tarihinde Dow neden yükselirken Nasdaq neden düştü?

İki endeks farklı şirketlerden oluşmaktadır: DIA 1.04% seviyesinde, QQQ ise -1.71% seviyesinde kapandı. Sektörel dağılım benzerlik göstermektedir; sağlık, kamu hizmetleri ve temel tüketim ürünleri en üstte yer alırken, teknoloji sektörü -2.71% seviyesiyle en sonda kalmıştır; en iyiden en kötüye 5.34 puanlık bir fark bulunmaktadır.

Bağımsızlık Günü haftasının Cuma günü borsa açık mıydı?

Hayır. Bağımsızlık Günü Cumartesi gününe denk geldiği için borsalar bu oturumun ertesi günü olan Cuma günü tam gün kapalı kalmıştır: verilerimiz bu durum için 0 SPY dakikalık çubuklarını göstermektedir.

Hisse bölünmesi hisse fiyatını nasıl etkiler?

Hisse sayısını dört ile çarpar ve fiyatı dörde böler; pozisyonun değeri değişmez. CRWD, 2 Temmuz: Çarşamba günü düzeltilmemiş 772.45 kapanış, Perşembe günü ise 193.67; bölünmeyi hesaba katmayan herhangi bir tarayıcıda sahte bir düşüş görünür.

2 Temmuz 2026 tarihinde alış-satış spreadleri ne kadar genişti?

SPY'nin normal saatlerdeki medyan fiyatlandırılmış spreadi, orta fiyatın 0.27 baz puanı kadardı — bu, genişlik açısından önceki 22 oturumun 11 kadarıdır ve olağan bir gündür. Tekil hisselerde spreadler daha geniş seyretmiştir: MU 5.52 bps, WDC 10.79.

Veri notları

  • Dolar hacmi dakikalık bir göstergedir — kapanış fiyatı × hacim, her bar için toplanmıştır.
  • Temmuz ayı 2 yıllık tahvil verisi ilk yayından sonra eklenmiştir — orijinal not, satır sayısı makbuzu ile verinin eksik olduğunu belirtmişti; bu revizyon veriyi içermektedir, makbuz aşağıda sunulmuştur.
  • CRWD ham kapanış değişimi bir bölünme sonucudur — hareketli hisse ekranlarından hariç tutulmuştur.
Tam veri notları
  • Sektör panosu, on bir SPDR Select Sector ETF'inden (XLB, XLC, XLE, XLF, XLI, XLK, XLP, XLRE, XLU, XLV, XLY) oluşmaktadır — bu sabit ve açıklanmış bir sepet olup, veri sağlayıcı sektör alanı değildir.
  • Fiyat bandı sayımları, SIP zaman damgasının UTC tarihine göre gruplandırılır; bir yaz seansı tek bir UTC gününe dahil edilir.
  • Yeniden kullanılan sembol içeren bir Haziran listesi liderlik tablolarından hariç tutulmuştur (makbuzlar); detaylı analizler derin incelemelerde yer almaktadır.

Metodoloji

  • Dönem bir işlem seansından (gözlemlenen barlardan doğrulanan 1 seansı) ibarettir. Zaman damgaları UTC olarak saklanır ve sorgular içinde New York saatine dönüştürülür; "kapanış" düzenli seansın son dakikası olan barı ifade eder ve gün değişimleri 2 Temmuz ile 1 Temmuz karşılaştırılarak hesaplanır. 3 Temmuz kapanışı, varsayılmamış, barlardan doğrulanmıştır.
  • Spreadler (alış ile satış farkı), orta fiyatın baz puan cinsinden, düzenli saatlerdeki NBBO güncellemelerinin medyanı üzerinden, deterministik bir kuantilde sunulur. Ondalık sayılar oran aritmetiğinden önce float tipine dönüştürülür; opsiyon vadeleri OCC ticker verisinden yeniden ayrıştırılır. Her panel, yazım aşamasında, kısıtlı salt okunur yol üzerinden bir kez okunur.

Grafik, tablo ve SQL tek bir nesnedir. Herhangi bir paneli Strasmore terminaline yapıştırarak özelleştirilebilir hale getirebilirsiniz. Önceki seans: 1 Temmuz. Hafta: dört seanslık tatil haftası.