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

Podsumowanie rynku 9 lipca 2026

Sprzęt półprzewodników odnotował luki, a spółki mega-cap odrobiły spadki. Rynek zakończył się na plusie, natomiast NVDA zamknęło się na minusie.

Czwartek, 9 lipca 2026 roku, przyniósł gwałtowne zmiany jeszcze przed otwarciem sesji. Akcje spółek z sektora sprzętu półprzewodników w handlu przedsesyjnym osiągnęły poziomy znacznie wyższe niż w środę, podczas gdy META znajdowało się -3.16% poniżej zamknięcia z poprzedniego dnia; dane z godziny 9:30 potwierdziły oba trendy. W trakcie sesji część wzrostów została wycofana: luki powstałe na akcjach spółek półprzewodników zostały zniwelowane, a META odrobiło straty. Sesja zakończyła się wynikiem 71.5% na plusie, co stanowiło najbardziej zmienną sesję w tym tygodniu. NVDA, które odnotowało wzrosty po wtorkiej wyprzedaży, zamknęło się na minusie. Wszystkie poniższe dane pochodzą z zapytania bazodanowego.

Przyczyny otwarcia

Luki nie powstały o godzinie 9:30. Między 4:00 a 9:29 czasu ET notowania przedsesyjne wyceniły już te spółki, a cena otwarcia odzwierciedliła te poziomy.

ZapytanieŚcieżka premarket, 4:00-9:29 am ET: ostatni zapis premarket vs zamknięcie ze środy oraz otwarcie
Dokładny kod SQL dla każdej liczby
SELECT
    ticker,
    round(prior_close, 2) AS prior_close,
    formatDateTime(first_pm_bar, '%H:%i') AS first_premkt_bar_et,
    round(premkt_last, 2) AS premkt_last,
    round((premkt_last / prior_close - 1) * 100, 2) AS premkt_pct,
    round(premkt_shares / 1e3, 1) AS premkt_shares_k,
    round((day_open / prior_close - 1) * 100, 2) AS gap_pct,
    round((day_open / premkt_last - 1) * 100, 2) AS open_vs_premkt_pct
