Strasmore Research
Podsumowania rynkowe Matt ConnorAutor: Matt Connor · Zaktualizowano 2026-08-02

Podsumowanie rynku 30 lipca 2026: dzień w liczbach

Sesja 30 lipca 2026 w liczbach: indeksy, szerokość rynku, sektory, opcje, notowania, stopy i kalendarz. Sprawdź pełny zapis danych z rynku.

Ten raport rynkowy z czwartku 30 lipca 2026 r. obejmuje całą sesję na podstawie zapisanych zapytań: zmiana kursu zamknięcia SPY względem poprzedniego zamknięcia wyniosła 1.68%, udział spółek zwyżkujących w płynnym segmencie rynku wyniósł 63.5%, a na rynku opcji zawarto 67.06 mln kontraktów. Każdy z poniższych przedziałów ma jednoznacznie określone daty początkową i końcową, dlatego ponowne uruchomienie zapytania SQL dla dowolnego panelu zwróci te same wartości.

Tablica wyników

Każda zmiana porównuje ostatnią minutową świecę regularnej sesji z 30 lipca ze świecą z środy, 29 lipca, czyli z kolejnych sesji giełdowych. Wiersze uporządkowano alfabetycznie, dzięki czemu każdy ETF zachowuje stałą pozycję.

ZapytanieSPY / QQQ / DIA / IWM: 30 lipca względem zamknięcia 29 lipca, sesja regularna
Dokładny kod SQL dla każdej liczby
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-29 13:30:00' AND window_start < '2026-07-29 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-30 13:30:00' AND window_start < '2026-07-30 20:00:00'
    GROUP BY ticker
)
SELECT
    s.ticker AS ticker,
    round(toFloat64(p.prior_close), 2) AS prior_close,
    round(toFloat64(s.day_open), 2) AS day_open,
    round(toFloat64(s.day_close), 2) AS day_close,
    round((toFloat64(s.day_open) / toFloat64(p.prior_close) - 1) * 100, 2) AS gap_pct,
    round((toFloat64(s.day_close) / toFloat64(s.day_open) - 1) * 100, 2) AS intraday_pct,
    round((toFloat64(s.day_close) / toFloat64(p.prior_close) - 1) * 100, 2) AS pct_change,
    round(toFloat64(s.day_high), 2) AS day_high,
    round(toFloat64(s.day_low), 2) AS day_low,
    s.shares_traded_m
FROM sess s LEFT JOIN prior p ON s.ticker = p.ticker
ORDER BY ticker
Run this yourself

DIA zmienił się o 1.19%, IWM o 1.37%, QQQ o 3.34%, a SPY o 1.68%, osiągając kurs zamknięcia 741.73 USD. W każdym wierszu zmianę podzielono na dwa etapy: SPY otworzył się 0.9% względem środowego zamknięcia, a następnie zmienił się o 0.77% od otwarcia do zamknięcia. Zmiana overnight i zmiana w trakcie sesji nie muszą być zgodne, a ich podział stanowi pierwszy ślad charakterystyczny dla danej sesji.

Czy sesja była nietypowa?

Liczba z jednej sesji niewiele znaczy bez analizy rozkładu, dlatego sesję klasyfikuje się w obrębie własnego minionego miesiąca według tej samej metodologii.

ZapytanieDzienna zmiana SPY w kontekście kroczącym (od otwarcia do zamknięcia, 30 czerwca–30 lipca)
Dokładny kod SQL dla każdej liczby
SELECT
    round(anyIf(oc_pct, d = toDate('2026-07-30')), 2) AS spy_open_to_close_pct,
    arrayCount(x -> x > abs(anyIf(oc_pct, d = toDate('2026-07-30'))), groupArrayIf(abs(oc_pct), d != toDate('2026-07-30'))) + 1 AS spy_abs_move_rank,
    count() AS spy_sessions_compared,
    toString(min(d)) AS first_session
