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.
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.tickerWskaź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?
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
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 > 03861 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ę.
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 ASCSektor 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.
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 tickerLiderami 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:
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 tickerTSLA 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
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) DESCSPY 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.
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_time1.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
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.
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:
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 tickerSpread 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.
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
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
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_articlesDla 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:
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 ASCKaż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
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.