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

Podsumowanie rynku 6 lipca 2026

Analiza sesji po przerwie Independence Day. Wzrosty indeksów, znacząca dywergencja sektorowa oraz analiza szerokości rynku po długim weekendzie.

Poniedziałek, 6 lipca 2026 r. — pierwsza sesja po długim weekendzie z okazji Independence Day — rozpoczęła się lukiem wzrostowym, który został utrzymany. QQQ zamknął się na poziomie 1.39% względem 0.42% indeksu DIA, co stanowi odzwierciedlenie czwartkowej rotacji, a szerokość rynku była dodatnia: 3861 płynnych walorów zyskało względem 2242. Większość ruchu wynikała z luki otwarcia, wycenionej na najniższym poziomie indeksu z ostatniego miesiąca. Każda poniższa liczba pochodzi z zapytania do bazy danych.

Wyniki rynkowe

Zmiany porównują ostatnią minutową świecę z sesji regulacyjnej 6 lipca z czwartkiem 2 lipca — jeden dzień świąteczny wstecz.

ZapytanieSPY / QQQ / DIA / IWM — 6 lipca vs zamknięcie z 2 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-02 13:30:00' AND window_start < '2026-07-02 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-06 13:30:00' AND window_start < '2026-07-06 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.39% funduszu QQQ przewodził czterem funduszom ETF na indeksy, natomiast 0.42% funduszu DIA zajął ostatnie miejsce — jest to dokładne przeciwieństwo czwartku, kiedy DIA wzrosło, a QQQ spadło. SPY zamknął się na poziomie 0.87%, a IWM na 0.45%. Głównym trendem dnia był skok cenowy, a nie stopniowe wzrosty: QQQ otworzył się 1.01% powyżej czwartkowego zamknięcia i dodał jedynie 0.38% w trakcie sesji; luka w cenie SPY wynosząca 0.53% stanowiła większość jego 0.87% dziennego wzrostu. IWM (0.07%) oraz DIA (0.17%) wykazały minimalne luki, zamiast tego notując stopniowe wzrosty w trakcie sesji.

Czy dzień był nietypowy?

ZapytanieRuch SPY od otwarcia do zamknięcia w rankingu sesji z ostatniego miesiąca (rank 1 = największy ruch bezwzględny)
Dokładny kod SQL dla każdej liczby
SELECT round(anyIf(oc_pct, d = toDate('2026-07-06')), 2) AS day_move_pct,
       arrayCount(x -> x > abs(anyIf(oc_pct, d = toDate('2026-07-06'))), groupArrayIf(abs(oc_pct), d != toDate('2026-07-06'))) + 1 AS abs_move_rank,
       count() AS 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-06 00:00:00')
      AND window_start < toDateTime('2026-07-07 00:00:00')
      AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
    GROUP BY d
)

W odniesieniu do indeksu: nie, zmiana kursu SPY od otwarcia do zamknięcia na poziomie 0.34% plasuje się w 13 z 19 poprzednich sesji pod względem wartości bezwzględnej — czyli w środku stawki. Ruch wewnątrz sesji był typowy; kluczowe znaczenie miał lukę cenową.

Szerokość rynku: wzrosty dominują, powrót do wzrostów

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

3861 wzrostów, 2242 spadków, 86 bez zmian — 62.4% płynnych instrumentów odnotowało wzrosty. Wskaźniki oparte na wagach indeksu oraz na równej liczbie spółek wykazały wzrosty, podczas gdy czwartek przyniósł rozbieżność. Filtr wyklucza 5361 z 11550 spółek o obrocie poniżej 1 mln USD w ciągu dwóch sesji.

Sektor po sektorze: jak duża była rozbieżność?

Cztery spółki typu megacap nie tworzą całego rynku. Panel wycenia dzień poprzez jedenaście głównych funduszy ETF, po jednym na każdy segment indeksu S&P 500, przy zachowaniu tego samego koszyka w każdej sesji. Należy obserwować spread między najlepszym a najgorszym sektorem: dzienną dywersyfikację.

