Strasmore Research
Podsumowania rynkowe Matt ConnorAutor: Matt Connor · Zaktualizowano 2026-07-24

Podsumowanie rynku 7 lipca 2026

Spadek sektora półprzewodników przewyższył zmiany indeksów przy zielonym kursie NVDA. Przewaga podmiotów tracących nad zyskującymi oraz niski spread SPY.

Wtorek, 7 lipca 2026 roku, wycofał wzrosty z poniedziałkowego otwarcia — i to z nawiązką: QQQ zamknął się na poziomie -1.82%, co niemal całkowicie wymazało poniedziałkowe zyski, w przeciwieństwie do DIA na poziomie -0.29%. Na rynku odnotowano przewagę spadków w stosunku dwóch do jednego: 4034 podmiotów tracących względem 2091 podmiotów zyskujących. Kluczowym wydarzeniem dnia był spadek w sektorze półprzewodników, wielokrotnie przewyższający skalę indeksu — w tym zjawisku nie uczestzył jeden z gigantów sektora. Wszystkie poniższe dane pochodzą z zapytania bazodanowego — aby uzyskać dokładny kod SQL, należy rozwinąć dowolny panel.

Wyniki rynkowe

Każda zmiana stanowi porównanie ostatniej minuty sesji regulaminowej z 7 lipca z poniedziałkiem 6 lipca — są to kolejne sesje handlowe.

ZapytanieSPY / QQQ / DIA / IWM — 7 lipca względem zamknięcia z 6 lipca, sesja regulaminowa
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-06 13:30:00' AND window_start < '2026-07-06 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-07 13:30:00' AND window_start < '2026-07-07 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 AS shares_traded_m
FROM sess s
JOIN prior p ON s.ticker = p.ticker
ORDER BY s.ticker

Wskaźnik -1.82% funduszu QQQ wyznaczył kierunek spadkowy dla czterech indeksowych ETF; SPY zamknął się na poziomie -0.48%, IWM na -0.9%, natomiast najmniejszą zmianę odnotował DIA na poziomie -0.29%. Rozbieżność między lukami a trendem wewnątrzsesyjnym wskazuje na brak zgody rynków na otwarciu: luka nocna QQQ wyniosła -1.17%, a zmiana od otwarcia do zamknięcia wyniosła -0.65% — to luka spowodowała większość spadków — podczas gdy DIA otworzył się wyżej o 0.47%, lecz mimo to zakończył sesję na czerwono, osiągając zmianę od otwarcia do zamknięcia na poziomie -0.76%. Liderzy rynkowi zmieniali się na każdej sesji od czwartku: w czwartek przewodził DIA, w poniedziałek QQQ, a we wtorek ponownie DIA.

Czy dzień był nietypowy?