FROM (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           (argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100 AS oc_pct
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime('2026-06-30 13:30:00')
      AND window_start < toDateTime('2026-07-31 00:00:00')
      AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
    GROUP BY d
)
Run this yourself

Zmiana SPY od otwarcia do zamknięcia wynosząca 0.77% uplasowała się na 3. miejscu wśród 22 minionych sesji, uszeregowanych według bezwzględnej wielkości zmiany, w okresie sięgającym do 2026-06-30. Pozycja oznacza liczbę innych sesji w tym okresie, które odnotowały większą zmianę, powiększoną o jeden. Pierwsze miejsce oznaczałoby największą zmianę w minionym miesiącu.

Szerokość rynku

Poziom indeksu to jedna liczba. Szerokość rynku pokazuje, ile akcji poruszało się w tym samym kierunku.

ZapytanieSzerokość rynku na płynnym rynku: zamknięcie 30 lipca względem zamknięcia 29 lipca, filtr obrotu 1 mln USD
Dokładny kod SQL dla każdej liczby
SELECT
    countIf(c30 > c29 AND liquid) AS advancers,
    countIf(c30 < c29 AND liquid) AS decliners,
    countIf(c30 = c29 AND liquid) AS unchanged,
    countIf(liquid) AS liquid_tickers,
    countIf(NOT liquid) AS dropped_by_liquidity_filter,
    round(100.0 * countIf(c30 > c29 AND liquid) / countIf(liquid), 1) AS advancer_pct
FROM (
    SELECT ticker, c29, c30, dv30 >= 1000000 AS liquid
    FROM (
        SELECT ticker,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS c29,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00') AS c30,
               sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-30 13:30:00') AS dv30
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-30 20:00:00'
        GROUP BY ticker
        HAVING c29 > 0 AND c30 > 0
    )
)
Run this yourself

Spośród 5960 spółek, których obrót w regularnych godzinach przekroczył próg jednego miliona USD, 3782 zamknęło sesję powyżej środowego kursu zamknięcia, a 2122 poniżej. Udział spółek zwyżkujących wyniósł 63.5%. Filtr wykluczył 5492 spółek o niższej płynności, które uwzględniono tutaj zamiast pomijać.

Koszyk spółek mega-cap

Te same osiem spółek mega-cap pojawia się tutaj w każdej sesji, w kolejności alfabetycznej, aby każda zachowała swoje miejsce. Stały koszyk jest kluczowy: czytelnik zapamiętuje poszczególne wiersze, a po fakcie nie wybiera się ręcznie zwycięzców.

ZapytanieOsiem megakorporacji: zmiana względem 29 lipca i obrót w USD w sesji regularnej, 30 lipca
Dokładny kod SQL dla każdej liczby
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-30 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-30 00:00:00')) AS day_close,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-30 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('AAPL', 'AMZN', 'AVGO', 'GOOGL', 'META', 'MSFT', 'NVDA', 'TSLA')
      AND ((window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00')
        OR (window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00'))
    GROUP BY ticker
)
SELECT
    ticker,
    round(prior_close, 2) AS prior_close,
    round(day_close, 2) AS day_close,
    round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
    day_dollar_bn
FROM per_name
ORDER BY ticker
Run this yourself

AAPL zmieniła się o -1.24%, META o -8.17%, MSFT o 15.06%, a NVDA o 2.67% przy obrotach w godzinach regularnej sesji wynoszących 19.63 miliardów USD. TSLA odnotowała 3.53%. Kolumna wartości w USD pokazuje, jaką część obrotu te osiem spółek generuje samodzielnie. Panel szerokości rynku powyżej pozwala ocenić, w jakim stopniu pozostała część rynku podążała za tymi spółkami.

Największe ruchy w ciągu dnia

Na obu zestawieniach wymagany jest obrót w regularnych godzinach na poziomie pięciu milionów USD. Wykluczane są spółki, w przypadku których podział akcji został wykonany między dwoma uwzględnianymi zamknięciami. Wykluczany jest również jeden powtórnie użyty symbol zgodnie z opisanym w uwagach mechanizmem ochrony przed niejednoznacznością.

ZapytanieNajwiększe wzrosty i spadki: zamknięcie 30 lipca względem zamknięcia 29 lipca, obrót co najmniej 5 mln USD, bez uwzględnienia splitów
Dokładny kod SQL dla każdej liczby
SELECT ticker, board, day_pct, day_dollar_m
FROM (
    SELECT 'gainers' AS board, ticker, round((c30 / c29 - 1) * 100, 1) AS day_pct, round(dv / 1e6, 1) AS day_dollar_m
    FROM (
        SELECT ticker,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS c29,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00') AS c30,
               sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-30 13:30:00') AS dv
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker NOT IN ('SPCX')
          AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date > '2026-07-29' AND execution_date <= '2026-07-30')
          AND window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-30 20:00:00'
        GROUP BY ticker
        HAVING c29 > 0 AND c30 > 0 AND dv >= 5000000
    )
    ORDER BY day_pct DESC
    LIMIT 8
    UNION ALL
    SELECT 'decliners' AS board, ticker, round((c30 / c29 - 1) * 100, 1) AS day_pct, round(dv / 1e6, 1) AS day_dollar_m
    FROM (
        SELECT ticker,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS c29,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00') AS c30,
               sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-30 13:30:00') AS dv
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker NOT IN ('SPCX')
          AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date > '2026-07-29' AND execution_date <= '2026-07-30')
          AND window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-30 20:00:00'
        GROUP BY ticker
        HAVING c29 > 0 AND c30 > 0 AND dv >= 5000000
    )
    ORDER BY day_pct ASC
    LIMIT 8
)
ORDER BY board DESC, abs(day_pct) DESC
Run this yourself

Największy wzrost na zestawieniu odnotował CYCU, którego kurs zmienił się o 489.5% przy obrocie o wartości 474.4 milionów USD. Największy spadek zanotował IREZ, którego kurs zmienił się o -61.2% przy obrocie o wartości 90.8 milionów USD. Na tej stronie odnotowano wartości zmian i transakcje, bez przypisywania im przyczyn.

Zróżnicowanie sektorowe

Jedenaście funduszy SPDR dla wybranych sektorów, według zmiany między zamknięciem z 30 lipca a zamknięciem z 29 lipca, uszeregowano od najlepszego do najsłabszego. Koszyk został zdefiniowany i jest stały. Nie opiera się na klasyfikacji dostawcy.

ZapytanieSektorowe ETF, zamknięcie 30 lipca względem zamknięcia 29 lipca, ranking
Dokładny kod SQL dla każdej liczby
SELECT sector, day_pct, round(max(day_pct) OVER () - day_pct, 2) AS points_behind_best
FROM (
    SELECT multiIf(ticker = 'XLK', 'Technology', ticker = 'XLC', 'Communications', ticker = 'XLE', 'Energy',
                   ticker = 'XLF', 'Financials', ticker = 'XLI', 'Industrials', ticker = 'XLB', 'Materials',
                   ticker = 'XLP', 'Staples', ticker = 'XLRE', 'Real Estate', ticker = 'XLU', 'Utilities',
                   ticker = 'XLV', 'Health Care', 'Consumer Discretionary') AS sector,
           round((c30 / c29 - 1) * 100, 2) AS day_pct
    FROM (
        SELECT ticker,
               argMaxIf(toFloat64(close), window_start, window_start < '2026-07-30 00:00:00') AS c29,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-30 00:00:00') AS c30
        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-29 13:30:00' AND window_start < '2026-07-29 20:00:00')
            OR (window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00'))
        GROUP BY ticker
        HAVING c29 > 0 AND c30 > 0
    )
)
ORDER BY day_pct DESC
Run this yourself

Technology znalazł się na szczycie zestawienia z wynikiem 5.52%, natomiast Communications zajął ostatnie miejsce z wynikiem -2.69%, o 8.21 punktów procentowych niższym. Ta różnica pokazuje dzienne zróżnicowanie sektorowe. Sesja, podczas której wszystkie jedenaście sektorów mieści się w przedziale jednego punktu procentowego, wygląda zupełnie inaczej niż sesja z rozpiętością obejmującą kilka punktów.

Gdzie handlowano dolarami

Zapytanie6 największych pozycji według obrotu w USD, 4 największe według liczby akcji: sesja regularna 30 lipca
Dokładny kod SQL dla każdej liczby
SELECT leaderboard, ticker, dollar_volume_bn, shares_m,
    round(1000 * dollar_volume_bn / shares_m, 2) AS implied_avg_price
FROM (
    SELECT
        'by dollars traded' AS leaderboard,
        ticker,
        round(sum(toFloat64(close) * toFloat64(volume)) / 1e9, 2) AS dollar_volume_bn,
        round(sum(toFloat64(volume)) / 1e6, 1) AS shares_m
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00'
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker
    ORDER BY dollar_volume_bn DESC
    LIMIT 6
    UNION ALL
    SELECT
        'by shares traded' AS leaderboard,
        ticker,
        round(sum(toFloat64(close) * toFloat64(volume)) / 1e9, 2) AS dollar_volume_bn,
        round(sum(toFloat64(volume)) / 1e6, 1) AS shares_m
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00'
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker
    ORDER BY shares_m DESC
    LIMIT 4
)
ORDER BY leaderboard, if(leaderboard = 'by shares traded', shares_m, dollar_volume_bn) DESC
Run this yourself

MU zajmował czołowe miejsce pod względem obrotów w dolarach, osiągając 43.29 mld USD w regularnych godzinach handlu. Za nim uplasował się MSFT z wynikiem 42.56 mld USD. Zestawienie liczby akcji odpowiada na inne pytanie: na jego czele znalazł się CYCU z wynikiem 544 mln akcji, przy implikowanej średniej cenie wynoszącej 0.86 USD. Wolumen w dolarach pokazuje, na czym koncentruje się uwaga rynku, a wolumen akcji pokazuje skalę rotacji. W ujęciu dla pojedynczej spółki odpowiednikiem tego miernika jest wolumen względny.

Taśma opcji

ZapytanieRynek opcji: liczba kontraktów, udział call, udział transakcji tego samego dnia względem środy, najaktywniejszy kontrakt SPY
Dokładny kod SQL dla każdej liczby
WITH
    (
        SELECT (strike, typ, vol_m, is_0dte)
        FROM (
            SELECT toFloat64(any(strike_price)) AS strike, any(option_type) AS typ,
                   round(toFloat64(sum(size)) / 1e6, 2) AS vol_m,
                   if(substring(ticker, length(ticker) - 14, 6) = '260730', 1, 0) AS is_0dte
            FROM global_markets.options_trades
            WHERE sip_timestamp >= '2026-07-30 00:00:00' AND sip_timestamp < '2026-07-31 00:00:00'
              AND underlying_symbol = 'SPY'
            GROUP BY ticker
            ORDER BY vol_m DESC, strike ASC
            LIMIT 1
        )
    ) AS top_spy,
    (
        SELECT round(toFloat64(argMax(close, window_start)), 2)
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY' AND window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00'
    ) AS spy_regular_close,
    (
        SELECT round(toFloat64(sum(size)) / 1e6, 2)
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00'
    ) AS jul29_contracts_m,
    (
        SELECT round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260729') / sum(size), 1)
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00'
    ) AS jul29_pct_0dte
SELECT
    round(count() / 1e6, 2) AS option_prints_m,
    round(toFloat64(sum(size)) / 1e6, 2) AS contracts_m,
    jul29_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) = '260730') / sum(size), 1) AS pct_0dte,
    jul29_pct_0dte,
    spy_regular_close,
    top_spy.1 AS top_spy_strike,
    top_spy.2 AS top_spy_type,
    top_spy.3 AS top_spy_contracts_m,
    top_spy.4 AS top_spy_is_0dte,
    round(top_spy.1 - spy_regular_close, 2) AS top_spy_strike_minus_close
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-30 00:00:00' AND sip_timestamp < '2026-07-31 00:00:00'
Run this yourself