ZapytanieJedenaście sektorowych ETF: 6 lipca vs zamknięcie z 2 lipca, podział na luki i ruch wewnątrzsesyjny
Dokładny kod SQL dla każdej liczby
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-06 00:00:00')) AS prior_close,
        toFloat64(argMinIf(open, window_start, window_start >= '2026-07-06 00:00:00')) AS day_open,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-06 00:00:00')) AS day_close,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-06 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-02 13:30:00' AND window_start < '2026-07-02 20:00:00')
        OR (window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00'))
    GROUP BY ticker
)
SELECT
    ticker,
    round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
    round((day_open / prior_close - 1) * 100, 2) AS gap_pct,
    round((day_close / day_open - 1) * 100, 2) AS intraday_pct,
    day_dollar_bn,
    round(max((day_close / prior_close - 1) * 100) OVER () - (day_close / prior_close - 1) * 100, 2) AS points_behind_leader
FROM per_name
ORDER BY pct_chg DESC, ticker ASC

Sektor technologiczny (XLK) zdominował dzień na poziomie 1.71%, co stanowi niemal całą różnicę: 1.19% na otwarciu, 0.52% w ciągu kolejnych sześciu i pół godziny. Następnie wzrosty odnotowały sektory finansowy (0.99%) oraz przemysłowy (0.9%). Potem następuje zmiana trendu: pięć zielonych wierszy ustępuje sześciu czerwonym; sektory defensywne — media, ochrona zdrowia, dobra podstawowe — spadły o tyle, co -1.08%. Od góry do dołu, 2.79 punktów procentowych dzieliło najlepszy sektor od najgorszego w dniu, w którym indeks S&P 500 zmienił wartość o 0.87% — co stanowi wielokrotność ruchu indeksu i dowód na to, że zielonego dnia nie należy interpretować w sposób jednowymiarowy. Nieruchomości oraz media poruszały się w przeciwnym kierunku niż technologia: otwarcia były niemal płaskie (0.09%, -0.11%), a następnie nastąpił spadek przez całą sesję (-1.01% oraz -0.92% od otwarcia do zamknięcia).

Najważniejsze wydarzenia dnia: połowiczne odwrócenie spadków w sektorze pamięci

Sektor pamięci i magazynowania danych, który odnotował spadki w środę i czwartek, wzrósł w poniedziałek — jednak tylko w połowie.

ZapytanieSpółki z sektora pamięci i pamięci masowej: zmiana vs zamknięcie z czwartku, ramy czasowe zakresu i wolumen USD
Dokładny kod SQL dla każdej liczby
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-06 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-06 00:00:00')) AS day_close,
        maxIf(toFloat64(high), window_start >= '2026-07-06 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-07-06 00:00:00') AS day_low,
        argMinIf(window_start, toFloat64(low), window_start >= '2026-07-06 00:00:00') AS low_bar,
        argMaxIf(window_start, toFloat64(high), window_start >= '2026-07-06 00:00:00') AS high_bar,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-06 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-02 13:30:00' AND window_start < '2026-07-02 20:00:00')
        OR (window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 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

Liderami odbicia były dwa podmioty produkujące dyski: Western Digital 7.14% oraz Seagate 6%, osiągające szczyty w połowie przedpołudnia (10:44 i 10:39 ET). Dwa pozostałe spółki nie uczestniczyły we wzroście: MU zyskało 0.88%, osiągając minimum na ostatniej świecy sesji (15:59); SanDisk zamknęło się na poziomie -0.03% w zakresie 7.27%. Wartość obrotu akcjami MU wyniosła $30.9 miliarda, czyli więcej niż suma obrotów pozostałych trzech spółek (szczegółowa analiza MU opisuje wyniki za kwartał]).

Druga część rotacji kapitału dotyczyła spółek typu megacap:

ZapytanieRotacja megacap: zmiana vs zamknięcie z czwartku, ramy czasowe zakresu i wolumen USD
Dokładny kod SQL dla każdej liczby
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-06 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-06 00:00:00')) AS day_close,
        maxIf(toFloat64(high), window_start >= '2026-07-06 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-07-06 00:00:00') AS day_low,
        argMinIf(window_start, toFloat64(low), window_start >= '2026-07-06 00:00:00') AS low_bar,
        argMaxIf(window_start, toFloat64(high), window_start >= '2026-07-06 00:00:00') AS high_bar,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-06 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-02 13:30:00' AND window_start < '2026-07-02 20:00:00')
        OR (window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 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

TSLA odnotowało jednostronny wzrost do poziomu 6.86% — minimum przy 09:37 ET, maksimum na ostatniej świecy (15:59) — co stanowi odwrotność spadków z czwartku. AAPL zyskało 1.49%, a NVDA 0.57%; MSFT było jedyną spadającą spółką typu megacap (-0.7%), osiągając maksimum na otwarciu o 09:30.

Gdzie handlowano kapitałem

ZapytanieLiderzy wolumenu: top 6 wg obrotu USD, top 4 wg liczby akcji (wyłączono jeden powtarzający się symbol w oczekiwaniu na weryfikację 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-06 13:30:00' AND window_start < '2026-07-06 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-06 13:30:00' AND window_start < '2026-07-06 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

SPY dominował w obrocie USD na poziomie 31.49 mld USD, przy czym MU (30.9 mld USD) uplasował się tuż za nim — kończąc cztero sesyjne serie na szczycie MU (poniedziałek do czwartek). Na rynku akcji SOXS — ETF typu 3x-inverse na sektor półprzewodników — odnotował obrót na poziomie 467.1 mln akcji, ponownie zajmując pierwsze miejsce mimo wzrostów spółek, które śledzi.

ZapytanieLiczba 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-06 13:30:00' AND window_start < '2026-07-06 20:00:00'
GROUP BY et_time
ORDER BY et_time

1.96 mld akcji w pierwszej półgodzinie, dno na poziomie 0.68 mld przy 14:30, oraz 2.1 mld przy zamknięciu o godzinie 15:30 — typowy wewnątrzsesyjny kształt wykresu, z największą aktywnością na otwarciu i zamknięciu.

Rynek opcji

ZapytanieJeden wiersz dla całego dnia opcyjnego: wolumen, call share oraz wygaśnięcie w poniedziałek
Dokładny kod SQL dla każdej liczby
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-06 00:00:00' AND sip_timestamp < '2026-07-07 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-06 13:30:00' AND window_start < '2026-07-06 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) = '260706') / sum(size), 1) AS same_day_expiry_pct,
    round(toFloat64(sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260706')) / 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 = 'TSLA')) / 1e6, 2) AS tsla_contracts_m,
    top_contract.1 AS top_contract_underlying,
    top_contract.2 AS top_contract_strike,
    top_contract.3 AS top_contract_type,
    if(top_contract.3 = 'C', 1, 0) AS top_contract_is_call,
    top_contract.4 AS top_contract_expiry,
    round(toFloat64(top_contract.5) / 1e6, 2) AS top_contract_volume_m,
    round(top_contract.7, 3) AS top_contract_avg_price,
    round(spy_regular_close - top_contract.2, 2) AS spy_close_minus_strike
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-06 00:00:00' AND sip_timestamp < '2026-07-07 00:00:00'

Na rynku opcji wyhandlowano 60.98 milionów kontraktów w ramach 10.53 milionów transakcji, z czego 58.4% stanowiły opcje typu call. Kontrakty z terminem wygaśnięcia w dniu notowań stanowiły 38.7% całkowitego obrotu (23.57 milionów kontraktów) — jest to typowy poniedziałkowy wolumen 0DTE, niższy od czwartkowego wyniku z dnia przedświątecznego. Najbardziej aktywnym kontraktem była opcja call na SPY z terminem wygaśnięcia w dniu notowań, o wartości $751, z obrotem rzędu 1.08 milionów kontraktów przy średniej cenie $0.564; cena zamknięcia SPY była o $0.3 wyższa od ceny wykonania, co oznacza status in the money. Była to opcja call dominująca na wykresie, podczas gdy czwartek zakończył się na opcji put.

Rejestr transakcji: czy luki wzrostowe wystąpiły przy szerokich spreadach?

Pod każdą ceną znajduje się strumień ofert — National Best Bid and Offer, nieustannie aktualizowany dla wszystkich spółek z listy. Luka otwarcia to moment, w którym oferty mogą stać się niekorzystne, dlatego mierzymy to zadasesji.

ZapytanieCały strumień NBBO akcji: 6 lipca vs sesja z 2 lipca oraz skupienie kwotowań w poniedziałek
Dokładny kod SQL dla każdej liczby
SELECT
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-06')) / 1e6, 2) AS jul6_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-02')) / 1e6, 2) AS jul2_updates_m,
    round((countIf(toDate(sip_timestamp) = toDate('2026-07-06')) / countIf(toDate(sip_timestamp) = toDate('2026-07-02')) - 1) * 100, 1) AS day_over_day_pct,
    round(countIf(sip_timestamp >= '2026-07-06 13:30:00' AND sip_timestamp < '2026-07-06 14:00:00') / 1e6, 2) AS jul6_open_half_hour_m,
    round(countIf(sip_timestamp >= '2026-07-06 17:30:00' AND sip_timestamp < '2026-07-06 18:00:00') / 1e6, 2) AS jul6_midday_half_hour_m,
    round(countIf(sip_timestamp >= '2026-07-06 19:30:00' AND sip_timestamp < '2026-07-06 20:00:00') / 1e6, 2) AS jul6_close_half_hour_m