FROM (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00')) AS prior_close,
        minIf(toTimeZone(window_start, 'America/New_York'), window_start >= '2026-07-09 08:00:00' AND window_start < '2026-07-09 13:30:00') AS first_pm_bar,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-09 08:00:00' AND window_start < '2026-07-09 13:30:00')) AS premkt_last,
        sumIf(toFloat64(volume), window_start >= '2026-07-09 08:00:00' AND window_start < '2026-07-09 13:30:00') AS premkt_shares,
        toFloat64(argMinIf(open, window_start, window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00')) AS day_open
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'QQQ', 'KLAC', 'LRCX', 'META', 'NVDA')
      AND ((window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00')
        OR (window_start >= '2026-07-09 08:00:00' AND window_start < '2026-07-09 20:00:00'))
    GROUP BY ticker
)
ORDER BY ticker

Ostatnia cena KLAC w handlu przedsesyjnym była o +8.49% wyższa od zamknięcia w środę, a spółka otworzyła się na poziomie +8.14%; LRCX wzrosło o 9.64%, osiągając 9.67% przy otwarciu; META odnotowała -3.16% i otworzyła się na poziomie -3.16%. Sprawdź open_vs_premkt_pct: wszystkie sześć spółek otworzyło się w granicach jednego procenta swojej ostatniej ceny przedsesyjnej. NVDA jest wyjątkiem — 0.16% w nocy przy wolumenie 3741.7k akcji, co stanowi największy wolumen przedsesyjny spośród wszystkich sześciu spółek i najmniejszą zmianę (handel przedsesyjny i pozagiełdowy).

Czy wystąpił katalizator? Nasze dane nie wskazują żadnego

Podsumowanie powinno wyjaśniać, co wpłynęło na kurs akcji. W tym przypadku nasze tabele nie podają żadnych informacji: strumień wiadomości oraz indeks zgłoszeń SEC są puste dla czterech spółek, które odnotowały największe luki cenowe.

ZapytanieZidentyfikowane katalizatory: artykuły i dokumenty SEC dla poszczególnych spółek, od zamknięcia w środę do czwartku
Dokładny kod SQL dla każdej liczby
SELECT
    ticker,
    toUInt32(sum(overnight_articles)) AS overnight_articles,
    toUInt32(sum(session_articles)) AS session_articles,
    toUInt32(sum(sec_filings)) AS sec_filings,
    toUInt32(sum(filings_8k)) AS filings_8k
FROM (
    SELECT
        arrayJoin(['AMD', 'KLAC', 'LRCX', 'META', 'MSFT', 'MU', 'NVDA', 'TER', 'WDC']) AS ticker,
        toUInt64(0) AS overnight_articles, toUInt64(0) AS session_articles,
        toUInt64(0) AS sec_filings, toUInt64(0) AS filings_8k
    UNION ALL
    SELECT
        arrayJoin(tickers) AS ticker,
        countIf(published_utc < '2026-07-09 13:30:00') AS overnight_articles,
        countIf(published_utc >= '2026-07-09 13:30:00') AS session_articles,
        toUInt64(0) AS sec_filings, toUInt64(0) AS filings_8k
    FROM global_markets.stocks_news
    WHERE published_utc >= '2026-07-08 20:00:00' AND published_utc < '2026-07-09 20:00:00'
    GROUP BY ticker
    UNION ALL
    SELECT
        ticker, toUInt64(0), toUInt64(0),
        count() AS sec_filings,
        countIf(form_type = '8-K') AS filings_8k
    FROM global_markets.stocks_sec_edgar_index
    WHERE filing_date >= '2026-07-08' AND filing_date <= '2026-07-09'
    GROUP BY ticker
)
WHERE ticker IN ('AMD', 'KLAC', 'LRCX', 'META', 'MSFT', 'MU', 'NVDA', 'TER', 'WDC')
GROUP BY ticker
ORDER BY ticker

0 artykułów nocnych, 0 w ciągu dnia, 0 zgłoszeń SEC dla KLAC — te same puste wiersze dla LRCX, TER i WDC. NVDA, która nie odnotowała luk, miała najszersze pokrycie spośród dziewięciu spółek (7 artykułów nocnych, 9 w ciągu dnia) i zamknęła się na minusie. Jest to zakres uwagi jednego źródła, a nie wszystkich mediów; brakujący wiersz nie stanowi dowodu na brak zdarzenia, jednak żadna informacja w naszych danych nie wskazuje przyczyny, a „przyczyna nieznana” jest wyczerpującą odpowiedzią.

Wyniki rynkowe

Każda zmiana porównuje ostatnią minutową świecę z sesji regulacyjnej z 9 lipca ze środą; wiersze są ułożone alfabetycznie, dzięki czemu każdy ETF zajmuje stałe miejsce.

ZapytanieSPY / QQQ / DIA / IWM — 9 lipca vs zamknięcie 8 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-08 13:30:00' AND window_start < '2026-07-08 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-09 13:30:00' AND window_start < '2026-07-09 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

Wszystkie cztery fundusze zamknęły się na wzrostach. QQQ odnotował najwyższy wynik na poziomie +1.67% — na co złożył się wzrost o 0.99% oraz skok o 0.68%; spółki o małej kapitalizacji w IWM zyskały 1.29%, SPY zyskał 0.85% do poziomu $751.64, natomiast DIA odnotował wzrost o 0.29%. Na czele znalazły się spółki wzrostowe, a na końcu indeks Dow.

Czy dzień był nietypowy?

W odniesieniu do indeksów: nie. Zamknięcie QQQ wzrosło o +1.67%, co stanowiło 10 z 21 poprzednich sesji pod względem skali zmiany. W przypadku SPY zmiana od otwarcia do zamknięcia wyniosła 8 z 22. Zmienność wystąpiła między poszczególnymi grupami aktywów w ciągu dnia.

ZapytanieRuch dobowy SPY / QQQ w kontekście historycznym (~22 sesje)
Dokładny kod SQL dla każdej liczby
SELECT
    round(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-09')), 2) AS qqq_close_over_close_pct,
    arrayCount(x -> x > abs(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-09'))), groupArrayIf(abs(cc_pct), ticker = 'QQQ' AND d != toDate('2026-07-09'))) + 1 AS qqq_abs_move_rank,
    countIf(ticker = 'QQQ' AND isFinite(cc_pct)) AS qqq_sessions_compared,
    round(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-09')), 2) AS spy_open_to_close_pct,
    arrayCount(x -> x > abs(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-09'))), groupArrayIf(abs(oc_pct), ticker = 'SPY' AND d != toDate('2026-07-09'))) + 1 AS spy_abs_move_rank,
    countIf(ticker = 'SPY') AS spy_sessions_compared,
    toString(min(d)) AS first_session
FROM (
    SELECT ticker, d,
           if(isFinite(close_px / lagInFrame(close_px) OVER (PARTITION BY ticker ORDER BY d) - 1),
              (close_px / lagInFrame(close_px) OVER (PARTITION BY ticker ORDER BY d) - 1) * 100, NULL) 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-08 13:30:00')
          AND window_start < toDateTime('2026-07-10 00:00:00')
          AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
        GROUP BY ticker, d
    )
)

Szerokość rynku: najbardziej rozległa sesja tygodnia

ZapytanieSzerokość płynnego tape: udział aprecjujących 9 lipca vs 8 lipca, filtr obrotów >$1M
Dokładny kod SQL dla każdej liczby
SELECT
    countIf(close_9 > close_8 AND close_8 > 0 AND dv_9 >= 1000000) AS advancers,
    countIf(close_9 < close_8 AND close_8 > 0 AND dv_9 >= 1000000) AS decliners,
    countIf(close_9 = close_8 AND close_8 > 0 AND dv_9 >= 1000000) AS unchanged,
    countIf(close_8 > 0 AND close_9 > 0 AND dv_9 >= 1000000) AS liquid_tickers,
    countIf(close_8 > 0 AND close_9 > 0) AS traded_both_sessions,
    countIf(close_8 > 0 AND close_9 > 0) - countIf(close_8 > 0 AND close_9 > 0 AND dv_9 >= 1000000) AS dropped_by_liquidity_filter,
    round(100.0 * countIf(close_9 > close_8 AND close_8 > 0 AND dv_9 >= 1000000) / countIf(close_8 > 0 AND close_9 > 0 AND dv_9 >= 1000000), 1) AS advancer_pct,
    round(100.0 * countIf(close_8 > close_7 AND close_7 > 0 AND dv_8 >= 1000000) / countIf(close_8 > 0 AND close_7 > 0 AND dv_8 >= 1000000), 1) AS jul8_advancer_pct
FROM (
    SELECT ticker,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00')) AS close_7,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00')) AS close_8,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00')) AS close_9,
           sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00') AS dv_9,
           sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00') AS dv_8
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-09 20:00:00'
    GROUP BY ticker
)

4263 wzrostowych przeciwko 1631 spadkowym — udział wzrostowych wynosi 71.5% po 29.6% w środę, przy tym samym sposobie obliczeń i tym samym filtrze obrotu 1 mln USD (5385 z 11351 nazw spółek znajduje się poniżej tej wartości). W odniesieniu do pozostałych dni tygodnia:

ZapytanieTydzień dotychczas: ruchy indeksów i udział aprecjujących dla każdej sesji
Dokładny kod SQL dla każdej liczby
WITH per_day AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           argMax(toFloat64(close), window_start) AS c,
           sum(toFloat64(close) * toFloat64(volume)) AS dv
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-09 20:00:00'
      AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
    GROUP BY ticker, d
),
lagged AS (
    SELECT ticker, d, c, dv,
           lagInFrame(c) OVER (PARTITION BY ticker ORDER BY d) AS prev_c
    FROM per_day
)
SELECT
    toString(d) AS date,
    round(anyIf((c / prev_c - 1) * 100, ticker = 'SPY'), 2) AS spy_pct,
    round(anyIf((c / prev_c - 1) * 100, ticker = 'QQQ'), 2) AS qqq_pct,
    round(100.0 * countIf(c > prev_c AND prev_c > 0 AND dv >= 1000000) / countIf(c > 0 AND prev_c > 0 AND dv >= 1000000), 1) AS advancer_pct,
    countIf(c > 0 AND prev_c > 0 AND dv >= 1000000) AS liquid_names
FROM lagged
WHERE d >= toDate('2026-07-06')
GROUP BY d
ORDER BY d

Poniedziałek rozpoczął się od 62.4% wzrostowych, wtorek i środa spadły do 33.9% oraz 29.6%, natomiast czwartkowa wartość 71.4% jest najwyższa spośród czterech zakończonych sesji tygodnia (piątek 10 lipca wykracza poza ramy niniejszego podsumowania). QQQ również odnotował wzrost: -1.82% we wtorek, 0.25% w środę, +1.67% w czwartek.

Poza sektorem półprzewodników: jak kształtowały się notowania pozostałej części rynku

Wskaźnik szerokości rynku wskazuje na wzrost większości akcji, jednak nie oznacza to równomiernego przebiegu hossy. Poniżej przedstawiono koszyk o równej wadze, składający się z trzech płynnych spółek z każdego sektora; jest to ten sam koszyk deklarowany każdego dnia.

ZapytanieOsiem koszyków sektorowych po 3 spółki: zamknięcie 9 lipca vs zamknięcie dnia poprzedniego, waga równa
Dokładny kod SQL dla każdej liczby
SELECT
    sector,
    count() AS names,
    round(avg(pct_chg), 2) AS avg_pct_chg,
    round(min(pct_chg), 2) AS worst_name_pct,
    round(max(pct_chg), 2) AS best_name_pct,
    round(avg(pct_chg) - max(avg(pct_chg)) OVER (), 2) AS gap_to_best_sector_pct
FROM (
    SELECT
        ticker,
        multiIf(ticker IN ('AMD', 'AVGO', 'KLAC'), 'Semiconductors',
                ticker IN ('AAPL', 'MSFT', 'GOOGL'), 'Big tech',
                ticker IN ('JPM', 'BAC', 'GS'), 'Financials',
                ticker IN ('CAT', 'HON', 'GE'), 'Industrials',
                ticker IN ('XOM', 'CVX', 'COP'), 'Energy',
                ticker IN ('JNJ', 'UNH', 'PFE'), 'Healthcare',
                ticker IN ('KO', 'PG', 'WMT'), 'Staples',
                'Utilities') AS sector,
        (toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00'))
         / toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00')) - 1) * 100 AS pct_chg
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('AMD', 'AVGO', 'KLAC', 'AAPL', 'MSFT', 'GOOGL', 'JPM', 'BAC', 'GS', 'CAT', 'HON', 'GE',
                     'XOM', 'CVX', 'COP', 'JNJ', 'UNH', 'PFE', 'KO', 'PG', 'WMT', 'NEE', 'DUK', 'SO')
      AND window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-09 20:00:00'
    GROUP BY ticker
)
GROUP BY sector
ORDER BY avg_pct_chg DESC

Semiconductors odnotował wzrost o +4.24%, natomiast Energy uplasował się na końcu z wynikiem -2.01% — różnica wyniosła -6.25 punktów (gap_to_best_sector_pct). Sektor finansowy był najsilniejszym koszykiem spośród podmiotów spoza sektora półprzewodników z wynikiem +1.88%; sektory dóbr podstawowych (-0.91%), użyteczności publicznej (-0.96%) oraz energetyki zamknęły się na minusie. Wielka technologia (AAPL, MSFT i GOOGL) osiągnęła skromny średni wzrost na poziomie +0.17%. Największe odwrócenie kierunku w ciągu dnia, czyli wahnięcie META o 8.1%, znajduje się poza wszystkimi ośmioma koszykami; wewnątrz tego koszyka najsilniejszą zmianę kursu od otwarcia do zamknięcia odnotował MSFT, przechodząc z -2.25% na +0.33%.

Otwarcie sektora półprzewodników i następcze osłabienie

gap_pct to poziom otwarcia względem zamknięcia z środy; intraday_pct to wynik za resztę dnia. Wiersze są ułożone alfabetycznie.

ZapytanieCzternaście spółek półprzewodników: lukę otwarcia vs reszta dnia, 9 lipca
Dokładny kod SQL dla każdej liczby
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-09 00:00:00')) AS prior_close,
        toFloat64(argMinIf(open, window_start, window_start >= '2026-07-09 00:00:00')) AS day_open,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-09 00:00:00')) AS day_close,
        maxIf(toFloat64(high), window_start >= '2026-07-09 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-07-09 00:00:00') AS day_low,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-09 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-08 13:30:00' AND window_start < '2026-07-08 20:00:00')
        OR (window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00'))
    GROUP BY ticker
)
SELECT
    ticker,
    round(prior_close, 2) AS prior_close,
    round(day_open, 2) AS day_open,
    round(day_close, 2) AS day_close,
    round((day_open / prior_close - 1) * 100, 2) AS gap_pct,
    round((day_close / day_open - 1) * 100, 2) AS intraday_pct,
    round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
    day_dollar_bn
FROM per_name
ORDER BY ticker

KLAC otworzył się na poziomie +8.14% powyżej zamknięcia z środy, po czym stracił -3.98%; LRCX otworzył się na +9.67% i osłabł o -3.26%; TER (+7.87%) oraz WDC (+7.89%) wykonały analogiczny ruch. MU otworzył się z luką wzrostową o +7.07%, spadł o -2.56%, lecz ostatecznie zamknął się na poziomie +4.33% przy wolumenie 33.56B — jest to największa spółka w zestawieniu pod względem obrotów drugą sesję z rzędu (podsumowanie ze środy zawiera dane z pierwszej sesji). AMD oraz SNDK stanowiły wyjątki: AMD dodało 1.75% po otwarciu na poziomie +3.87%, kończąc sesję na +5.68%, natomiast SNDK, które już na otwarciu zyskało 6.14%, dodało kolejne 1.23%, aby zamknąć się na poziomie +7.45%. W przypadku NVDA odnotowano otwarcie na +0.16% — bez luki — i zamknięcie na poziomie -0.68%.

ZapytanieWyniki: liczba aprecjujących/deprecjujących spółek 9 lipca, zmiana NVDA w ciągu 2 dni
Dokładny kod SQL dla każdej liczby
SELECT
    countIf(close_9 > close_8) AS jul9_green,
    countIf(close_9 < close_8) AS jul9_red,
    countIf(close_8 > close_7) AS jul8_green,
    round(anyIf((close_9 / close_8 - 1) * 100, ticker = 'NVDA'), 2) AS nvda_jul9_pct,
    round(anyIf((close_8 / close_7 - 1) * 100, ticker = 'NVDA'), 2) AS nvda_jul8_pct,
    count() AS names_counted
FROM (
    SELECT ticker,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00')) AS close_7,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00')) AS close_8,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00')) AS close_9
    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-07 13:30:00' AND window_start < '2026-07-09 20:00:00'
    GROUP BY ticker
)

12 z czternastu spółek zamknęło się na wzrostach; 2 zamknięć na spadkach stanowiło przeciwieństwo trendu — strukturalny odchylenie w dniu wzrostowym — oraz NVDA na poziomie -0.68%, dzień po zamknięciu na +3.66%. Największa spółka technologiczna w sektorze nie uczestniczyła w hossie własnego sektora, mimo największego natężenia informacji dotyczących tej spółki.

Druga strona: spółki mega-cap otworzyły się spadkowo i odrobiły straty

ZapytanieOsiem spółek mega-cap i defensywnych: luka otwarcia vs reszta dnia, 9 lipca
Dokładny kod SQL dla każdej liczby
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-09 00:00:00')) AS prior_close,
        toFloat64(argMinIf(open, window_start, window_start >= '2026-07-09 00:00:00')) AS day_open,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-09 00:00:00')) AS day_close,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-09 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('AAPL', 'AMZN', 'CVX', 'GOOGL', 'JNJ', 'META', 'MSFT', 'TSLA')
      AND ((window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00')
        OR (window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00'))
    GROUP BY ticker
)
SELECT
    ticker,
    round(prior_close, 2) AS prior_close,
    round(day_open, 2) AS day_open,
    round(day_close, 2) AS day_close,
    round((day_open / prior_close - 1) * 100, 2) AS gap_pct,
    round((day_close / day_open - 1) * 100, 2) AS intraday_pct,
    round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
    day_dollar_bn
FROM per_name
ORDER BY ticker

Siedem z ośmiu spółek otworzyło się poniżej poziomu zamknięcia z środy; ostateczny wynik zależał od dalszych ruchów. META otworzyła się -3.16% niżej, a następnie wzrosła o +8.1%, osiągając 4.69% na zamknięciu — był to najbardziej gwałtowny odwrócenie trendu od otwarcia do zamknięcia w zestawieniu. MSFT otworzyła się -2.25% niżej i odrobiła straty do poziomu +0.33%; AMZN (+1.4%) oraz AAPL (+0.93%) również odnotowały wzrosty; TSLA nie odnotowała luki i wzrosła do poziomu +3.21%. Spadki utrzymały jedynie spółki typu value: GOOGL (-0.76%), CVX (-1.06%), JNJ (-1.62%). Dlaczego akcje tworzą luki nocne wyjaśnia mechanizm tego zjawiska.

Gdzie handlowano kapitałem

ZapytanieTop 6 wg obrotów w USD, top 4 wg liczby akcji — 9 lipca sesja regulaminowa
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,
    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-09 13:30:00' AND window_start < '2026-07-09 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-09 13:30:00' AND window_start < '2026-07-09 20:00:00'
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker
    ORDER BY shares_m DESC
    LIMIT 4
)
ORDER BY leaderboard, pct_of_board_leader DESC

MU ponownie zdominowało zestawienie pod względem obrotów w USD na poziomie 33.56B, wyprzedzając SPY (24.37B), NVDA (21.28B) oraz SNDK (20.59B) — sektor pamięci zajął dwa z czterech najwyższych miejsc. Rynek akcji prezentował inny obraz: liderem był instrument SOXS z wolumenem 558.1M akcji, przy implikowanej cenie $3.91 (wolumen relatywny).

ZapytanieLiczba akcji w 30-minutowych przedziałach ET, sesja regulaminowa, % największego przedziału dnia
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-09 13:30:00' AND window_start < '2026-07-09 20:00:00'
GROUP BY et_time
ORDER BY et_time

Wystąpił klasyczny wzorzec litery U: obroty na otwarciu wyniosły 1.79B akcji (91.4% największych), dołek w połowie dnia wyniósł 0.64B, natomiast aukcja zamknięcia w ostatniej półgodzinie była największa w ciągu dnia i wyniosła 1.96B. Mimo intensywnego handlu na otwarciu, największy wolumen odnotowano na zamknięciu.

Rynek opcji

ZapytaniePrzepływ opcji: zapisy, kontrakty, % call, udział 0DTE vs środa, top kontrakty
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) = '260709', 1, 0) AS is_0dte
            FROM global_markets.options_trades
            WHERE sip_timestamp >= '2026-07-09 00:00:00' AND sip_timestamp < '2026-07-10 00:00:00'
            GROUP BY ticker
            ORDER BY vol DESC
            LIMIT 3
        )
    ) AS top3,
    (
        SELECT round(toFloat64(argMax(close, window_start)), 2)
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY' AND window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00'
    ) AS spy_regular_close,
    (
        SELECT round(toFloat64(sum(size)) / 1e6, 2)
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-08 00:00:00' AND sip_timestamp < '2026-07-09 00:00:00'
    ) AS jul8_contracts_m,
    (
        SELECT round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260708') / sum(size), 1)
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-08 00:00:00' AND sip_timestamp < '2026-07-09 00:00:00'
    ) AS jul8_pct_0dte