Na taśmie opcji odnotowano 10.93 mln transakcji obejmujących 67.06 mln kontraktów, wobec 66.84 mln w środę. Opcje call stanowiły 54.6% wolumenu kontraktów. Kontrakty wygasające podczas tej samej sesji, czyli grupa opcji z zerową liczbą dni do wygaśnięcia, odpowiadały za 25.3% wobec 33.1% w środę. Rytm ten wyznacza termin wygasania opcji. Największym obrotem wśród kontraktów na SPY charakteryzował się kontrakt 740 C, obejmujący 0.56 mln kontraktów. Jego cena wykonania była oddalona o -1.73 USD od regularnego kursu zamknięcia SPY na poziomie $741.73, przy pomiarze jako cena wykonania minus kurs zamknięcia.

Taśma kwotowa

Dane kwotowań stanowią najrzadszy zasób danych tego zespołu i są mierzone podczas każdej sesji. Zwykłe dni również trafiają do rejestru.

ZapytanieLiczba aktualizacji NBBO dla akcji: 30 lipca względem 29 lipca, z aktualizacjami wskazanych tickerów (mln)
Dokładny kod SQL dla każdej liczby
SELECT
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-30')) / 1e6, 2) AS jul30_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-29')) / 1e6, 2) AS jul29_updates_m,
    round((countIf(toDate(sip_timestamp) = toDate('2026-07-30')) / countIf(toDate(sip_timestamp) = toDate('2026-07-29')) - 1) * 100, 1) AS day_over_day_pct,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-30') AND ticker = 'SPY') / 1e6, 2) AS jul30_spy_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-30') AND ticker = 'QQQ') / 1e6, 2) AS jul30_qqq_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-30') AND ticker = 'NVDA') / 1e6, 2) AS jul30_nvda_updates_m
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-31 00:00:00'
Run this yourself