ZapytanieQQQ i SPY: ranking z 7 lipca względem ostatniego miesiąca sesji (rank 1 = największa zmiana absolutna)
Dokładny kod SQL dla każdej liczby
SELECT
    round(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-07')), 2) AS qqq_close_over_close_pct,
    arrayCount(x -> x > abs(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-07'))), groupArrayIf(abs(cc_pct), ticker = 'QQQ' AND d != toDate('2026-07-07'))) + 1 AS qqq_abs_move_rank,
    countIf(ticker = 'QQQ') AS qqq_sessions_compared,
    round(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-07')), 2) AS spy_open_to_close_pct,
    arrayCount(x -> x > abs(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-07'))), groupArrayIf(abs(oc_pct), ticker = 'SPY' AND d != toDate('2026-07-07'))) + 1 AS spy_abs_move_rank,
    countIf(ticker = 'SPY') AS spy_sessions_compared,
    toString(min(d)) AS first_session
FROM (
    SELECT ticker, d,
           (close_px / lagInFrame(close_px) OVER (PARTITION BY ticker ORDER BY d) - 1) * 100 AS cc_pct,
           oc_pct
    FROM (
        SELECT ticker, toDate(toTimeZone(window_start, 'America/New_York')) AS d,
               argMax(toFloat64(close), window_start) AS close_px,
               (argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100 AS oc_pct
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker IN ('SPY', 'QQQ')
          AND window_start >= toDateTime('2026-06-04 00:00:00')
          AND window_start < toDateTime('2026-07-08 00:00:00')
          AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
        GROUP BY ticker, d
    )
)
WHERE isFinite(cc_pct)

Na poziomie indeksów nie było nic nadzwyczajnego. Zmiana kursu zamknięcia QQQ w -1.82% plasuje się w 9 z 21 poprzednich sesji pod względem wartości bezwzględnej. Zmiana kursu SPY od otwarcia do zamknięcia wynosząca -0.34% plasuje się w 15 z 21 — wysoki próg wyznacza ostatni miesiąc, obejmujący zmienność z końca czerwca. Wyjątkowa była natomiast dywergencja wewnątrz rynku w dniu 7 lipca.

Szerokość rynku: dwa spadki na jeden wzrost

ZapytanieLiczba aprecjujących vs deprecjujących wśród tickerów z obrotem min. $1M dnia 7 lipca
Dokładny kod SQL dla każdej liczby
WITH per_ticker AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-07 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-07 00:00:00')) AS day_close,
        sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-07 00:00:00') AS day_dollar_volume
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE (window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00')
       OR (window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 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
FROM per_ticker
WHERE prior_close > 0 AND day_close > 0

2091 wzrostów, 4034 spadków, 59 bez zmian — 33.8% płynnych instrumentów odnotowało wzrosty, co odwróciło poniedziałnią hossę. Filtr pomija 5276 z 11460 tickerów o wartości poniżej 1 million USD, które były przedmiotem obrotu w ciągu dwóch sesji.

Sektor półprzewodników odnotował spadki — z wyjątkiem największych podmiotów

Wyprzedaż skoncentrowała się w sektorze półprzewodników: producenci układów, dostawcy sprzętu, podmioty z sektora pamięci oraz lewarowane fundusze ETF. Poniżej przedstawiono korelację i skalę spadków; dane nie wskazują na przyczyny.

ZapytanieSektor półprzewodników 7 lipca: zmiana względem zamknięcia z poniedziałku, zakres czasowy i wolumen w USD
Dokładny kod SQL dla każdej liczby
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-07 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-07 00:00:00')) AS day_close,
        maxIf(toFloat64(high), window_start >= '2026-07-07 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-07-07 00:00:00') AS day_low,
        argMinIf(window_start, (toFloat64(low), toInt64(toUnixTimestamp(window_start))), window_start >= '2026-07-07 00:00:00') AS low_bar,
        argMaxIf(window_start, (toFloat64(high), -toInt64(toUnixTimestamp(window_start))), window_start >= '2026-07-07 00:00:00') AS high_bar,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-07 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('AMD', 'AVGO', 'INTC', 'KLAC', 'LRCX', 'MRVL', 'MU', 'NVDA', 'SNDK', 'SOXL', 'SOXS', 'STX', 'TER', 'WDC')
      AND ((window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00')
        OR (window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 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,
    formatDateTime(toTimeZone(high_bar, 'America/New_York'), '%H:%i') AS day_high_et,
    formatDateTime(toTimeZone(low_bar, 'America/New_York'), '%H:%i') AS day_low_et,
    toHour(toTimeZone(high_bar, 'America/New_York')) * 60 + toMinute(toTimeZone(high_bar, 'America/New_York')) AS high_minute_et,
    toHour(toTimeZone(low_bar, 'America/New_York')) * 60 + toMinute(toTimeZone(low_bar, 'America/New_York')) AS low_minute_et,
    round((day_high / day_low - 1) * 100, 2) AS range_pct,
    day_dollar_bn
FROM per_name
ORDER BY ticker

Teradyne (-9.63%) i Intel (-9.59%) straciły niemal jedną dziesiątą wartości, a Marvell (-7.41%), KLA (-7.23%), Lam Research (-6.8%) oraz AMD (-6.41%) odnotowały zbliżone spadki. Spółki z sektora pamięci i magazynowania danych, które odnotowały częściowe odbicie w poniedziałek, ponownie spadły: SanDisk -7.1% w zakresie 10.36%, Western Digital -7.81%, Seagate -4.84% oraz MU -4.61% — w przypadku MU obrót akcjami wyniósł $41.6 miliarda, czyli więcej niż suma obrotów trzech pozostałych spółek pamięciowych (analiza MU zawiera szczegółowe wyjaśnienie]).

Dwaj giganci sektora nie uczestniczyli w spadkach: NVDA zamknęła się na wzrostowym poziomie 0.67%, a Broadcom zakończył sesję niemal bez zmian na poziomie -0.83% — był to dzień spadkowy dla całego sektora, z wyłączeniem jego największych członków (analiza NVDA z czerwca).

Spadki wystąpiły jednocześnie — nagły załamanie kursów: TER, LRCX i MU osiągnęły sesyjne minima o godzinach 10:41, 10:41 i 10:41 ET, natomiast SanDisk, Marvell, KLA, AVGO i SOXL odnotowały spadki w tych samych minutach (zestawienie zawiera dokładne godziny), a SOXS, lewarowany ETF typu inverse 3x na półprzewodniki, osiągnął sesyjne maksimum na poziomie 10:42 — trend był odwrotny. Intel kontynuował spadki długo po ustabilizowaniu się pozostałych spółek, osiągając minimum na poziomie 15:18. Skala spadków jest widoczna w instrumentach lewarowanych: SOXL -15.15% wobec SOXS +15.87%.

Druga strona wykresu

W stosunku dwa do jednego przeważają spadki, jednak trzecia część rynku odnotowała wzrosty. Co zyskało, podczas gdy sektory półprzewodników traciły:

ZapytanieWzrosty przy spadkach w sektorze chipów — oraz największa pojedyncza zmiana dnia
Dokładny kod SQL dla każdej liczby
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-07 00:00:00')) AS prior_close_raw,
        toFloat64(argMinIf(open, window_start, window_start >= '2026-07-07 00:00:00')) AS day_open_raw,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-07 00:00:00')) AS day_close_raw,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-07 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('CRNX', 'CVX', 'JNJ', 'LLY', 'META', 'TSLA', 'UNH', 'XOM')
      AND ((window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00')
        OR (window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00'))
    GROUP BY ticker
)
SELECT
    ticker,
    round(prior_close_raw, 2) AS prior_close,
    round(day_open_raw, 2) AS day_open,
    round(day_close_raw, 2) AS day_close,
    round((day_open_raw / prior_close_raw - 1) * 100, 2) AS gap_pct,
    round((day_close_raw / day_open_raw - 1) * 100, 2) AS intraday_pct,
    round((day_close_raw / prior_close_raw - 1) * 100, 2) AS pct_chg,
    day_dollar_bn
FROM per_name
ORDER BY ticker

Sektory energetyczny i ochrony zdrowia napędzały wzrosty: Exxon +3.78%, Chevron +3.47%, Johnson & Johnson +3.07%, Eli Lilly +2.75%, UnitedHealth +2.41%. Wyniki dwóch spółek typu megacap były rozbieżne: META wzrosło o 2.52%, podczas gdy TSLA oddało większość poniedziałkowych wzrostów przy -4.02%. Największa pojedyncza zmiana na rynku: Crinetics Pharmaceuticals (CRNX) zamknęło się na poziomie +98.79% przy obrocie rzędu $4.19 miliarda, co niemal podwoiło wartość — cały ruch nastąpił w wyniku luki nocnej (98.91% na otwarciu; podczas sesuły kurs zmienił się jedynie o -0.06%). Jest to rodzaj wyceny między sesjami, która ma miejsce tam, gdzie odbywa się handel przedsesyjny. Dane nie wskazują przyczyny.

Gdzie handlowano kapitałem

ZapytanieLiderzy wolumenu: top 6 wg obrotu w USD, top 4 wg liczby akcji (wyłączono jeden powtarzający się symbol do czasu weryfikacji podmiotu)
Dokładny kod SQL dla każdej liczby
SELECT leaderboard, ticker, dollar_volume_bn, 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(volume)) / 1e6, 1) AS shares_m
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 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-07 13:30:00' AND window_start < '2026-07-07 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 zdominował obrót na dolara przy wartości 41.6 mld USD — po jednej sesji utraty pozycji lidera odzyskał pierwsze miejsce. Za nim uplasowały się SPY ($28.68 mld USD) oraz QQQ ($26.54 mld USD), a pozostałe trzy spółki z sektora półprzewodników — NVDA ($19.95 mld USD), SNDK ($19.73 mld USD) oraz INTC ($13.82 mld USD) — dopełniły listę sześciu największych podmiotów. Koncentrację obrotu na pojedynczych walorach wskazuje wolumen względny.

W zestawieniu akcji SOXS wygenerował obrót na poziomie 566.3 mln akcji — trzykrotny odwrotny ETF na półprzewodniki zajmuje pierwsze miejsce pod względem wolumenu trzecią sesję z rzędu (poniedziałek oraz czwartek zawierają poprzednie dane), tym razem w dniu spadków w tym sektorze. CPOP stanowi przykład przeciwstawny: obrót na poziomie 161.3 mln akcji wyniósł zaledwie 0.02 mld USD — wolumen akcji jest niższy dla tanich spółek. Podstawa: 7 lipca, godziny sesyjne; wykluczono jedną spółkę o powtarzającym się symbolu do czasu weryfikacji podmiotu — jego potwierdzenia.

Przebieg sesji

ZapytanieLiczba obróconych akcji w 30-minutowych przedziałach, sesja regulaminowa (miliardy)
Dokładny kod SQL dla każdej liczby
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-07 13:30:00' AND window_start < '2026-07-07 20:00:00'
GROUP BY et_time
ORDER BY et_time

2 miliardów akcji w pierwszej półgodzinie, dołek na poziomie 0.64 miliardów przy 13:30 oraz 2.14 miliardów przy zamknięciu o godzinie 15:30 — typowy kształt litery U, z największą aktywnością na zamknięciu.

Rynek opcji

ZapytanieDane z całego dnia opcyjnego: wolumen, call share, 0DTE oraz dwa kontrakty ograniczające zamknięcie SPY
Dokładny kod SQL dla każdej liczby
WITH
    (
        SELECT (groupArray(und), groupArray(strike), groupArray(typ), groupArray(vol), groupArray(avg_px), groupArray(is_0dte))
        FROM (
            SELECT any(underlying_symbol) AS und, any(toFloat64(strike_price)) AS strike, any(option_type) AS typ,
                   sum(size) AS vol, round(avg(toFloat64(price)), 3) AS avg_px,
                   if(substring(ticker, length(ticker) - 14, 6) = '260707', 1, 0) AS is_0dte
            FROM global_markets.options_trades
            WHERE sip_timestamp >= '2026-07-07 00:00:00' AND sip_timestamp < '2026-07-08 00:00:00'
            GROUP BY ticker
            ORDER BY vol DESC
            LIMIT 2
        )
    ) AS top2,
    (
        SELECT round(toFloat64(argMax(close, window_start)), 2)
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY' AND window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 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) = '260707') / sum(size), 1) AS same_day_expiry_pct,
    round(toFloat64(sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260707')) / 1e6, 2) AS same_day_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,
    round(toFloat64(sumIf(size, underlying_symbol = 'INTC')) / 1e6, 2) AS intc_contracts_m,
    top2.1[1] AS top_contract_underlying,
    top2.2[1] AS top_contract_strike,
    top2.3[1] AS top_contract_type,
    if(top2.3[1] = 'C', 1, 0) AS top_contract_is_call,
    top2.4[1] AS top_contract_volume,
    top2.5[1] AS top_contract_avg_price,
    round(top2.2[1] - spy_regular_close, 2) AS top_strike_minus_spy_close,
    top2.1[2] AS second_contract_underlying,
    top2.2[2] AS second_contract_strike,
    top2.3[2] AS second_contract_type,
    if(top2.3[2] = 'P', 1, 0) AS second_contract_is_put,
    top2.4[2] AS second_contract_volume,
    top2.5[2] AS second_contract_avg_price,
    round(spy_regular_close - top2.2[2], 2) AS spy_close_minus_second_strike,
    top2.6[1] + top2.6[2] AS both_top_contracts_same_day,
    spy_regular_close AS spy_close
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-07 00:00:00' AND sip_timestamp < '2026-07-08 00:00:00'

Na rynku opcji wyhandlowano 61.13 milionów kontraktów w ramach 10.6 milionów transakcji — wolumen zbliżony do poziomu z poniedziałku — przy czym opcje typu call nadal stanowiły 55.6% obrotu mimo spadkowych notowań. Instrumenty z terminem wygaśnięcia w dniu transakcji stanowiły 31.2% całkowitego obrotu (19.08 milionów kontraktów) — udział 0DTE w typowy wtorek. Dwa najbardziej aktywne kontrakty tego dnia wystąpiły w okolicach zamknięcia sesji, oba z terminem wygaśnięcia w dniu transakcji i ceną wykonania SPY: call przy cenie $749 (873438 kontraktów przy średniej cenie $0.647) zakończył sesję 1.34 poza pieniądzem, natomiast put przy cenie $747 (785834 kontraktów przy cenie $0.88) zakończył sesję 0.66 po drugiej stronie. Zamknięcie indeksu SPY na poziomie 747.66 znalazło się pomiędzy dwoma największymi zakładami dnia, a oba instrumenty wygasły bezwartościowe.

Arkusz notowań

Pod każdą ceną na tej stronie znajduje się strumień notowań — National Best Bid and Offer, nieustannie aktualizowany dla każdej spółki z listy; jest to najtrudniej dostępne zestawienie danych w tym magazynie. Jest ono mierzone tutaj podczas każdej sesji, zarówno zwyczajnej, jak i nietypowej.

ZapytaniePełny strumień NBBO akcji: 7 lipca vs aktualizacje z 6 lipca
Dokładny kod SQL dla każdej liczby
SELECT
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-07')) / 1e6, 2) AS jul7_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-06')) / 1e6, 2) AS jul6_updates_m,
    round((countIf(toDate(sip_timestamp) = toDate('2026-07-07')) / countIf(toDate(sip_timestamp) = toDate('2026-07-06')) - 1) * 100, 1) AS day_over_day_pct,
    toHour(toTimeZone(maxIf(sip_timestamp, toDate(sip_timestamp) = toDate('2026-07-07')), 'America/New_York')) * 60
        + toMinute(toTimeZone(maxIf(sip_timestamp, toDate(sip_timestamp) = toDate('2026-07-07')), 'America/New_York')) AS jul7_last_quote_et_minute,
    round(countIf(sip_timestamp >= '2026-07-07 19:00:00' AND sip_timestamp < '2026-07-07 20:00:00') / 1e6, 2) AS jul7_close_hour_updates_m
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-07-06 00:00:00' AND sip_timestamp < '2026-07-08 00:00:00'

Arkusz akcji odnotował 492.76 milion aktualizacji NBBO dnia 7 lipca — o 25.7% więcej niż 391.96 milion w poniedziałek. Odnotowano więcej aktualizacji, a nie szersze kwotowania:

ZapytanieTouch w luce płynności: mediana spreadu i częstotliwość cytowań, 10:36–10:48 ET vs kontrola południowa (po 12 min każda)
Dokładny kod SQL dla każdej liczby
SELECT
    ticker,
    round(quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00'), 2) AS pocket_spread_bps,
    round(quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00'), 2) AS midday_spread_bps,
    round(quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00')
        - quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00'), 2) AS spread_delta_bps,
    round(countIf(sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00') / 1e3, 1) AS pocket_updates_k,
    round(countIf(sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00') / 1e3, 1) AS midday_updates_k,
    round(countIf(sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00') / countIf(sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00'), 1) AS quote_rate_ratio,
    round(count() / 1e6, 2) AS session_updates_m,
    countIf(bid_price <= 0 OR ask_price <= 0 OR bid_price > ask_price) AS dropped_invalid_quotes
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('AMD', 'INTC', 'MU', 'NVDA', 'QQQ', 'SNDK', 'SOXL', 'SOXS', 'SPY', 'WDC')
  AND sip_timestamp >= '2026-07-07 13:30:00' AND sip_timestamp < '2026-07-07 20:00:00'
GROUP BY ticker
ORDER BY ticker

W trakcie porannych minimów sprawdzane spółki aktualizowały notowania wielokrotnie względem tempa z południa dnia — MU 3.4x, SanDisk 4.1x, AMD 4.6x — a spread bid-ask niemal się nie zmienił: mediana szerokości dla MU wynosiła 5.02 bps w porannym dołku względem 4.81 w południe, dla NVDA wynosiła 1.04 względem 1.01, natomiast dla SPY nie uległa żadnej zmianie (zmiana o 0 bps przy dotknięciu na poziomie 0.27 bps). Dwie spółki, które odnotowały realny wzrost kosztów transakcyjnych, to AMD (+2.6 bps) i Intel (+0.95) — Intel był jedyną spółką, której cena nadal spadała po porannym dołku — podczas gdy dźwignięta para faktycznie zwęziła się na dnie (SOXL -2.59 bps, SOXS -1.49). Deficyt płynności objawia się szerokimi kwotowaniami i brakiem aktywności; tutaj wystąpiło coś przeciwnego — burza aktualizacji przy zachowaniu stałej szerokości. Koszty realizacji zleceń nadal zależały od spółki: SOXS kwotował szerokość 19.59 bps na dnie względem 1.04 dla NVDA.

ZapytanieŚredni spread cytowany SPY ważony aktualizacjami: ranking z 7 lipca względem ostatniego miesiąca (rank 1 = najwęższy)
Dokładny kod SQL dla każdej liczby
SELECT
    round(anyIf(avg_spread_cents, d = toDate('2026-07-07')), 3) AS jul7_avg_spread_cents,
    arrayCount(x -> x < anyIf(avg_spread_cents, d = toDate('2026-07-07')), groupArrayIf(avg_spread_cents, d != toDate('2026-07-07'))) + 1 AS tightness_rank,
    count() AS sessions_compared,
    round(min(avg_spread_cents), 3) AS tightest_session_cents,
    round(max(avg_spread_cents), 3) AS widest_session_cents,
    toString(min(d)) AS first_session,
    sum(dropped_invalid) AS dropped_invalid_quotes
FROM (
    SELECT toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS d,
           avgIf(toFloat64(ask_price - bid_price), bid_price > 0 AND ask_price >= bid_price) * 100 AS avg_spread_cents,
           countIf(NOT (bid_price > 0 AND ask_price >= bid_price)) AS dropped_invalid
    FROM global_markets.cache_stocks_quotes
    WHERE ticker = 'SPY'
      AND sip_timestamp >= toDateTime('2026-06-05 00:00:00')
      AND sip_timestamp < toDateTime('2026-07-08 00:00:00')
      AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
    GROUP BY d
)

Ta sekcja „zwykłego sprawdzenia” jest publikowana podczas każdej sesji: biorąc pod uwagę średni spread kwotowany ważony aktualizacjami, 7 lipca był najwęższą sesją dla SPY w ciągu ostatniego miesiąca1.809 centów, ranking 1 z 21, przy czym najszerszy poziom w miesiącu wynosił 2.865 centów. Fakt, że czerwony arkusz (spadkowy) wyceniono przy najwęższym dotknięciu indeksu w miesiącu, może potwierdzić wyłącznie strumień notowań.

ZapytanieStrumień NBBO opcji: 7 lipca względem 6 lipca oraz względem cytowań akcji z tej samej sesji
Dokładny kod SQL dla każdej liczby
WITH
    (
        SELECT count()
        FROM global_markets.cache_options_quotes
        WHERE toYYYYMMDD(sip_timestamp) = 20260707
    ) AS jul7_option_rows,
    (
        SELECT count()
        FROM global_markets.cache_options_quotes
        WHERE toYYYYMMDD(sip_timestamp) = 20260706
    ) AS jul6_option_rows,
    (
        SELECT count()
        FROM global_markets.cache_stocks_quotes
        WHERE toYYYYMMDD(sip_timestamp) = 20260707
    ) AS jul7_stock_quote_rows
SELECT
    jul7_option_rows AS jul7_option_quote_rows,
    round(jul7_option_rows / 1e9, 2) AS jul7_option_quote_updates_bn,
    round(jul6_option_rows / 1e9, 2) AS jul6_option_quote_updates_bn,
    round((jul7_option_rows / jul6_option_rows - 1) * 100, 1) AS day_over_day_pct,
    round(jul7_stock_quote_rows / 1e6, 2) AS jul7_stock_quote_updates_m,
    round(jul7_option_rows / jul7_stock_quote_rows, 1) AS jul7_option_to_stock_ratio

Strumień notowań opcyjnych jest jeszcze większy i stanowi największy zestaw danych w tym magazynie. 7 lipca odnotowano 8.69 miliard aktualizacji NBBO dla opcji, co stanowi 17.6 wielkości całego arkusza notowań akcji z tej samej sesji (492.76 milion aktualizacji). Poniedziałkowy arkusz opcji zawierał 6.49 miliard, zatem strumień opcyjny wzrósł o 34% sesja do sesji, przy wzroście strumienia akcji o 25.7%.

ZapytanieCytowania opcji SPY 7 lipca: pełny root oraz touch near-the-money w luce płynności względem kontroli południowej
Dokładny kod SQL dla każdej liczby
WITH
    (
        SELECT count()
        FROM global_markets.cache_stocks_quotes
        WHERE toYYYYMMDD(sip_timestamp) = 20260707
    ) AS jul7_stock_quote_rows,
    (
        SELECT round(toFloat64(avg(close)), 2)
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND window_start >= '2026-07-07 14:36:00' AND window_start < '2026-07-07 14:48:00'
    ) AS spy_pocket_price,
    (
        SELECT round(toFloat64(avg(close)), 2)
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND window_start >= '2026-07-07 17:30:00' AND window_start < '2026-07-07 17:42:00'
    ) AS spy_midday_price
SELECT
    round(count() / 1e6, 2) AS spy_option_updates_m,
    round(100.0 * count() / jul7_stock_quote_rows, 1) AS pct_of_whole_equity_quote_tape,
    uniqExact(ticker) AS spy_contracts_quoted,
    round(countIf(substring(ticker, -15, 6) = '260707') / 1e6, 2) AS same_day_updates_m,
    spy_pocket_price AS spy_price_in_pocket,
    spy_midday_price AS spy_price_midday,
    round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price),
        bid_price > 0 AND ask_price >= bid_price
        AND substring(ticker, -15, 6) = '260707'
        AND abs(toFloat64(toUInt32OrZero(substring(ticker, -8))) / 1000 - spy_pocket_price) <= 2
        AND sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00'), 3) AS pocket_atm_spread_dollars,
    round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price),
        bid_price > 0 AND ask_price >= bid_price
        AND substring(ticker, -15, 6) = '260707'
        AND abs(toFloat64(toUInt32OrZero(substring(ticker, -8))) / 1000 - spy_midday_price) <= 2
        AND sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00'), 3) AS midday_atm_spread_dollars,
    round(pocket_atm_spread_dollars - midday_atm_spread_dollars, 3) AS atm_spread_delta_dollars,
    round(countIf(substring(ticker, -15, 6) = '260707'
        AND abs(toFloat64(toUInt32OrZero(substring(ticker, -8))) / 1000 - spy_pocket_price) <= 2
        AND sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00') / 1e3, 1) AS pocket_atm_updates_k,
    round(countIf(substring(ticker, -15, 6) = '260707'
        AND abs(toFloat64(toUInt32OrZero(substring(ticker, -8))) / 1000 - spy_midday_price) <= 2
        AND sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00') / 1e3, 1) AS midday_atm_updates_k,
    round(pocket_atm_updates_k / midday_atm_updates_k, 1) AS atm_quote_rate_ratio,
    countIf(NOT (bid_price > 0 AND ask_price >= bid_price)
        AND substring(ticker, -15, 6) = '260707') AS dropped_invalid_same_day_quotes
FROM global_markets.cache_options_quotes
WHERE ticker >= 'O:SPY26' AND ticker < 'O:SPY27'
  AND sip_timestamp >= '2026-07-07 13:30:00' AND sip_timestamp < '2026-07-07 20:00:00'
HAVING pocket_atm_updates_k > 0 AND midday_atm_updates_k > 0

Same kontrakty SPY z terminem zapadalności w 2026 roku pochłonęły 327.55 milion tych aktualizacji w godzinach regularnych, rozłożonych na 9116 wymienionych kontraktach. To stanowi 66.5% tego, co wykwotował cały rynek akcji tego samego dnia, dla jednego instrumentu bazowego. Kontrakty z zapadalnością w tym samym dniu, które stanowią arkusz 0DTE, odpowiadają za 13.61 milion aktualizacji.

Przez dwanaście minut porannego braku płynności, kontrakty at-the-money o zapadalności w tym samym dniu kwotowały medianę szerokości na poziomie $0.01, czyli dokładnie tyle samo, co w południe ($0.01, delta wynosząca 0). Tempo aktualizacji dla tej samej pary wynosiło 3x: 191.1 tysięcy aktualizacji na dołkach względem 64 tysięcy w południe. Zmienność opcji powtórzyła zachowanie akcji. Szerokość pozostała stała mimo intensywnej pracy mechanizmów kwotowania. At-the-money oznacza strike w granicach 2 USD od średniej ceny SPY w tym samym oknie czasowym; panel podaje obie ceny (746 w dołku, 749.08 w południe).

Stopy procentowe: krzywa uległa wyprzedaży wraz z trendem wzrostowym

ZapytanieKrzywa obligacji skarbowych: 7 lipca vs dane z 6 lipca (tylko uwzględnione terminy zapadalności)
Dokładny kod SQL dla każdej liczby
SELECT
    t.1 AS curve_point,
    round(t.2, 2) AS jul7_yield_pct,
    round((t.2 - t.3) * 100) AS session_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-07') AS d,
         (SELECT * FROM global_markets.treasury_yields WHERE date = '2026-07-06') AS p
)

Obligacje skarbowe traciły na wartości wraz z trendem wzrostowym. Rentowność 1-roczna wzrosła o 11 punktów bazowych do poziomu 4.06%, 10-letnia wzrosła o 7 do 4.55%, a 30-letnia wzrosła o 6 do 5.05% — przekraczając poziom pięciu procent. spread 2s10s utrzymał się na poziomie 0.36 punktów procentowych (zmiana o 1 punktów bazowych): był to ruch głównie równoległy, a nie zmiana kształtu krzywej.

Kalendarz rynkowy

ZapytanieKalendarz korporacyjny i przepływ informacji z 7 lipca w jednym wierszu
Dokładny kod SQL dla każdej liczby
WITH
    (
        SELECT (count(), uniqExact(publisher))
        FROM global_markets.stocks_news
        WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-07-07'
    ) AS news,
    (
        SELECT (argMax(t, n), max(n), max(n) - arraySort(x -> -x, groupArray(n))[2])
        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-07'
            )
            WHERE t != 'SPCX'
            GROUP BY t
        )
    ) AS top_news
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-07') AS ex_dividend_records,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date = '2026-07-07') AS splits_executed,
    (SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-07') AS reverse_splits,
    (SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-07') AS forward_splits,
    (SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-07') AS ipos_listed,
    (SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-07') AS sec_filings,
    (SELECT uniqExactIf(accession_number, form_type = '4') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-07') AS insider_form4_filings,
    (SELECT uniqExactIf(accession_number, form_type = '8-K') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-07') AS filings_8k,
    news.1 AS news_articles,
    news.2 AS news_publishers,
    top_news.1 AS most_covered_ticker,
    if(top_news.1 = 'NVDA', 1, 0) AS most_covered_is_nvda,
    top_news.2 AS most_covered_articles,
    top_news.3 AS most_covered_lead_over_next,
    (SELECT countIf(has(tickers, 'CRNX')) FROM global_markets.stocks_news
     WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-07-07') AS crnx_articles

Dla 79 spółek nastąpiło odcięcie dywidendy, przeprowadzono 7 podziałów akcji — 5 z nich to reverse splits, czyli konsolidacje poniżej jednego dolara, które generują sztuczne, trójcyfrowe wzrosty na nieskorygowanych wykresach, przy 2 prognozach — oraz pojawił się 1 nowy listing. Indeks SEC odnotował 2433 zgłoszeń: 463 Form 4s, 173 raportów 8-K. Nasz kanał informacyjny zawierał 215 artykułów od 3 wydawców; najczęściej omawianą spółką była NVDA z liczbą 17 artykułów, co stanowi 4 przewagi nad kolejną pozycją — tą samą NVDA, która zamknęła się na zielono mimo czerwonego dnia dla swojego sektora. Kanał zawierał 0 artykułów na temat CRNX, największego wzrostu na rynku — był to jednak temat skupiający uwagę jednego kanału, a nie całych mediów.

Sesja zweryfikowana

ZapytaniePodsumowanie sesji: obserwowany zakres minutowych słupków SPY, tabela świąteczna oraz najbliższe zamknięcie w kalendarzu
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,
    count() AS spy_minute_bars,
    countIf(window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00') AS regular_session_bars,
    uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00') AS day_sessions,
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-07') AS jul7_holiday_rows,
    (SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-07' AND status = 'closed') AS next_closure_date,
    (SELECT argMin(name, date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-07' AND status = 'closed') AS next_closure_name
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-07 00:00:00' AND window_start < '2026-07-08 00:00:00'

7 lipca była to pełna sesja, a nie wczesne zamknięcie: słupki SPY trwają od 04:00 do 19:59 czasu nowojorskiego, obejmując dokładnie 390 słupków w regularnym oknie czasowym, a tabela świąteczna zawiera 0 wierszy dla tej daty. Następne planowane zamknięcie nastąpi Labor Day, 2026-09-07.

Uwagi do danych

  • Wolumen w USD jest wskaźnikiem minutowym — cena zamknięcia pomnożona przez wolumen zsumowany dla danej minuty w godzinach sesji regularnej.
  • Podział na lukę oraz ruch wewnątrz sesji jest mierzony od pierwszej świecy sesji regularnej danego waloru (otwarcia) względem ostatniego zamknięcia sesji poprzedniej; pozostała część obejmuje ruch od otwarcia do zamknięcia w dniu 7 lipca.
  • Zsynchronizowane poranne minima zostały zweryfikowane względem sąsiednich świec w momencie tworzenia raportu — każda wartość jest śledzona przez sąsiednie minuty, a nie pojedynczy zapis; żadna nie wymagała oznaczenia jako anomalia. W przypadku wystąpienia ekstremum w więcej niż jednej minucie, zestawienie pokazuje najwcześniejszą taką świecę (deterministyczne rozstrzyganie równości).
  • Jeden walor o powtarzającym się symbolu został wykluczony z rankingów wolumenu oraz zestawień wiadomości do czasu weryfikacji podmiotu; osobny wpis zawiera dowody.
  • Statystyki spreadu kwotowanego wykluczają nieprawidłowe kwotowania (jednostronne lub niespójne zapisy NBBO), a każda kolumna spreadu zawiera informację o liczbie odrzuconych rekordów. "Średnia ważona aktualizacjami spread" oblicza średnią szerokość kwotowań dla każdej poprawnej aktualizacji NBBO — okresy dużej aktywności mają większą wagę; jest to statystyka kwotowań, a nie koszt pojedynczej transakcji.
  • Kwotowania opcji z dnia 7 lipca pojawiły się po publikacji tego wpisu. cache_options_quotes wykazuje najdłuższe opóźnienie w przetwarzaniu danych przez magazyn, dlatego pierwsza edycja zawierała pusty zapis w miejscu, gdzie obecnie znajdują się panele kwotowań opcji. Dane dotarły, a błąd pustego zapisu wystąpił podczas regeneracji, dlatego niniejsza rewizja obejmuje 8.69 miliarda aktualizacji z danej sesji. Taśma kwotowań akcji była kompletna od początku: ostatnia aktualizacja z 7 lipca nastąpiła o godzinie 1199 czasu ET, przy czym w ostatniej godzinie sesji regularnej odnotowano 77.13 milionów aktualizacji (kolumny zapisów w panelu taśmy kwotowań).
  • Szerokość kwotowań opcji jest mierzona dla opcji at-the-money. Mediana z każdej aktualizacji dla wszystkich wymienionych kontraktów z tego samego dnia jest statystyką złożoną: kontrakty głęboko at-the-money mają szerokość liczoną w dolarach, kontrakty daleko od ceny wykonania (out-of-the-money) mają szerokość liczoną w centach; zestawienie pokazuje również, które kontrakty zmieniają kwotowania w trakcie sesji. Porównanie wartości "pocket" względem południa ogranicza się do cen wykonania w zakresie +/- 2 USD od średniej ceny SPY w każdym oknie czasowym; obie ceny są kolumnami w panelu. Nieprawidłowe kwotowania opcji (jednostronne lub niespójne) są uwzględniane w tym panelu, a nie pomijane.
  • Dane dotyczące obligacji skarbowych z 7 lipca zostały przetworzone z opóźnieniem — pierwsza edycja zawierała informację o opóźnieniu; błąd został wykryty 8 lipca po otrzymaniu danych, a niniejsza rewizja zawiera rzeczywistą krzywą.

Metodologia

  • Okres obejmuje pojedynczą sesję handlową (sesja 1, zweryfikowana na podstawie obserwowanych słupków i kalendarza świąt — nigdy nie przyjmowana domyślnie). Znaczniki czasu są przechowywane w strefie UTC i konwertowane na czas nowojorski wewnątrz zapytań. „Close” oznacza ostatni słupek minutowy regularnej sesji; zmiany dobowe porównują 7 lipca z 6 lipca, czyli kolejne sesje handlowe.
  • Kolumny dziesiętne są rzutowane na typ 64-bit float przed arytmetyką proporcji; terminy wygaśnięcia opcji są ponownie analizowane z tickerów OCC (własna kolumna wygaśnięcia w tabeli jest błędna). Wszystkie panele są odczytywane raz, w momencie tworzenia, poprzez zabezpieczoną ścieżkę tylko do odczytu. Stan magazynu danych na dzień 8 lipca 2026 r.
  • Sekcja tape-quote została dodana w rewizji z 8 lipca (ta sama rewizja, która zastąpiła opóźnienie obligacji skarbowych drukiem landed), a panele kwotowań opcji zostały przepisane po pojawieniu się wierszy NBBO dla opcji z dnia 7 lipca. Generowanie odbywa się w trybie wsadowym: panel kwotowań opcji SPY skanuje kilkaset milionów rekordów NBBO, podczas gdy liczniki tape-size odczytują sumy wierszy partycji dobowych, co pozwala tabeli zawierającej miliardy wierszy na sesję odpowiedzieć na zapytanie o liczbę w mniej niż sekundę.

Każdy panel jest wynikiem zapytania przechowywanego — wykres, tabela i SQL stanowią jeden obiekt. Można wkleić dowolny z nich do terminala Strasmore i dostosować do własnych potrzeb. Poprzednia sesja: 6 lipca.