SELECT
    round(count() / 1e6, 2) AS option_prints_m,
    round(toFloat64(sum(size)) / 1e6, 2) AS contracts_m,
    jul8_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) = '260709') / sum(size), 1) AS pct_0dte,
    jul8_pct_0dte,
    spy_regular_close,
    top3.1[1] AS top1_und, top3.2[1] AS top1_strike, top3.3[1] AS top1_type,
    round(toFloat64(top3.4[1]) / 1e3, 1) AS top1_contracts_k, top3.5[1] AS top1_avg_px, top3.6[1] AS top1_is_0dte,
    top3.1[2] AS top2_und, top3.2[2] AS top2_strike, top3.3[2] AS top2_type, top3.6[2] AS top2_is_0dte,
    top3.1[3] AS top3_und, top3.2[3] AS top3_strike, top3.3[3] AS top3_type, top3.6[3] AS top3_is_0dte,
    round(toFloat64(top3.2[1]) - spy_regular_close, 2) AS top1_moneyness
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-09 00:00:00' AND sip_timestamp < '2026-07-10 00:00:00'

Na rynku odnotowano 9.99M kontraktów call oraz 58.85M kontraktów put — poniżej poziomu z poprzedniej środy wynoszącego 63.26M. Udział opcji 0DTE wyniósł 58% wolumenu, a cena spadła do 28.7% z poziomu 38.7%. Trzy najbardziej obrotowe kontrakty stanowiły opcje call na SPY wygasające tego samego dnia — 751C (846.6K kontraktów, średnio $0.526), 752C oraz 750C — w zakresie wokół zamknięcia SPY na poziomie $751.64 (opcje 0DTE zawiera szczegóły instrumentu).