Taśma kwotowa akcji odnotowała 560.75 mln aktualizacji NBBO wobec 722.65 mln w środę, co oznacza dzienną zmianę o -22.4%. SPY odnotował 5.55 mln aktualizacji, QQQ 6.75 mln, a NVDA 2.39 mln.

ZapytanieSiedem spółek: mediana spreadu kwotowań RTH w punktach bazowych, wraz z liczbą kwotowań według jakości, 30 lipca
Dokładny kod SQL dla każdej liczby
SELECT ticker,
       round(quantileExactIf(0.5)(10000 * (toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2), bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price), 2) AS median_spread_bps,
       round(count() / 1e6, 2) AS quote_updates_m,
       countIf(bid_price <= 0 OR ask_price <= 0) AS one_sided_quote_count,
       countIf(bid_price > ask_price AND bid_price > 0 AND ask_price > 0) AS crossed_quote_count
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('AAPL', 'DIA', 'IWM', 'NVDA', 'QQQ', 'SPY', 'TSLA')
  AND sip_timestamp >= '2026-07-30 13:30:00' AND sip_timestamp < '2026-07-30 20:00:00'
GROUP BY ticker
HAVING countIf(bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price) > 0
ORDER BY ticker
Run this yourself

Mediana spreadu kwotowań SPY w regularnych godzinach wyniosła 0.27 punktów bazowych wartości środkowej, w przypadku QQQ było to 0.59, a NVDA 1.03. Dwie ostatnie kolumny zawierają dane ujawniające: kwotowania jednostronne i kwotowania krzyżowe są liczone dla każdego waloru i wyłączane z mediany, a nie pomijane bez informacji. Kwotowanie krzyżowe, w którym bid przewyższa ask, jest zwykłym artefaktem skonsolidowanego feedu tworzonego z danych z wielu systemów obrotu z rozdzielczością nanosekundową.

