Podsumowanie rynku 8 lipca 2026
Odbicie sektora półprzewodników nie wpłynęło na indeksy. NVDA kontynuuje wzrosty, a MU dominuje w USD. Większość spółek odnotowała spadki.
Środa, 8 lipca 2026 roku, przyniosła jednodniowe odbicie sektora półprzewodników, które nie wpłynęło znacząco na indeksy. SNDK zamknął się na poziomie +6.8%, AVGO +4.82%, NVDA +3.66% — co stanowi gwałtowny odwrót względem wtorkowej wyprzedaży spółek półprzewodników — jednak fundusze ETF na indeksy pozostały bez zmian: SPY -0.31% oraz QQQ +0.25%. Ogólny rynek wykazał dwukrotnie większą przewagę spadków nad wzrostami w porównaniu do dnia poprzedniego: 1821 wzrostów względem 4260 spadków, co oznacza udział wzrostowych spółek na poziomie 29.6% po 33.8% sesji poprzedniej. Każda liczba poniżej pochodzi z zapytania bazodanowego — aby uzyskać dokładny kod SQL, należy rozwinąć dowolny panel.
Wyniki
Każda zmiana porównuje ostatnią minutową świecę z sesji regulacyjnej z 8 lipca z wtorkiem 7 lipca — są to kolejne sesje handlowe. Wiersze są ułożone alfabetycznie, dzięki czemu każdy ETF zajmuje stałe miejsce.
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-07 13:30:00' AND window_start < '2026-07-07 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-08 13:30:00' AND window_start < '2026-07-08 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 tickerCztery fundusze ETF otworzyły się luką spadkową, a następnie ich kursy kształtowały się w różny sposób. DIA otworzył sesję na poziomie -0.97% względem poprzedniego zamknięcia i odnotował dalsze spadki, kończąc na poziomie -1.09%. IWM otworzył się na poziomie -0.73% i utrzymał spadki, zamykając się na poziomie -0.92%. SPY otworzył się na poziomie -0.6%, odrabiał straty w ciągu dnia, lecz zamknął się na poziomie -0.31% — odbicie od otwarcia było mniejsze niż luka. QQQ otworzył się na poziomie -0.64% i wzrósł do +0.25% na zamknięciu, będąc jedynym z czterech funduszy w dodatnich wartościach.
Czy dzień był nietypowy?
Zmiana kursu SPY od otwarcia do zamknięcia o 0.29% plasowała się w 16 rankingu 22 poprzednich sesji — był to dzień o średniej zmienności dla indeksu, a nie ekstremalny. Zmiana kursu QQQ na zamknięciu względem poprzedniego zamknięcia wyniosła +0.25%, co stanowi 21 rankingu 22 — była to jedna z najmniejszych miesięcznych zmian dla QQQ, co odpowiada słabym wynikom indeksu.
Dokładny kod SQL dla każdej liczby
SELECT
round(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-08')), 2) AS qqq_close_over_close_pct,
arrayCount(x -> x > abs(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-08'))), groupArrayIf(abs(cc_pct), ticker = 'QQQ' AND d != toDate('2026-07-08'))) + 1 AS qqq_abs_move_rank,
countIf(ticker = 'QQQ') AS qqq_sessions_compared,
round(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-08')), 2) AS spy_open_to_close_pct,
arrayCount(x -> x > abs(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-08'))), groupArrayIf(abs(oc_pct), ticker = 'SPY' AND d != toDate('2026-07-08'))) + 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-05 13:30:00')
AND window_start < toDateTime('2026-07-09 00:00:00')
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
GROUP BY ticker, d
)
)Szerokość rynku: jeszcze większa przewaga spadających spółek względem rosnących niż poprzedniego dnia
Dokładny kod SQL dla każdej liczby
SELECT
countIf(close_8 > close_7 AND close_7 > 0 AND dv_8 >= 1000000) AS advancers,
countIf(close_8 < close_7 AND close_7 > 0 AND dv_8 >= 1000000) AS decliners,
countIf(close_8 = close_7 AND close_7 > 0 AND dv_8 >= 1000000) AS unchanged,
countIf(close_7 > 0 AND close_8 > 0 AND dv_8 >= 1000000) AS liquid_tickers,
countIf(close_7 > 0 AND close_8 > 0) AS traded_both_sessions,
countIf(close_7 > 0 AND close_8 > 0) - countIf(close_7 > 0 AND close_8 > 0 AND dv_8 >= 1000000) AS dropped_by_liquidity_filter,
round(100.0 * countIf(close_8 > close_7 AND close_7 > 0 AND dv_8 >= 1000000) / countIf(close_7 > 0 AND close_8 > 0 AND dv_8 >= 1000000), 1) AS advancer_pct,
round(100.0 * countIf(close_7 > close_6 AND close_6 > 0 AND dv_7 >= 1000000) / countIf(close_7 > 0 AND close_6 > 0 AND dv_7 >= 1000000), 1) AS jul7_advancer_pct
FROM (
SELECT ticker,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00')) AS close_6,
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,
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,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00') AS dv_7
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-08 20:00:00'
GROUP BY ticker
)Różnica między spółkami rosnącymi (1821) a spadającymi (4260) sprawiła, że udział rosnących wyniósł 29.6%, podczas gdy w poprzedniej sesji wynosił 33.8% — oba wyniki obliczono przy użyciu tego samego filtra płynności. Z 11439 spółek, które zamknęły się na obu sesjach, 5284 spadło poniżej progu obrotów wynoszącego 1 mln USD i zostało wyłączonych z zestawienia. Odbicie napędzane przez sektory technologiczne oraz mieszany wynik indeksu przy zamknięciu maskowały jeszcze bardziej jednolicie negatywny obraz szerokiego rynku.
Sektor półprzewodników odnotował silne odbicie przy wysokim wolumenie
Wiersze są ułożone alfabetycznie, więc każda nazwa zachowuje stałą pozycję; porównanie do wtorku jest obliczane na podstawie zamknięć z 7 lipca i 6 lipca w bloku zestawień poniżej tabeli.
Dokładny kod SQL dla każdej liczby
WITH per_name AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-08 00:00:00')) AS prior_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-08 00:00:00')) AS day_close,
maxIf(toFloat64(high), window_start >= '2026-07-08 00:00:00') AS day_high,
minIf(toFloat64(low), window_start >= '2026-07-08 00:00:00') AS day_low,
argMinIf(window_start, (toFloat64(low), toInt64(toUnixTimestamp(window_start))), window_start >= '2026-07-08 00:00:00') AS low_bar,
argMaxIf(window_start, (toFloat64(high), -toInt64(toUnixTimestamp(window_start))), window_start >= '2026-07-08 00:00:00') AS high_bar,
round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-08 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-07 13:30:00' AND window_start < '2026-07-07 20:00:00')
OR (window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 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 - day_low) / prior_close) * 100, 2) AS range_pct,
round(toFloat64(day_low), 2) AS day_low,
round(toFloat64(day_high), 2) AS day_high,
toUInt32(toHour(toTimeZone(low_bar, 'America/New_York')) * 60 + toMinute(toTimeZone(low_bar, 'America/New_York'))) AS low_minute_et,
toUInt32(toHour(toTimeZone(high_bar, 'America/New_York')) * 60 + toMinute(toTimeZone(high_bar, 'America/New_York'))) AS high_minute_et,
day_dollar_bn
FROM per_name
ORDER BY ticker12 z czternastu spółek z sektora półprzewodników zamknęło się na wzrostach — jest to odwrotność wtorkowej sesji, kiedy 12 z czternastu spółek odnotowało spadki. SNDK poprowadziło sektor ze wzrostem +6.8% przy obrocie rzędu 16.82B USD, a tuż za nim uplasowało się AVGO z wynikiem +4.82%; kolejne spółki z sektora pamięci odnotowały wzrosty — STX +3.9%, WDC +3.45%. Instrument typu 3x wrapper SOXL wzrósł o +5.79%, natomiast instrument typu inverse SOXS spadł o -6.22% — co jest zgodne z jednodniowym odbiciem indeksu bazowego. MU wzrosło o bardziej umiarkowane +1.11%, ale wygenerowało obrót na poziomie 32.02B USD — był to największy obrót w USD w całym zestawieniu. NVDA zamknęło się na poziomie +3.66% po raz drugi z rzędu: była to jedna z tylko 2 spółek w tym zestawieniu, które odnotowały wzrosty mimo wtorkowej wyprzedaży (+0.67% tego dnia).
Dokładny kod SQL dla każdej liczby
SELECT
countIf(close_8 > close_7) AS jul8_green,
countIf(close_8 < close_7) AS jul8_red,
countIf(close_7 > close_6) AS jul7_green,
countIf(close_7 < close_6) AS jul7_red,
round(anyIf((close_7 / close_6 - 1) * 100, ticker = 'NVDA'), 2) AS nvda_jul7_pct,
count() AS names_counted
FROM (
SELECT ticker,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00')) AS close_6,
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
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-08 20:00:00'
GROUP BY ticker
)Druga strona: spółki defensywne i wzrostowe mega-caps nie podążyły za trendem
Dokładny kod SQL dla każdej liczby
WITH per_name AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-08 00:00:00')) AS prior_close_raw,
toFloat64(argMinIf(open, window_start, window_start >= '2026-07-08 00:00:00')) AS day_open_raw,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-08 00:00:00')) AS day_close_raw,
round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-08 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-07 13:30:00' AND window_start < '2026-07-07 20:00:00')
OR (window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 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 tickerSpółki wzrostowe mega-caps poruszały się w przeciwnym kierunku niż sektor półprzewodników: TSLA -2.22%, META -2.04%, LLY -1.6%. CVX odnotowała jedyne wzrosty w zestawieniu, rosnąc o +1.12% po wczesnym luki, podczas gdy XOM otworzyła się na poziomie +1.26%, lecz spadła do -0.49% przed zamknięciem. W efekcie środowe notowania uległy podziałowi — spółki z sektora półprzewodników zyskały, natomiast spółki wzrostowe i defensywne straciły, a indeksy pozostały w stagnacji pomiędzy nimi. (Wiersze są ułożone alfabetycznie: CRNX, CVX, JNJ, LLY, META, TSLA, UNH, XOM.)
Gdzie handlowano kapitałem
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-08 13:30:00' AND window_start < '2026-07-08 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-08 13:30:00' AND window_start < '2026-07-08 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 DESCMU wygenerowało 32.02B USD — był to największy podmiot na rynku i jedyny przekraczający próg 30 mld USD. Kolejne miejsca zajęły SPY (26.49B), NVDA (24.17B) oraz QQQ (20.9B), natomiast zestawienie zamykały SNDK przy 16.82B oraz TSLA przy 11.71B. Na rynku akcji sytuacja wyglądała inaczej: 3-krotny odwrotny ETF na półprzewodniki SOXS osiągnął obrót na poziomie 636.5M akcji przy sugerowanej średniej cenie $4.67 — wynika to z mechaniki nisko wycenianego, 3-krotnego instrumentu pochodnego w dniu silnych wzrostów sektora chipów.
Przebieg sesji
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-08 13:30:00' AND window_start < '2026-07-08 20:00:00'
GROUP BY et_time
ORDER BY et_timeWolumen przyjął klasyczny kształt litery U: otwarcie wyniosło 89.9% największego przedziału dobowego i spadało w trakcie poranka, osiągając minimum na poziomie 34.1% w przedziale czasowym 13:00–13:30 ET. Ostatnia półgodzina (15:30 ET) była największym przedziałem dnia, wynoszącym 2.2B akcji — więcej niż 1.98B odnotowane przy otwarciu, co stanowi standardowy wzorzec dla regularnej sesji.
Rynek opcji
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) = '260708', 1, 0) AS is_0dte
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-08 00:00:00' AND sip_timestamp < '2026-07-09 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-08 13:30:00' AND window_start < '2026-07-08 20:00:00'
) AS spy_regular_close,
(
SELECT round(toFloat64(sum(size)) / 1e6, 2)
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-07 00:00:00' AND sip_timestamp < '2026-07-08 00:00:00'
) AS jul7_contracts_m,
(
SELECT round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260707') / sum(size), 1)
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-07 00:00:00' AND sip_timestamp < '2026-07-08 00:00:00'
) AS jul7_pct_0dte
SELECT
round(count() / 1e6, 2) AS option_prints_m,
round(toFloat64(sum(size)) / 1e6, 2) AS contracts_m,
jul7_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) = '260708') / sum(size), 1) AS pct_0dte,
jul7_pct_0dte,
spy_regular_close,
top2.1[1] AS top1_und, top2.2[1] AS top1_strike, top2.3[1] AS top1_type, top2.4[1] AS top1_contracts, top2.5[1] AS top1_avg_px, top2.6[1] AS top1_is_0dte,
round(toFloat64(top2.2[1]) - spy_regular_close, 2) AS top1_moneyness
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-08 00:00:00' AND sip_timestamp < '2026-07-09 00:00:00'Skonsolidowany rejestr transakcji na opcjach odnotował 10.44M transakcji oraz 63.26M kontraktów — powyżej poziomu 61.13M z wtorku, obliczonego na podstawie tego samego rejestru w analogicznym przedziale czasowym. Opcje typu Call stanowiły 55.4% całkowitego wolumenu, co wskazuje na umiarkowaną przewagę opcji typu Call. Kontrakty 0DTE (wygaśnięcie tego samego dnia, 260708) stanowiły 38.7% wolumenu kontraktów, co stanowi wzrost w porównaniu do 31.2% we wtorek. Najbardziej aktywnym pojedynczym kontraktem był SPY 745C — 677981 kontraktów przy średniej cenie $0.875, co oznacza opcję typu at-the-money z wygaśnięciem tego samego dnia względem regularnego zamknięcia SPY na poziomie $745.31.
Rejestr notowań
Dokładny kod SQL dla każdej liczby
SELECT
round(countIf(toDate(sip_timestamp) = toDate('2026-07-08')) / 1e6, 2) AS jul8_updates_m,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-07')) / 1e6, 2) AS jul7_updates_m,
round((countIf(toDate(sip_timestamp) = toDate('2026-07-08')) / countIf(toDate(sip_timestamp) = toDate('2026-07-07')) - 1) * 100, 1) AS day_over_day_pct,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-08') AND ticker = 'SPY') / 1e6, 2) AS jul8_spy_updates_m,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-08') AND ticker = 'QQQ') / 1e6, 2) AS jul8_qqq_updates_m,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-08') AND ticker = 'NVDA') / 1e6, 2) AS jul8_nvda_updates_m,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-08') AND ticker = 'TSLA') / 1e6, 2) AS jul8_tsla_updates_m,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-08') AND ticker = 'MU') / 1e6, 2) AS jul8_mu_updates_m
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-07-07 00:00:00' AND sip_timestamp < '2026-07-09 00:00:00'Rejestr notowań akcji zawierał 530.55M aktualizacji NBBO dnia 8 lipca — +7.7% względem poprzedniej sesji. Wśród wymienionych symboli najwięcej aktualizacji odnotował QQQ (6.53M), wyprzedzając SPY (4.93M). Pozostałe wymienione spółki to NVDA (1.8M), TSLA (0.72M) oraz MU (0.6M).
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-08 13:30:00' AND sip_timestamp < '2026-07-08 20:00:00'
AND bid_price > 0 AND ask_price > 0 AND ask_price > bid_price
GROUP BY ticker
ORDER BY median_spread_bps ASCWśród siedmiu wymienionych symboli mediana spreadu kwotowanego dla SPY w godzinach RTH wyniosła 0.27 bps — co stanowi dolną granicę normy dla najbardziej płynnego amerykańskiego ETF. QQQ notowano z spreadem 0.71 bps, a NVDA przy 1.52 bps. Najszersze wartości w zestawieniu dotyczą spółek o mniejszej płynności kwotowań: MU przy 5.66 bps oraz SNDK przy 12.21 bps.
Dokładny kod SQL dla każdej liczby
SELECT
round(anyIf(avg_spread_cents, d = toDate('2026-07-08')), 3) AS jul8_avg_spread_cents,
arrayCount(x -> x < anyIf(avg_spread_cents, d = toDate('2026-07-08')), groupArrayIf(avg_spread_cents, d != toDate('2026-07-08'))) + 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-09 00:00:00')
AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
GROUP BY d
)Średni spread kwotowany dla SPY w godzinach RTH wyniósł 2.202 cents, co plasuje go w 11 na 22 poprzednich sesji. Był to dzień o średniej ciasności spreadu, przy czym zakres z ostatniego miesiąca wynosił od 1.809 cents (najwęższy) do 2.865 cents (najszerszy). Brak nagłych spadków płynności lub zdarzeń rynkowych — sesja ze spreadem kwotowanym dla SPY przebiegła w sposób typowy.
Dokładny kod SQL dla każdej liczby
WITH
(SELECT count() FROM global_markets.cache_options_quotes WHERE sip_timestamp >= '2026-07-08 00:00:00' AND sip_timestamp < '2026-07-09 00:00:00') AS jul8_options_rows,
(SELECT count() FROM global_markets.cache_stocks_quotes WHERE sip_timestamp >= '2026-07-08 00:00:00' AND sip_timestamp < '2026-07-09 00:00:00') AS jul8_stock_quote_rows
SELECT
round(jul8_options_rows / 1e9, 2) AS jul8_options_bn,
round(jul8_options_rows / jul8_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-08 13:30:00' AND sip_timestamp < '2026-07-08 20:00:00') / 1e6, 0) AS jul8_spy_options_mRejestr opcji zawierał 9.62 miliarda aktualizacji NBBO — co stanowi 18.1× liczby aktualizacji w rejestrze notowań akcji. Sam segment opcji na SPY wygenerował 422 milionów aktualizacji w godzinach sesji regularnej.
Stopy procentowe: krzywa niemal się nie zmieniła
Dokładny kod SQL dla każdej liczby
SELECT
t.1 AS curve_point,
round(t.2, 2) AS jul8_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-08') AS d,
(SELECT * FROM global_markets.treasury_yields WHERE date = '2026-07-07') AS p
)Liderem zmian w sesji była obligacja 5-letnia o +4 bp; obligacja 2-letnia zamknęła się o +2 bp wyżej, a żadna inna stopa zapadalności nie zmieniła się o więcej niż 2 bp w żadnym kierunku. W rezultacie spread 2s10s wyniósł 0.35% (zmiana o -1 bp w sesji), pozostając w granicach niedawnego zakresu. Niewielkie zmiany stóp procentowych wystąpiły równolegle do niewielkich zmian indeksów.
Kalendarz rynkowy
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-08'
) 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-08'
)
WHERE t != 'SPCX'
GROUP BY t
)
) AS top_news
SELECT
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-08') AS ex_dividend_records,
(SELECT count() FROM global_markets.stocks_splits WHERE execution_date = '2026-07-08') AS splits_executed,
(SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-08') AS reverse_splits,
(SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-08') AS forward_splits,
(SELECT countIf(form_type = '424B2') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-08') AS fil_424b2,
(SELECT countIf(form_type = '4') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-08') AS fil_form4,
(SELECT countIf(form_type = '8-K') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-08') AS fil_8k,
(SELECT count() FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-08') 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_nextW kalendarzu odnotowano ograniczoną aktywność: 81 spółek po dacie dywidendy, 1 przeprowadzonych podziałów akcji oraz 3722 zgłoszeń do SEC (w tym 775 transakcji insiderów na formularzu Form 4, 527 prospektów 424B2 oraz 163 raportów bieżących 8-K). Relacje informacyjne obejmowały 192 artykułów w 3 serwisach, przy czym MU znalazło się wśród najczęściej wymienianych tickerów w 17 artykułach. W bieżących wydarach nie wyróżniły się żadne znaczące operacje korporacyjne znanych spółek — głównym tematem rynkowym był sektor półprzewodników.
Sesja, zweryfikowana
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-08 13:30:00' AND window_start < '2026-07-08 20:00:00') AS regular_session_bars,
uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00') AS day_sessions,
(SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-08') AS jul8_holiday_rows,
(SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-08' AND status = 'closed') AS next_closure_date,
(SELECT argMin(name, date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-08' AND status = 'closed') AS next_closure_name
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-08 00:00:00' AND window_start < '2026-07-09 00:00:00'Sesja obejmowała pełne godziny rozszerzone — pierwsza świeca SPY o 04:00 ET, ostatnia o 19:59 ET — przy czym odnotowano 390 minutowych świec w godzinach regulowanych oraz 1 sesji handlowych w tym oknie (brak skróconego dnia; tabela świąt nie zawiera tego dnia). Następne planowane zamknięcie nastąpi Labor Day dnia 2026-09-07.
Uwagi do danych
Wszystkie znaczniki czasu są zapisane w formacie UTC; sesje regulaminowe z dnia 8 lipca 2026 r. są filtrowane jako sip_timestamp / window_start między 2026-07-08 13:30:00 a 2026-07-08 20:00:00, co odpowiada godzinom 9:30–16:00 czasu nowojorskiego. Ceny dziesiętne są konwertowane na Float64 przed jakimkolwiek dzieleniem. Panele dedykowane dla poszczególnych tickerów (scoreboard, chip complex, rotation) są uporządkowane alfabetycznie według tickera, aby każde odniesienie w tekście wskazywało na stały wiersz; listy liderów (volume, quote snapshot) są uporządkowane według wartości, a każde stwierdzenie dotyczące pozycji jest kodowane jako granica kontrolna dla danej pozycji. Każde porównanie wtorkowe na tej stronie — udział szerokości rynku, liczba zielonych/czerwonych chipów, liczba kontraktów opcyjnych oraz udział 0DTE, liczba aktualizacji kwotowań — jest obliczane na nowo od 7 lipca (oraz 6 lipca, gdy wymagana jest cena zamknięcia z dnia poprzedniego) w tym samym bloku zapytania, a nie cytowane z wcześniejszych wpisów.
Pełne uwagi do danych
Panel szerokości rynku liczy spółki, które zamknęły się w godzinach regulaminowych w obu sesjach i których obrót wyniósł co najmniej 1 mln USD w badanym dniu; liczba pominiętych podmiotów (5284 z 11439) umożliwia wgląd w wykluczoną końcówkę zestawienia. Kolumny czasu day_low/day_high w chip complex wykorzystują wzorzec argMin/argMaxIf(..., (value, timestamp)), co zapewnia deterministyczne rozstrzyganie remisów. Etykiety koszyków volume-smile dotyczą czasu ET (%H:%i) i są obliczane wyłącznie z użyciem toTimeZone w liście SELECT. Panel options-tape wykrywa wygaśnięcie w tym samym dniu poprzez dopasowanie podciągu znaków tickera OCC (substring(ticker, length(ticker) - 14, 6)), a nie przez options_trades.expiration_date (kolumna ta jest błędna, zgodnie z obowiązującą notatką wstępną). Symbole w KNOWN_AMBIGUOUS_TICKERS są wykluczane w zapytaniach SQL dla volume-leaders oraz news-attention, dzięki czemu wzmianki typu „najwięcej X” odnoszą się do zweryfikowanych nazw. Ticker w top-news wykorzystuje deterministyczne rozstrzyganie remisów (argMax(t, (n, t))); wartość top_news_lead_over_next = 0 oznacza remis, dlatego w tekście używa się sformułowania „spośród najczęściej wspominanych”. Panel obligacji skarbowych łączy dwa wiersze z dziennym snapshotem; brak snapshotu dla którejkolwiek daty skutkuje zerową liczbą wierszy, co jest zachowane przez granicę row_count. Liczby stocks-quote oraz options-quote to wyniki pełnych skanów taśmy w podziałach dziennych; liczby dla konkretnych tickerów są raportowane w milionach, aby pasowały do jednostek w kolumnach. Mediany spreadu wykorzystują quantileExact (deterministycznie); panel trailing spread to średnia (avgIf), oznaczona w ten sposób.
Metodologia
- Źródło danych rynkowych: skonsolidowany taśma (consolidated tape) —
delayed_stocks_minute_aggsdla cen i wolumenów indeksów oraz poszczególnych instrumentów,cache_stocks_quotesdla liczebności NBBO i kwotowanych spreadów,cache_options_quotesorazoptions_tradesdla taśmy opcyjnej. - Obsługa stref czasowych: wszystkie zapisane znaczniki czasu są w formacie UTC; etykiety czasu ET są obliczane przy użyciu
toTimeZone(..., 'America/New_York')wyłącznie w listach SELECT; klauzule WHERE wykorzystują surowe wartości UTC. - Okno sesji regulaminowej: 13:30–20:00 UTC, weryfikowane na podstawie obserwowanych minutowych słupków SPY (panel weryfikacji sesji), a nie na podstawie obliczeń kalendarzowych.
- Definicja spreadu:
(ask - bid) / midpoint × 10,000w punktach bazowych dla ważnych ofert dwustronnych w migawce; panel z ostatniego miesiąca przedstawia średnią szerokość w centach, oznaczoną jako średnia. - Porównania z poprzednią sesją: obliczane w zapytaniu od 7 lipca (oraz 6 lipca dla porównań dzień do dnia w przypadku wtorku) — dane nigdy nie są przenoszone z poprzednich wpisów.
- Agregaty deterministyczne:
quantileExact,argMin/argMaxoparte na kluczach krotki (tuple-keyed) oraz deterministyczne rozstrzyganie konfliktów informacyjnych dla zapewnienia stabilnej regeneracji danych. - Data aktualności magazynu danych: 10 lipca 2026 (T+2 dla danego okresu); taśmy z obu sesji zostały w pełni zindeksowane na tym poziomie.
Odnośniki: podsumowanie z 7 lipca 2026, koszty handlu opcjami, podstawy spreadu bid-ask, opcje 0DTE oraz wolumen względny.