Zabezpieczenie czy spekulacja? Zabezpieczenie polega na kupowaniu opcji poza poziomem ceny rynkowej (out-of-the-money); spekulacja polega na kupowaniu opcji w kierunku, który inwestor chce osiągnąć.

ZapytanieOpcje SPY tego samego dnia (0DTE): kontrakty wg odległości strike od ceny zamknięcia
Dokładny kod SQL dla każdej liczby
WITH (
    SELECT toFloat64(argMax(close, window_start))
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY' AND window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00'
) AS spy_close
SELECT
    multiIf(dist < -2, 'Strike >2% below close',
            dist < -0.5, 'Strike 0.5-2% below',
            dist <= 0.5, 'Strike within 0.5%',
            dist <= 2, 'Strike 0.5-2% above',
            'Strike >2% above close') AS strike_bucket,
    round(toFloat64(sumIf(size, option_type = 'C')) / 1e3, 1) AS call_contracts_k,
    round(toFloat64(sumIf(size, option_type = 'P')) / 1e3, 1) AS put_contracts_k,
    round(100.0 * sumIf(size, option_type = 'C') / sum(size), 1) AS call_share_pct
FROM (
    SELECT option_type, size, (toFloat64(strike_price) / spy_close - 1) * 100 AS dist
    FROM global_markets.options_trades
    WHERE sip_timestamp >= '2026-07-09 00:00:00' AND sip_timestamp < '2026-07-10 00:00:00'
      AND underlying_symbol = 'SPY'
      AND substring(ticker, length(ticker) - 14, 6) = '260709'
)
GROUP BY strike_bucket
ORDER BY min(dist)