ZapytanieMediana spreadu SPY na tle wszystkich sesji lipcowych, od najwęższego
Dokładny kod SQL dla każdej liczby
SELECT round(anyIf(spread_bps, d = toDate('2026-07-30')), 2) AS jul30_median_spread_bps,
       arrayCount(x -> x < anyIf(spread_bps, d = toDate('2026-07-30')), groupArrayIf(spread_bps, d != toDate('2026-07-30'))) + 1 AS rank_tightest,
       count() AS sessions_compared,
       toString(min(d)) AS first_session
FROM (
    SELECT toDate(sip_timestamp) AS d,
           quantileExactIf(0.5)(10000 * (toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2), bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price) AS spread_bps
    FROM global_markets.cache_stocks_quotes
    WHERE ticker = 'SPY'
      AND sip_timestamp >= '2026-07-01 13:30:00' AND sip_timestamp < '2026-07-30 20:00:00'
      AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
    GROUP BY d
    HAVING countIf(bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price) > 0
)
Run this yourself

W porównaniu ze wszystkimi sesjami lipcowymi według identycznej metodologii mediana spreadu SPY z tego dnia, wynosząca 0.27 punktów bazowych, uplasowała się na 19 miejscu na 21 sesji, licząc od najwęższego spreadu, w okresie rozpoczynającym się 2026-07-01. Przy spokojnej taśmie kwotowej właśnie to jest celem panelu: zwykły dzień pod względem płynności stanowi ustalenie, które zostało opublikowane i ma określone granice.

ZapytanieRynek NBBO opcji: łączna liczba aktualizacji względem rynku akcji oraz wycinek dla root SPY, 30 lipca
Dokładny kod SQL dla każdej liczby
WITH
    (SELECT count() FROM global_markets.cache_options_quotes WHERE sip_timestamp >= '2026-07-30 00:00:00' AND sip_timestamp < '2026-07-31 00:00:00') AS jul30_options_rows,
    (SELECT count() FROM global_markets.cache_stocks_quotes WHERE sip_timestamp >= '2026-07-30 00:00:00' AND sip_timestamp < '2026-07-31 00:00:00') AS jul30_stock_quote_rows