FROM global_markets.cache_stocks_quotes
WHERE (sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00')
   OR (sip_timestamp >= '2026-07-06 00:00:00' AND sip_timestamp < '2026-07-07 00:00:00')

W poniedziałek rejestr odnotował 391.96 milion aktualizacji NBBO przy 597.22 milionach w czwartek — -34.4%, czyli o jedną trzecią mniej komunikatów niż w sesji przedświątecznej — a wolumen ofert wzrósł podczas otwarcia: 58.66 milion w pierwszej półgodzinie wobec 20.74 milionów o 13:30 oraz 33.7 milionów pod zamknięciem. Liczba ofert była mniejsza niż w czwartek, ale nie były one szersze:

ZapytanieTouch przy otwarciu luką: mediana spreadu i częstotliwości kwotowań, 9:30–9:42 ET vs kontrola południowa (po 12 minut 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-06 13:30:00' AND sip_timestamp < '2026-07-06 13:42:00'), 2) AS open_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-06 17:30:00' AND sip_timestamp < '2026-07-06 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-06 13:30:00' AND sip_timestamp < '2026-07-06 13:42: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-06 17:30:00' AND sip_timestamp < '2026-07-06 17:42:00'), 2) AS spread_delta_bps,
    round(countIf(sip_timestamp >= '2026-07-06 13:30:00' AND sip_timestamp < '2026-07-06 13:42:00') / 1e3, 1) AS open_updates_k,
    round(countIf(sip_timestamp >= '2026-07-06 17:30:00' AND sip_timestamp < '2026-07-06 17:42:00') / 1e3, 1) AS midday_updates_k,
    round(countIf(sip_timestamp >= '2026-07-06 13:30:00' AND sip_timestamp < '2026-07-06 13:42:00') / countIf(sip_timestamp >= '2026-07-06 17:30:00' AND sip_timestamp < '2026-07-06 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 ('DIA', 'IWM', 'MSFT', 'MU', 'QQQ', 'SNDK', 'SPY', 'STX', 'TSLA', 'WDC')
  AND sip_timestamp >= '2026-07-06 13:30:00' AND sip_timestamp < '2026-07-06 20:00:00'
GROUP BY ticker
ORDER BY ticker

Spread bid-ask stanowi koszt realizacji transakcji, wyrażony w punktach bazowych ceny średniej — 1 bp to jeden cent przy akcji o wartości 100 USD. Żadna sprawdzona spółka nie miała szerszego spreadu w ciągu pierwszych dwunastu minut luki niż w południe, a minima dla SPY były identyczne (0.27 bps, 0 bps zmiany), mimo że instrument ten aktualizował oferty 3x szybciej podczas otwarcia. Wzrost spreadów dotyczył pojedynczych spółek, a nie funduszy indeksowych: najwięcej stracił SanDisk (+12.9 bps, 8.16 do 21.07), następnie MU +3.63, TSLA +2.89, w porównaniu do 0.42 bps dla QQQ przy minie wynoszącej 0.83 bps. Odpowiedź Seagate na pytanie „czy wszystko nie jest płynne?”: spread wynoszący 30.94 bps na otwarciu, czyli ponad sto razy więcej niż minimum SPY.

ZapytanieŚredni spread kwotowany SPY ważony aktualizacjami: 6 lipca w rankingu z 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-06')), 3) AS jul6_avg_spread_cents,
    arrayCount(x -> x < anyIf(avg_spread_cents, d = toDate('2026-07-06')), groupArrayIf(avg_spread_cents, d != toDate('2026-07-06'))) + 1 AS tightness_rank,
    count() AS sessions_compared,
    round(max(avg_spread_cents), 3) AS widest_session_cents,
    round(avgIf(avg_spread_cents, d != toDate('2026-07-06')), 3) AS other_sessions_avg_cents,
    replaceAll(formatDateTime(min(d), '%M %e, %Y'), '  ', ' ') 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-04 00:00:00')
      AND sip_timestamp < toDateTime('2026-07-07 00:00:00')
      AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
    GROUP BY d
)

W całym regularnym dniu 6 lipca był to najwęższy dzień dla SPY w ciągu ostatniego miesiąca: średni spread ważony liczbą aktualizacji wyniósł 1.815 centów, co stanowi 1 miejsce spośród 21 sesji od June 4, 2026, przy średniej miesięcznej wynoszącej 2.337 centów i maksimum na poziomie 2.865. Mniejsza liczba ofert ze względu na święto zapewniła kupującym indeks najniższe minima na rynku.

Stopy procentowe: stabilna krzywa podczas długiego weekendu

ZapytanieKrzywa obligacji skarbowych: 6 lipca vs dane z 2 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 jul6_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-06') AS d,
         (SELECT * FROM global_markets.treasury_yields WHERE date = '2026-07-02') AS p
)