Opcje wygasające tego samego dnia koncentrowały się wokół ceny rynkowej: 3768.9k kontraktów call oraz 2563.3k kontraktów put w odległości do pół procenta od zamknięcia (59.5% kontraktów call). Wolumen opcji poza ceną (wings) był podzielony według kierunku — poniżej zamknięcia odnotowano 1356.5k kontraktów put względem 255.4k kontraktów call (udział opcji call głębiej w dół wyniósł 1.2%); powyżej zamknięcia opcje call stanowiły 91.6% znacznie mniejszego wolumenu wynoszącego 29.1k. Wolumen opcji poza ceną koncentrował się na poziomach spadkowych, gdzie kupowane jest zabezpieczenie: struktura opcji skupiała się na poziomie at-the-money, a nie na wzrostach.

Notowania

ZapytanieLiczba aktualizacji NBBO dla akcji: 9 lipca vs 8 lipca, aktualizacje poszczególnych tickerów (miliony)
Dokładny kod SQL dla każdej liczby
SELECT
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-09')) / 1e6, 2) AS jul9_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-08')) / 1e6, 2) AS jul8_updates_m,
    round((countIf(toDate(sip_timestamp) = toDate('2026-07-09')) / countIf(toDate(sip_timestamp) = toDate('2026-07-08')) - 1) * 100, 1) AS day_over_day_pct,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-09') AND ticker = 'SPY') / 1e6, 2) AS jul9_spy_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-09') AND ticker = 'QQQ') / 1e6, 2) AS jul9_qqq_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-09') AND ticker = 'NVDA') / 1e6, 2) AS jul9_nvda_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-09') AND ticker = 'TSLA') / 1e6, 2) AS jul9_tsla_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-09') AND ticker = 'MU') / 1e6, 2) AS jul9_mu_updates_m
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-07-08 00:00:00' AND sip_timestamp < '2026-07-10 00:00:00'