SELECT
    round(jul30_options_rows / 1e9, 2) AS jul30_options_bn,
    round(jul30_options_rows / jul30_stock_quote_rows, 1) AS options_to_stock_ratio,
    round((SELECT count() FROM global_markets.cache_options_quotes WHERE ticker >= 'O:SPY26' AND ticker < 'O:SPY27' AND sip_timestamp >= '2026-07-30 13:30:00' AND sip_timestamp < '2026-07-30 20:00:00') / 1e6, 0) AS jul30_spy_options_m
Run this yourself

Taśma kwotowa opcji odnotowała 10.32 mld aktualizacji, czyli 18.4 razy więcej niż taśma kwotowa akcji. Sam root SPY odpowiadał za 441 mln aktualizacji w regularnych godzinach.

Rentowności

ZapytanieKwotowania krzywej obligacji skarbowych zarejestrowane od 27 do 30 lipca
Dokładny kod SQL dla każdej liczby
SELECT toString(date) AS date,
       round(toFloat64(yield_2_year), 2) AS yield_2y_pct,
       round(toFloat64(yield_10_year), 2) AS yield_10y_pct,
       round(toFloat64(yield_30_year), 2) AS yield_30y_pct,
       round((toFloat64(yield_10_year) - toFloat64(yield_2_year)) * 100) AS spread_2s10s_bp
FROM global_markets.treasury_yields
WHERE date >= '2026-07-27' AND date <= '2026-07-30'
ORDER BY date
Run this yourself

Zestawienie obligacji skarbowych jest opóźnione względem bieżących notowań o około jedną sesję, dlatego panel przedstawia zarejestrowane transakcje: 4 wierszy z datami w analizowanym okresie. Najnowszy wpis, z datą 2026-07-30, wskazuje rentowność obligacji dwuletnich na poziomie 4.23%, dziesięcioletnich na poziomie 4.68%, a trzydziestoletnich na poziomie 5.21%. Oznacza to spread między obligacjami dwuletnimi a dziesięcioletnimi w wysokości 45 punktów bazowych.

Kalendarz dnia