Krzywa rentowności nie wykazała znaczących zmian podczas długiego weekendu. Rentowność 10-letnich obligacji skarbowych wyniosła 4.48%, a spread 2s10s wyniósł 0.35 punktów procentowych; oba wskaźniki znajdowały się w granicach jednego lub dwóch punktów bazowych od odczytu z 2 lipca. Jedyną istotną zmianą była zmiana rentowności 3-miesięcznych obligacji skarbowych o 5 punktów bazowych.

Kalendarz rynkowy

ZapytanieKalendarz korporacyjny i przepływ informacji z 6 lipca w jednym wierszu (w tym reverse-split)
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-06'
    ) 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-06'
            )
            WHERE t != 'SPCX'
            GROUP BY t
        )
    ) AS top_news
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-06') AS ex_dividend_records,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date = '2026-07-06') AS splits_executed,
    (SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-06') AS reverse_splits,
    (SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-06') AS forward_splits,
    (SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-06') AS ipos_listed,
    (SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-06') AS sec_filings,
    (SELECT uniqExactIf(accession_number, form_type = '4') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-06') AS insider_form4_filings,
    (SELECT uniqExactIf(accession_number, form_type = '8-K') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-06') AS filings_8k,
    news.1 AS news_articles,
    news.2 AS news_publishers,
    top_news.1 AS most_covered_ticker,
    top_news.2 AS most_covered_articles

Dla 118 spółek wyznaczono daty bez dywidendy, przeprowadzono 15 podziałów akcji, pojawiło się 0 nowych notowań, a indeks SEC odnotował 3161 zgłoszeń — 1219 Form 4s oraz 201 raportów 8-K, co stanowi mniejszą liczbę niż w czwartek przed świętami. Serwis informacyjny zawierał 236 artykułów, a najczęściej omawianą spółką była NVDA z liczbą 25 wzmianek.

Ściana odwrotnych podziałów ukryta za rynkowymi liderami

14 z 15 podziałów stanowiły odwrotne podziały — konsolidacje akcji, głównie przy cenach poniżej jednego dolara — wobec 1 podziałów bezpośrednich. Odwrotny podział zamienia wiele starych akcji w jedną akcję po proporcjonalnie wyższej cenie, co nieskorygowany skaner raportuje jako trocyfrowy "zysk", mimo braku realnego wzrostu. Cała lista:

ZapytanieWszystkie splity zrealizowane 6 lipca, z nieskorygowanym zamknięciem przed i po (split bez sesji regulaminowej po obu stronach są pomijane)
Dokładny kod SQL dla każdej liczby
SELECT
    s.ticker AS ticker,
    toFloat64(s.split_from) AS old_shares,
    toFloat64(s.split_to) AS new_shares,
    round(toFloat64(s.split_from) / toFloat64(s.split_to), 0) AS old_shares_per_new,
    p.prev_close AS jul2_close,
    d.day_close AS jul6_close,
    round((d.day_close / p.prev_close - 1) * 100, 1) AS unadjusted_pct_chg
FROM (
    SELECT ticker, any(split_from) AS split_from, any(split_to) AS split_to
    FROM global_markets.stocks_splits
    WHERE execution_date = '2026-07-06'
    GROUP BY ticker
) s
INNER JOIN (
    SELECT ticker, round(toFloat64(argMax(close, window_start)), 2) AS prev_close
    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 IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date = '2026-07-06')
    GROUP BY ticker
    HAVING prev_close > 0
) p ON s.ticker = p.ticker
INNER JOIN (
    SELECT ticker, round(toFloat64(argMax(close, window_start)), 2) AS day_close
    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'
      AND ticker IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date = '2026-07-06')
    GROUP BY ticker
    HAVING day_close > 0
) d ON s.ticker = d.ticker
ORDER BY unadjusted_pct_chg DESC, ticker ASC

Każdy z 12 wierszy to konsolidacja wykazująca trocyfrowy lub wyższy "zysk" na surowych danych — od 31450% na górze (konsolidacja 200-za-1, nieskorygowane zamknięcie z $0.02 na $6.31) aż po 226.1% przy najmniejszym wskaźniku (3-za-1). W połowie tabeli znajduje się najbardziej czytelny przykład: odwrotny podział 10-za-1 zmienił nieskorygowane zamknięcie TXXS z $2.35 w czwartek na $24.34 w poniedziałek — dziesięć starych akcji stało się jedną, a nie dziesięciokrotny wzrost kursu. Skaner oparty na surowych zmianach cen umieszcza całą tę tabelę powyżej każdego realnego lidera wzrostów; nasz system wyklucza podziały. Czwartkowy podział bezpośredni CRWD wywołał odwrotny efekt, czyli pozorny krach.

Sesja zweryfikowana — pierwszy dzień po przerwie

ZapytanieWeryfikacja sesji: obserwowany zakres minutowy SPY, zamknięcie z 3 lipca oraz kolejne 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-06 13:30:00' AND window_start < '2026-07-06 20:00:00') AS regular_session_bars,
    uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 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,
    (SELECT replaceAll(formatDateTime(min(date), '%M %e, %Y'), '  ', ' ') FROM global_markets.stocks_market_holidays WHERE date > '2026-07-06' AND status = 'closed') AS next_closure_date,
    (SELECT argMin(name, date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-06' AND status = 'closed') AS next_closure_name
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-06 00:00:00' AND window_start < '2026-07-07 00:00:00'

6 lipca była to pełna sesja, a nie wczesne zamknięcie: słupki SPY trwały od 04:00 do 19:59 czasu nowojorskiego, obejmując dokładnie 390 słupków w regularnym oknie handlowym. W poprzedzący piątek, 3 lipca, odnotowano 0 słupków SPY — pełne zamknięcie ze względu na święto niepodległości 4 lipca, które wypadało w sobotę. Następne zamknięcie: Labor Day, September 7, 2026. Podsumowanie czterosesyjnego tygodnia przed przerwą znajduje się w podsumowaniu tygodnia.

FAQ

Jak kształtowały się notowania na giełdzie 6 lipca 2026 roku?

Wszystkie cztery główne fundusze ETF na indeksy zamknęły się na wzrostach — QQQ 1.39%, SPY 0.87%, IWM 0.45%, DIA 0.42% — przy czym 62.4% płynnych walorów odnotowało wzrosty, głównie w wyniku luk otwarcia.

Który sektor dominował 6 lipca 2026 roku?

Sektor technologiczny (XLK) przewodził jedenastu funduszom ETF na sektory z wynikiem 1.71%, podczas gdy sektory defensywne odnotowały spadki na poziomie -1.08% — spread między najlepszym a najsłabszym sektorem wyniósł 2.79 punktów procentowych, co stanowi wielokrotność zmiany indeksu S&P wynoszącej 0.87%.

Czy giełda była otwarta w Dzień Niepodległości 2026?

Nie. 4 lipca przypadał w sobotę, zatem giełdy świętowały Dzień Niepodległości w piątek 3 lipca — zamknięcie potwierdziły wygenerowane przez 0 minutyowe słupki SPY. 6 lipca odbyła się pierwsza sesja po przerwie.

Dlaczego niektóre akcje wykazały ogromne jednodniowe wzrosty 6 lipca?

Przeprowadzono reverse splits w liczbie 14. Konsolidacja wielu starych akcji w jedną po proporcjonalnie wyższej cenie sprawia, że nieskorygowany raport ekranowy wykazuje „zysk” rzędu setek procent, podczas gdy wartość pozycji posiadacza pozostaje bez zmian — wymienione powyżej walory 12 należą właśnie do tej kategorii.

Czy spready były wysokie podczas otwarcia po luce?

Tylko w przypadku pojedynczych akcji. Mediana spreadu dla SPY w ciągu pierwszych dwunastu minut wynosiła 0.27 punktów bazowych, co odpowiada poziomowi z południa dnia; SanDisk notowano o 12.9 bps szerzej niż w południe.

Uwagi do danych

  • Wolumen dolarowy to wskaźnik minutowy — cena zamknięcia pomnożona przez wolumen zsumowany dla danej minuty.
  • Koszyk sektorowy to metoda deklarowana, a nie pole dostawcy: jedenaście głównych ETF sektorowych S&P 500 (XLB, XLC, XLE, XLF, XLI, XLK, XLP, XLRE, XLU, XLV, XLY), ten sam zestaw w każdej sesji.
  • Cytowane spready to mediany wartości (ask − bid) ÷ mid dla ważnych ofert dwustronnych; oferty jednostronne, zerowe oraz krzyżowe są usuwane i uwzględniane w panelu.
  • Jedna spółka z powtarzającym się symbolem została wykluczona z rankingów do czasu weryfikacji podmiotu (potwierdzenia).

Metodologia

  • Okres obejmuje pojedynczą sesję handlową (sesja 1, zweryfikowana na podstawie obserwowanych słupków). Znaczniki czasu są przechowywane w strefie UTC, a następnie konwertowane na czas nowojorski wewnątrz zapytań. „Close” oznacza ostatni słupek minutowy sesji regulaminowej; zmiana dnia polega na porównaniu 6 lipca z 2 lipca — poprzedniej sesji przed zamknięciem 3 lipca, co zostało zweryfikowane na podstawie słupków, a nie założone.
  • Liczby dziesiętne są konwertowane na liczby zmiennoprzecinkowe 64-bitowe przed wykonywaniem operacji dzielenia. Panele są odczytywane jednorazowo w momencie tworzenia, poprzez zabezpieczoną ścieżkę tylko do odczytu.

Każdy panel jest wynikiem zapytania zapisanego — wykres, tabela i SQL stanowią jeden obiekt. Można wkleić dowolny z nich do terminala Strasmore. Poprzednia sesja: 2 lipca. Następna: 7 lipca.