Najmniej istotny fakt dnia: 383.44M aktualizacji NBBO na taśmie akcji, co stanowi -27.7% w porównaniu do środy. Gwałtowność zmian dotyczyła poziomów cenowych, a nie obrotu na poziomie pojedynczych transakcji. QQQ przewodził wymienionym tickerom z wynikiem 4.35M, wyprzedzając SPY na poziomie 2.71M oraz NVDA na poziomie 1.83M.

ZapytanieSPY / QQQ / NVDA / TSLA / MU / SNDK / AVGO: mediana spreadu NBBO w RTH w punktach bazowych
Dokładny kod SQL dla każdej liczby
SELECT
    ticker,
    round(quantileExact(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000), 2) AS median_spread_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'QQQ', 'NVDA', 'TSLA', 'MU', 'SNDK', 'AVGO')
  AND sip_timestamp >= '2026-07-09 13:30:00' AND sip_timestamp < '2026-07-09 20:00:00'
  AND bid_price > 0 AND ask_price > 0 AND ask_price > bid_price
GROUP BY ticker
ORDER BY median_spread_bps ASC

Mediana spreadu ofertowego dla SPY wyniosła 0.27 bps, dla QQQ 0.42, a dla NVDA 0.99 — są to standardowe wartości. Szersze wartości skrajne odnotowano dla MU na poziomie 4.23 bps oraz SNDK na poziomie 8.79 bps (spread bid-ask mierzy właśnie ten koszt).

ZapytanieŚredni spread NBBO SPY w RTH w kontekście miesiąca
Dokładny kod SQL dla każdej liczby
SELECT
    round(anyIf(avg_spread_cents, d = toDate('2026-07-09')), 3) AS jul9_avg_spread_cents,
    arrayCount(x -> x < anyIf(avg_spread_cents, d = toDate('2026-07-09')), groupArrayIf(avg_spread_cents, d != toDate('2026-07-09'))) + 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
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
    FROM global_markets.cache_stocks_quotes
    WHERE ticker = 'SPY'
      AND sip_timestamp >= toDateTime('2026-06-08 00:00:00')
      AND sip_timestamp < toDateTime('2026-07-10 00:00:00')
      AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
    GROUP BY d
)

Średni spread ofertowy dla SPY wynoszący 2.071 cents zajął 10 miejsce w 22 poprzednich sesjach, mieszcząc się w przedziale 1.8092.865 centa: brak napięć w ofertach, nawet przy takim otwarciu.

ZapytanieTape NBBO opcji: całkowita liczba aktualizacji vs tape akcji, plus segment SPY
Dokładny kod SQL dla każdej liczby
WITH
    (SELECT count() FROM global_markets.cache_options_quotes WHERE sip_timestamp >= '2026-07-09 00:00:00' AND sip_timestamp < '2026-07-10 00:00:00') AS jul9_options_rows,
    (SELECT count() FROM global_markets.cache_stocks_quotes WHERE sip_timestamp >= '2026-07-09 00:00:00' AND sip_timestamp < '2026-07-10 00:00:00') AS jul9_stock_quote_rows