ZapytanieDni bez dywidendy, splity, debiuty giełdowe, wiadomości i zestawienie raportów SEC z 30 lipca
Dokładny kod SQL dla każdej liczby
WITH
    (
        SELECT (argMax(t, (n, t)), max(n))
        FROM (
            SELECT t, count() AS n
            FROM (
                SELECT arrayJoin(tickers) AS t
                FROM global_markets.stocks_news
                WHERE published_utc >= '2026-07-30 04:00:00' AND published_utc < '2026-07-31 04:00:00'
            )
            WHERE t != 'SPCX'
            GROUP BY t
        )
    ) AS top_news,
    (
        SELECT (count(), uniqExact(cik), countIf(form_type = '4'), countIf(form_type = '8-K'), countIf(form_type = '424B2'), countIf(form_type = '10-Q'))
        FROM global_markets.stocks_sec_edgar_index
        WHERE filing_date = '2026-07-30'
    ) AS fil
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-30') AS ex_dividend_records,
    (SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-30') AS reverse_splits,
    (SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-30') AS forward_splits,
    (SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-30') AS listings,
    (SELECT count() FROM global_markets.stocks_news WHERE published_utc >= '2026-07-30 04:00:00' AND published_utc < '2026-07-31 04:00:00') AS news_articles,
    (SELECT uniqExact(JSONExtractString(publisher, 'name')) FROM global_markets.stocks_news WHERE published_utc >= '2026-07-30 04:00:00' AND published_utc < '2026-07-31 04:00:00') AS news_publishers,
    top_news.1 AS top_news_ticker,
    top_news.2 AS top_news_n,
    fil.1 AS fil_total,
    fil.2 AS fil_filers,
    fil.3 AS fil_form4,
    fil.4 AS fil_8k,
    fil.5 AS fil_424b2,
    fil.6 AS fil_10q
Run this yourself

200 rejestrów dywidendowych przeszło w dniu 30 lipca przez dzień bez dywidendy, wykonano 3 odwrotnych i 3 zwykłych splitów, a na tape trafiło 3 nowych debiutów giełdowych. Kanał informacyjny zawierał 173 artykułów od 2 wydawców, przy czym NVDA był najczęściej opisywanym tickerem w przedziale objętym tym kanałem, z liczbą 11 artykułów. Dzienny indeks EDGAR obejmuje 5544 dokumentów z tego dnia, złożonych przez 2743 odrębnych podmiotów: 745 raportów insiderów Formularz 4, 460 bieżących raportów 8-K, 1426 uzupełnień cenowych 424B2 oraz 252 kwartalnych raportów 10-Q. Indeks jest publikowany według własnego harmonogramu, a panel przedstawia dane dostępne w nim w momencie generowania.

W przygotowaniu

Podczas dwóch kolejnych sesji należy korzystać z tych samych tabel, celowo wykraczając poza analizowany okres. Piątek 31 lipca jest ostatnim dniem handlu w miesiącu zgodnie z kalendarzem.

Zapytanie31 lipca i 3 sierpnia w kalendarzu: zamknięcia rynku, dni bez dywidendy, splity, piątkowe wygaśnięcie i opóźnienie danych o krótkiej sprzedaży
Dokładny kod SQL dla każdej liczby
SELECT
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date >= '2026-07-31' AND date <= '2026-08-03' AND status != 'open') AS closures_next_two_sessions,
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date >= '2026-07-31' AND ex_dividend_date <= '2026-08-03') AS exdiv_records_next_two_sessions,
    (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-31' AND ex_dividend_date <= '2026-08-03') AS household_exdivs,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date >= '2026-07-31' AND execution_date <= '2026-08-03') AS splits_next_two_sessions,
    round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260731') / sum(size), 1) AS jul31_expiry_pct_of_thu_volume,
    (SELECT toString(max(settlement_date)) FROM global_markets.stocks_short_interest WHERE settlement_date <= '2026-07-30') AS latest_short_interest_settlement
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-30 00:00:00' AND sip_timestamp < '2026-07-31 00:00:00'
Run this yourself

Tabela dni świątecznych wskazuje 0 zamknięć rynku w piątek 31 lipca i poniedziałek 3 sierpnia. W ciągu tych dwóch sesji 544 zapisów dotyczących dywidend przejdzie w tryb ex-dividend, w tym 0 wśród dziesięciu monitorowanych spółek konsumenckich, a wykonanie zaplanowano dla 14 splitów. Spośród czwartkowego wolumenu opcji 26.7% przypadało już na kontrakty z terminem wygaśnięcia w piątek 31 lipca. Najnowsze dostępne dane dotyczące rozliczenia krótkich pozycji to 2026-07-15 — publikacja tego pliku jest opóźniona na tyle, że doczekała się osobnego objaśnienia.

Sesja, zweryfikowana

ZapytanieWeryfikacja sesji: pierwsza/ostatnia świeca SPY czasu ET, liczba świec regularnych, dni wolne, kolejne zamknięcie rynku
Dokładny kod SQL dla każdej liczby
SELECT
    formatDateTime(min(toTimeZone(window_start, 'America/New_York')), '%H:%i') AS first_spy_bar_et,
    formatDateTime(max(toTimeZone(window_start, 'America/New_York')), '%H:%i') AS last_spy_bar_et,
    countIf(window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00') AS regular_session_bars,
    uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00') AS day_sessions,
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-30') AS jul30_holiday_rows,
    (SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-30' 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-30' 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-30 00:00:00' AND window_start < '2026-07-31 00:00:00'
Run this yourself

Pełna sesja regularna: pierwsza świeca SPY o 04:00 ET, ostatnia o 19:59 ET, 390 świec w godzinach regularnych, 1 sesja w wybranym oknie oraz 0 wierszy dotyczących świąt dla tej daty. Najbliższe zaplanowane zamknięcie rynku przypada na Labor Day o 2026-09-07.

FAQ

Jak zachował się rynek akcji w czwartek 30 lipca 2026 r.?

SPY zmienił się o 1.68% między zamknięciami, do poziomu 741.73 USD. QQQ wyniósł 3.34%, DIA 1.19%, a IWM 1.37%. Wśród płynnych walorów 3782 wzrósł, a 2122 spadł.

Który sektor zajął pierwsze miejsce 30 lipca 2026 r.?

Technology, na poziomie 5.52%, w ujęciu jedenastu funduszy SPDR Select Sector. Najsłabszy z jedenastu, Communications, odnotował -2.69%.

Jak aktywny był rynek opcji 30 lipca 2026 r.?

Zawarto 67.06 mln kontraktów, w porównaniu z 66.84 mln podczas poprzedniej sesji. Kontrakty wygasające tego samego dnia stanowiły 25.3% wolumenu, a opcje call 54.6%.

Która spółka miała największą wartość obrotu 30 lipca 2026 r.?

MU, z obrotem w regularnych godzinach sesji o wartości 43.29 mld USD, przed MSFT z wynikiem 42.56 mld USD.

Uwagi dotyczące danych

Poprzednie wydanie dzienne to 29 lipca 2026 r., a tygodniowe podsumowanie obejmuje tydzień poprzedzający ten okres. Panele nazwane według tickerów uporządkowano alfabetycznie, aby odwołania w tekście wskazywały stałe wiersze. Rankingi i zestawienia liderów oraz największych zmian uporządkowano według wartości, a każde zawarte w nich twierdzenie dotyczące pozycji zakodowano jako warunek kontrolny. Koszyk spółek mega-cap oraz koszyk jedenastu funduszy sektorowych to zdefiniowane, stałe zbiory, a nie klasyfikacje dostawców danych. Zestawienia największych zmian stosują próg obrotu w regularnych godzinach sesji na poziomie pięciu milionów USD. Wykluczają również każdy instrument, którego split został wykonany między dwoma mierzonymi zamknięciami, oraz jeden ponownie użyty symbol objęty wewnętrznym zabezpieczeniem na wypadek niejednoznaczności. Dzięki temu każde wyróżnienie odnosi się do możliwej do zweryfikowania nazwy. Panele kwotowań uwzględniają dla każdego instrumentu kwotowania jednostronne i krzyżowe, zamiast po cichu je pomijać. Plik Treasury oraz dzienny indeks EDGAR są publikowane według własnych harmonogramów. Dlatego panele przedstawiają zawartość tych źródeł, zamiast zakładać, że dane już napłynęły. W tym zestawieniu nie występuje indeks implikowanej zmienności. Serie te nie są objęte licencją dla tego repozytorium. Zmienność odczytywana jest więc z rynku na podstawie przedziałów cenowych, udziału opcji zawartych tego samego dnia oraz zachowania kwotowań.

Metodyka

  • Źródło danych rynkowych: skonsolidowana taśma transakcyjna. delayed_stocks_minute_aggs dla cen i wolumenów, options_trades dla taśmy opcyjnej, cache_stocks_quotes i cache_options_quotes dla paneli NBBO.
  • Zamknięcie: ostatni jednominutowy bar regularnej sesji, nigdy domniemany zapis z godziny 16:00 ani zapis z handlu poza regularnymi godzinami.
  • Obsługa stref czasowych: wszystkie zapisane znaczniki czasu są w UTC; klauzule WHERE wykorzystują surowe literały UTC, a toTimeZone występuje wyłącznie na listach SELECT jako oznaczenie czasu ET.
  • Weryfikacja sesji: na podstawie tabeli dni świątecznych oraz zaobserwowanych barów, nigdy wyłącznie na podstawie kalendarza.
  • Porównania z poprzednią sesją: obliczane w zapytaniu na podstawie danych z 29 lipca, nigdy nieprzenoszone z poprzedniej publikacji.
  • Miejsca dziesiętne: kolumny cen, wielkości i wolumenu są konwertowane do Float64 przed wykonaniem jakiegokolwiek dzielenia lub mnożenia.
  • Deterministyczne agregaty: w całym procesie stosowane są dokładne kwantyle oraz rozstrzyganie remisów oparte na kluczach krotek; każde twierdzenie dotyczące kolejności lub znaku w tekście jest zakodowane jako warunek kontrolny.
  • Data stanu magazynu danych: 1 sierpnia 2026 r., dwa dni po sesji, na granicy typowego dla taśmy opóźnienia pozyskiwania danych wynoszącego od jednego do dwóch dni; ograniczone potwierdzenia wskazane powyżej zabezpieczają publikację na wypadek braku zbioru danych w momencie generowania.

Odsyłacze: poprzednie dzienne podsumowanie, tygodniowe podsumowanie, kiedy wygasają opcje, czym jest spread bid-ask oraz spread obligacji dwuletnich i dziesięcioletnich.

Każde z powyższych zapytań działa bez zmian na terminalu Strasmore, jeśli zachodzi potrzeba ustawienia okna na inną sesję.