SELECT
    round(jul9_options_rows / 1e9, 2) AS jul9_options_bn,
    round(jul9_options_rows / jul9_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-09 13:30:00' AND sip_timestamp < '2026-07-09 20:00:00') / 1e6, 0) AS jul9_spy_options_m

Taśma ofertowa opcji wygenerowała 6.9 billion aktualizacji NBBO — co stanowi 18× taśmy akcji, przy czym sam instrument bazowy SPY wygenerował 242M aktualizacji.

Stopy procentowe: dane z 9 lipca

ZapytanieStatus zapisów obligacji skarbowych: dane z 9 lipca, krzywa z 8 lipca (stan na moment opracowania)
Dokładny kod SQL dla każdej liczby
SELECT
    (SELECT count() FROM global_markets.treasury_yields WHERE date = '2026-07-09') AS jul9_print_rows,
    toString(any(date)) AS latest_print_date,
    round(toFloat64(any(yield_2_year)), 2) AS latest_2y_pct,
    round(toFloat64(any(yield_10_year)), 2) AS latest_10y_pct,
    round(toFloat64(any(yield_30_year)), 2) AS latest_30y_pct,
    round(toFloat64(any(yield_10_year)) - toFloat64(any(yield_2_year)), 2) AS latest_2s10s_pct
FROM global_markets.treasury_yields
WHERE date = '2026-07-09'

Dane dotyczące obligacji skarbowych z 9 lipca zostały opublikowane po przygotowaniu tekstu, z typowym opóźnieniem w pliku rentowności dziennej — odnotowano już 1 wiersz. Krzywa dochodowości z tego dnia (2026-07-09): 2-letnie 4.16%, 10-letnie 4.54%, 30-letnie 5.05%, spread 2s10s 0.38 punktów — rentowność 2-letnia spadła w porównaniu z poziomem z 8 lipca, podczas gdy na długim końcu pozostała bez zmian.

Kalendarz rynkowy

ZapytanieEx-div, splits, dokumenty SEC, zainteresowanie newsami
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-09'
    ) AS news,
    (
        SELECT (argMax(t, (n, t)), 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-09'
            )
            WHERE t != 'SPCX'
            GROUP BY t
        )
    ) AS top_news
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-09') AS ex_dividend_records,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date = '2026-07-09') AS splits_executed,
    (SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-09') AS reverse_splits,
    (SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-09') AS forward_splits,
    (SELECT countIf(form_type = '424B2') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-09') AS fil_424b2,
    (SELECT countIf(form_type = '4') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-09') AS fil_form4,
    (SELECT countIf(form_type = '8-K') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-09') AS fil_8k,
    (SELECT count() FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-09') AS fil_total,
    news.1 AS news_articles, news.2 AS news_publishers,
    top_news.1 AS top_news_ticker, top_news.2 AS top_news_n, top_news.3 AS top_news_lead_over_next,
    if(top_news.1 = 'NVDA', 1, 0) AS top_news_is_nvda

Standardowy kalendarz przy nietypowym otwarciu: zapisy 127 po dywidendzie, 5 odwrotne podziały akcji, 1 podziały akcji, 2979 dokumenty SEC (623 Form 4, 605 424B2, 149 8-K). Serwis opublikował 184 artykułów u 3 wydawców; najczęściej omawiany ticker to NVDA z liczbą 20 artykułów, podczas gdy 8 wyprzedza kolejną nazwę.

On deck

From our own tables — facts about the next session, not forecasts.

ZapytanieNadchodzące: kolejna sesja, terminy ex-dividend, drabina wygasania SPY, zegar short-interest
Dokładny kod SQL dla każdej liczby
SELECT
    toString(min(d)) AS next_session_date,
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-10') AS next_session_holiday_rows,
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-10') AS ex_div_records_next,
    (SELECT countIf(ticker IN ('AAPL', 'MSFT', 'JNJ', 'KO', 'PG', 'XOM', 'CVX', 'JPM', 'WMT', 'PEP', 'HON', 'CAT'))
     FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-10') AS household_ex_div_next,
    (SELECT round(toFloat64(sum(size)) / 1e6, 2) FROM global_markets.options_trades
     WHERE sip_timestamp >= '2026-07-09 00:00:00' AND sip_timestamp < '2026-07-10 00:00:00'
       AND underlying_symbol = 'SPY' AND substring(ticker, length(ticker) - 14, 6) = '260710') AS spy_next_expiry_contracts_m,
    (SELECT round(toFloat64(sum(size)) / 1e6, 2) FROM global_markets.options_trades
     WHERE sip_timestamp >= '2026-07-09 00:00:00' AND sip_timestamp < '2026-07-10 00:00:00'
       AND underlying_symbol = 'SPY' AND substring(ticker, length(ticker) - 14, 6) = '260717') AS spy_monthly_expiry_contracts_m,
    (SELECT toString(max(settlement_date)) FROM global_markets.stocks_short_interest) AS latest_short_settlement,
    (SELECT count() FROM global_markets.stocks_short_interest WHERE settlement_date = '2026-07-15') AS jul15_short_rows
FROM (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY' AND window_start >= '2026-07-10 00:00:00' AND window_start < '2026-07-14 00:00:00'
)

The next session is 2026-07-10, 0 holiday rows against it: a normal Friday. 153 companies go ex-dividend that morning, 0 from our household-name checklist. Friday's SPY expiry is the heaviest forward one already traded — 1.66M contracts on July 9 versus 0.57M against the July monthly. Short-interest clock: latest settlement on file 2026-06-30, 0 rows yet filed for mid-July — FINRA publishes about eight business days after settlement (why short interest is two weeks old).

Sesja, zweryfikowana

ZapytanieWeryfikacja sesji: pierwszy/ostatni słupek SPY ET, liczba słupków regulaminowych, dane ze świąt, najbliższe zamknięcie
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-09 13:30:00' AND window_start < '2026-07-09 20:00:00') AS regular_session_bars,
    uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00') AS day_sessions,
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-09') AS jul9_holiday_rows,
    (SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-09' AND status = 'closed') AS next_closure_date,
    (SELECT concat(monthName(min(date)), ' ', toString(toDayOfMonth(min(date))), ', ', toString(toYear(min(date))))
     FROM global_markets.stocks_market_holidays WHERE date > '2026-07-09' AND status = 'closed') AS next_closure_label,
    (SELECT argMin(name, date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-09' AND status = 'closed') AS next_closure_name
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-09 00:00:00' AND window_start < '2026-07-10 00:00:00'

Pełna sesja regulaminowa: pierwsza świeca SPY 04:00 ET, ostatnia 19:59 ET, 390 minutowych świec regulaminowych, brak wiersza dotyczącego dni wolnych od handlu. Następne zamknięcie: Labor Day, September 7, 2026.

FAQ

Co wydarzyło się na rynku akcji 9 lipca 2026 roku?

Wszystkie fundusze ETF na indeksy zamknęły się wyżej — QQQ +1.67%, IWM +1.29%, SPY +0.85%, DIA +0.29%, 71.5% wzrostów akcji o wysokiej płynności. Spółki z sektora sprzętu do produkcji układów scalonych odnotowały lukę wzrostową, która następnie wygasła; spółki typu mega-cap odnotowały lukę spadkową, po czym nastąpiło odbicie.

Dlaczego akcje spółek z sektora sprzętu do produkcji układów scalonych, takich jak KLAC i LRCX, wzrosły 9 lipca 2026 roku?

Nasze dane nie wskazują przyczyny: brak artykułów oraz raportów SEC dla KLAC, LRCX, TER lub WDC w okresie od zamknięcia w środę do zamknięcia w czwartek. Ruch ten został już uwzględniony w cenach podczas handlu przedsesyjnego, przed godziną 9:30 ET.

Dlaczego NVDA spadło, podczas gdy sektor półprzewodników zyskał?

NVDA zamknęła się na poziomie -0.68%, podczas gdy 12 z czternastu spółek z sektora półprzewodników zamknęła się na plusie. Akcje te nie odnotowały luki (0.16% na otwarciu) i były najczęściej analizowanym tickerem przy 20 artykułach — rekordowa współwystępowalność, przy braku przyczyny w tych danych.

Czy 9 lipca 2026 roku był nietypowym dniem dla rynku?

Nie na poziomie indeksów: ruch QQQ zajął 10 z 21 poprzednich sesji pod względem wielkości, a średni spread SPY wyniósł 10 z 22. Dyspersja wewnątrz rynku wynosiła: -6.25 punktów między najlepszym a najgorszym koszykiem sektorów.

Uwagi do danych

Sesje regulaminowe trwają od 13:30 do 20:00 UTC (9:30–16:00 ET); panel premarket obejmuje godziny 08:00–13:30 UTC. Osiem koszyków sektorowych jest selekcjonowanych i ważonych równo — każdy zawiera trzy płynne instrumenty, zgodnie z tickerami wymienionymi w bazie SQL danego panelu. Jest to zadeklarowana metoda, a nie klasyfikacja dostawcy: trzy instrumenty reprezentują dany sektor, a nie cały sektor. Panel katalizatorów uwzględnia wyłącznie nasz kanał informacyjny oraz indeks EDGAR.

Pełne uwagi do danych

Panele dla poszczególnych tickerów są uporządkowane alfabetycznie, zatem każda wzmianka w tekście odnosi się do konkretnego wiersza; rankingi są uporządkowane według wartości, a każde stwierdzenie dotyczące pozycji jest ograniczone. Dane dotyczące obligacji skarbowych oraz rozliczenia krótkiej pozycji z połowy lipca są ograniczone do zera wierszy — ich publikacja będzie wymagała aktualizacji tego artykułu.

Metodologia

  • Źródła: każda tabela SQL odwołuje się do własnych zbiorów danych — agregatów minutowych, pamięci podręcznej NBBO dla akcji i opcji, transakcji na opcjach, kanału informacyjnego, indeksu EDGAR, dywidend, krótkiej sprzedaży, dni wolnych od handlu oraz rentowności obligacji skarbowych.
  • Konwencje: surowe formaty UTC w klauzulach WHERE, etykiety ET wyłącznie w klauzulach SELECT; gap = otwarcie pierwszej regularnej świecy ÷ zamknięcie poprzedniej regularnej świecy − 1; dane z poprzedniej sesji oraz poprzedniego tygodnia są obliczane w zapytaniu, nie są przenoszone z wcześniejszych publikacji. Stan magazynu danych na dzień 13 lipca 2026 r.