Podsumowanie rynku: 28 lipca 2026 w liczbach
Sesja 28 lipca 2026 r. w liczbach: indeksy, szerokość rynku, sektory, opcje, notowania, stopy i kalendarz. Sprawdź pełną tablicę wyników.
To podsumowanie sesji rynkowej z wtorku 28 lipca 2026 r. przedstawia cały przebieg sesji na podstawie zapisanych zapytań: zmiana kursu zamknięcia SPY względem poprzedniego zamknięcia wyniosła 0.24%, udział spółek zwyżkujących w płynnym segmencie rynku wyniósł 58.6%, a na rynku opcji zawarto 59.28 mln kontraktów. Każde z poniższych okien ma jednoznacznie określone daty początkową i końcową, dlatego ponowne uruchomienie zapytania SQL dla dowolnego panelu zwróci te same wartości.
Tablica wyników
Każda zmiana porównuje ostatni jednominutowy słupek regularnej sesji z 28 lipca ze słupkiem z poniedziałku, 27 lipca, czyli z dwóch kolejnych sesji giełdowych. Wiersze uporządkowano alfabetycznie, dlatego każdy ETF zachowuje stałą pozycję.
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-27 13:30:00' AND window_start < '2026-07-27 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-28 13:30:00' AND window_start < '2026-07-28 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 tickerDIA zmienił się o 1.07%, IWM o 0.15%, QQQ o -0.96%, a SPY o 0.24%, zamykając sesję na poziomie 740.76 USD. W każdym wierszu zmianę podzielono na dwa etapy: SPY otworzył się 0.02% względem poniedziałkowego zamknięcia i zmienił się o 0.21% od otwarcia do zamknięcia. Zmiana overnight i zmiana śródsesyjna nie muszą być zgodne. Ich rozdzielenie stanowi pierwszy wyróżnik sesji.
Czy sesja była nietypowa?
Wynik jednej sesji niewiele znaczy bez znajomości jego rozkładu, dlatego sesję oceniono na tle własnego poprzedniego miesiąca według identycznej metodologii.
Dokładny kod SQL dla każdej liczby
SELECT
round(anyIf(oc_pct, d = toDate('2026-07-28')), 2) AS spy_open_to_close_pct,
arrayCount(x -> x > abs(anyIf(oc_pct, d = toDate('2026-07-28'))), groupArrayIf(abs(oc_pct), d != toDate('2026-07-28'))) + 1 AS spy_abs_move_rank,
count() AS spy_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-29 13:30:00')
AND window_start < toDateTime('2026-07-29 00:00:00')
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
GROUP BY d
)Zmiana SPY od otwarcia do zamknięcia wyniosła 0.21% i uplasowała się na 14 miejscu wśród 21 poprzednich sesji pod względem wartości bezwzględnej, w okresie sięgającym do 2026-06-29. Pozycja odpowiada liczbie innych sesji w tym okresie, które odnotowały większą zmianę, powiększonej o jeden. Pierwsze miejsce oznaczałoby największą zmianę w poprzednim miesiącu.
Szerokość rynku
Poziom indeksu to jedna liczba. Szerokość rynku pokazuje, ile spółek poruszało się w tym samym kierunku.
Dokładny kod SQL dla każdej liczby
SELECT
countIf(c28 > c27 AND liquid) AS advancers,
countIf(c28 < c27 AND liquid) AS decliners,
countIf(c28 = c27 AND liquid) AS unchanged,
countIf(liquid) AS liquid_tickers,
countIf(NOT liquid) AS dropped_by_liquidity_filter,
round(100.0 * countIf(c28 > c27 AND liquid) / countIf(liquid), 1) AS advancer_pct
FROM (
SELECT ticker, c27, c28, dv28 >= 1000000 AS liquid
FROM (
SELECT ticker,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-27 20:00:00') AS c27,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-28 20:00:00') AS c28,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-28 13:30:00') AS dv28
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-28 20:00:00'
GROUP BY ticker
HAVING c27 > 0 AND c28 > 0
)
)Spośród 6008 spółek, których obrót w regularnych godzinach przekroczył próg miliona USD, 3519 zamknęło sesję powyżej poniedziałkowego zamknięcia, a 2423 poniżej. Udział spółek zwyżkujących wyniósł 58.6%. Filtr wykluczył 5346 spółek o niższej płynności, które ujęto w tym zestawieniu, zamiast po prostu pominąć.
Koszyk spółek mega-cap
Te same osiem spółek mega-cap pojawia się tutaj podczas każdej sesji, w kolejności alfabetycznej, aby każda zachowała swoje miejsce. Stały koszyk jest tu kluczowy: czytelnik zna układ wierszy, a po fakcie nie wybiera się arbitralnie zwycięzców.
Dokładny kod SQL dla każdej liczby
WITH per_name AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-28 00:00:00')) AS prior_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-28 00:00:00')) AS day_close,
round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-28 00:00:00') / 1e9, 2) AS day_dollar_bn
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('AAPL', 'AMZN', 'AVGO', 'GOOGL', 'META', 'MSFT', 'NVDA', 'TSLA')
AND ((window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-27 20:00:00')
OR (window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-28 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,
day_dollar_bn
FROM per_name
ORDER BY tickerAAPL zmienił się o 0.97%, META o -0.05%, MSFT o 1.12%, a NVDA o 0.23% przy obrocie w regularnych godzinach wynoszącym 21.11 miliardów USD. TSLA osiągnęła -0.57%. Kolumna wartości w USD pokazuje, jaką część obrotu te osiem spółek generuje samodzielnie. Panel szerokości rynku powyżej pozwala sprawdzić, w jakim stopniu pozostała część rynku podążała za nimi.
Największe ruchy podczas sesji
Na obu tablicach wymagany jest obrót w regularnych godzinach handlu na poziomie pięciu milionów USD. Wykluczane są wszystkie walory, w przypadku których split został rozliczony między dwoma uwzględnianymi zamknięciami. Wykluczany jest również jeden powtórnie użyty symbol zgodnie z opisaną w uwagach zasadą dotyczącą niejednoznaczności.
Dokładny kod SQL dla każdej liczby
SELECT ticker, board, day_pct, day_dollar_m
FROM (
SELECT 'gainers' AS board, ticker, round((c28 / c27 - 1) * 100, 1) AS day_pct, round(dv / 1e6, 1) AS day_dollar_m
FROM (
SELECT ticker,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-27 20:00:00') AS c27,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-28 20:00:00') AS c28,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-28 13:30:00') AS dv
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker NOT IN ('SPCX')
AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date > '2026-07-27' AND execution_date <= '2026-07-28')
AND window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-28 20:00:00'
GROUP BY ticker
HAVING c27 > 0 AND c28 > 0 AND dv >= 5000000
)
ORDER BY day_pct DESC
LIMIT 8
UNION ALL
SELECT 'decliners' AS board, ticker, round((c28 / c27 - 1) * 100, 1) AS day_pct, round(dv / 1e6, 1) AS day_dollar_m
FROM (
SELECT ticker,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-27 20:00:00') AS c27,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-28 20:00:00') AS c28,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-28 13:30:00') AS dv
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker NOT IN ('SPCX')
AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date > '2026-07-27' AND execution_date <= '2026-07-28')
AND window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-28 20:00:00'
GROUP BY ticker
HAVING c27 > 0 AND c28 > 0 AND dv >= 5000000
)
ORDER BY day_pct ASC
LIMIT 8
)
ORDER BY board DESC, abs(day_pct) DESCNajwiększy wzrost na tablicy odnotował STKH, który zmienił się o 166.7% przy obrocie wynoszącym 113.2 milionów USD. Największy spadek odnotował YYAI, który zmienił się o -71% przy obrocie wynoszącym 18.3 milionów USD. Niniejsza strona przedstawia wielkość zmian i zawarte transakcje. Nie przypisuje im żadnej przyczyny.
Zróżnicowanie sektorów
Jedenaście funduszy SPDR Select Sector, według stosunku zamknięcia z 28 lipca do zamknięcia z 27 lipca, uszeregowano od najlepszego do najsłabszego wyniku. Koszyk jest zdefiniowany i stały, a nie oparty na klasyfikacji dostawcy.
Dokładny kod SQL dla każdej liczby
SELECT sector, day_pct, round(max(day_pct) OVER () - day_pct, 2) AS points_behind_best
FROM (
SELECT multiIf(ticker = 'XLK', 'Technology', ticker = 'XLC', 'Communications', ticker = 'XLE', 'Energy',
ticker = 'XLF', 'Financials', ticker = 'XLI', 'Industrials', ticker = 'XLB', 'Materials',
ticker = 'XLP', 'Staples', ticker = 'XLRE', 'Real Estate', ticker = 'XLU', 'Utilities',
ticker = 'XLV', 'Health Care', 'Consumer Discretionary') AS sector,
round((c28 / c27 - 1) * 100, 2) AS day_pct
FROM (
SELECT ticker,
argMaxIf(toFloat64(close), window_start, window_start < '2026-07-28 00:00:00') AS c27,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-28 00:00:00') AS c28
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-27 13:30:00' AND window_start < '2026-07-27 20:00:00')
OR (window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-28 20:00:00'))
GROUP BY ticker
HAVING c27 > 0 AND c28 > 0
)
)
ORDER BY day_pct DESCHealth Care znalazł się na czele zestawienia z wynikiem 2.36%, a Technology zajęła ostatnie miejsce z wynikiem -1.9%, czyli o 4.26 punktów procentowych niższym. Ta różnica stanowi dzienne zróżnicowanie sektorów. Sesja, podczas której wszystkie jedenaście funduszy mieści się w przedziale jednego punktu procentowego, wygląda zupełnie inaczej niż sesja, podczas której wyniki są rozłożone na kilka punktów.
Gdzie handlowano dolarami
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
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-28 13:30:00' AND window_start < '2026-07-28 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-28 13:30:00' AND window_start < '2026-07-28 20:00:00'
AND ticker NOT IN ('SPCX')
GROUP BY ticker
ORDER BY shares_m DESC
LIMIT 4
)
ORDER BY leaderboard, if(leaderboard = 'by shares traded', shares_m, dollar_volume_bn) DESCMU przewodził na rynku pod względem obrotów w regularnych godzinach sesji, które wyniosły 39.21 mld USD. Za nim uplasował się QQQ z obrotem na poziomie 29.98 mld USD. Zestawienie liczby akcji odpowiada na inne pytanie: pierwsze miejsce zajął ONFO z wynikiem 182.4 mln akcji i implikowaną średnią ceną na poziomie 0.16 USD. Wartość obrotu w dolarach wskazuje, na czym koncentruje się uwaga rynku, a liczba akcji — jaki jest poziom rotacji. W ujęciu dla poszczególnych spółek miarą tą jest wolumen względny.
Taśma opcyjna
Dokładny kod SQL dla każdej liczby
WITH
(
SELECT (strike, typ, vol_m, is_0dte)
FROM (
SELECT toFloat64(any(strike_price)) AS strike, any(option_type) AS typ,
round(toFloat64(sum(size)) / 1e6, 2) AS vol_m,
if(substring(ticker, length(ticker) - 14, 6) = '260728', 1, 0) AS is_0dte
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-28 00:00:00' AND sip_timestamp < '2026-07-29 00:00:00'
AND underlying_symbol = 'SPY'
GROUP BY ticker
ORDER BY vol_m DESC, strike ASC
LIMIT 1
)
) AS top_spy,
(
SELECT round(toFloat64(argMax(close, window_start)), 2)
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-28 20:00:00'
) AS spy_regular_close,
(
SELECT round(toFloat64(sum(size)) / 1e6, 2)
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-27 00:00:00' AND sip_timestamp < '2026-07-28 00:00:00'
) AS jul27_contracts_m,
(
SELECT round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260727') / sum(size), 1)
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-27 00:00:00' AND sip_timestamp < '2026-07-28 00:00:00'
) AS jul27_pct_0dte
SELECT
round(count() / 1e6, 2) AS option_prints_m,
round(toFloat64(sum(size)) / 1e6, 2) AS contracts_m,
jul27_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) = '260728') / sum(size), 1) AS pct_0dte,
jul27_pct_0dte,
spy_regular_close,
top_spy.1 AS top_spy_strike,
top_spy.2 AS top_spy_type,
top_spy.3 AS top_spy_contracts_m,
top_spy.4 AS top_spy_is_0dte,
round(top_spy.1 - spy_regular_close, 2) AS top_spy_strike_minus_close
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-28 00:00:00' AND sip_timestamp < '2026-07-29 00:00:00'Na taśmie opcyjnej odnotowano 10.07 mln transakcji obejmujących 59.28 mln kontraktów, wobec 64.69 mln w poniedziałek. Opcje call stanowiły 55% wolumenu kontraktów. Kontrakty wygasające podczas tej samej sesji, czyli segment opcji z terminem wygaśnięcia tego samego dnia, odpowiadały za 29% wobec 39.3% w poniedziałek. Tempo to wyznacza termin wygaśnięcia. Najaktywniejszym kontraktem na SPY był 742 C, z wolumenem 0.72 mln kontraktów. Jego cena wykonania znajdowała się o 1.24 USD od regularnego kursu zamknięcia SPY wynoszącego $740.76, przy pomiarze według różnicy między ceną wykonania a kursem zamknięcia.
Taśma kwotowa
Dane kwotowań stanowią najrzadszy zasób danych tego zespołu i są mierzone podczas każdej sesji. Zwykłe dni również są rejestrowane.
Dokładny kod SQL dla każdej liczby
SELECT
round(countIf(toDate(sip_timestamp) = toDate('2026-07-28')) / 1e6, 2) AS jul28_updates_m,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-27')) / 1e6, 2) AS jul27_updates_m,
round((countIf(toDate(sip_timestamp) = toDate('2026-07-28')) / countIf(toDate(sip_timestamp) = toDate('2026-07-27')) - 1) * 100, 1) AS day_over_day_pct,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-28') AND ticker = 'SPY') / 1e6, 2) AS jul28_spy_updates_m,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-28') AND ticker = 'QQQ') / 1e6, 2) AS jul28_qqq_updates_m,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-28') AND ticker = 'NVDA') / 1e6, 2) AS jul28_nvda_updates_m
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-07-27 00:00:00' AND sip_timestamp < '2026-07-29 00:00:00'Taśma kwotowań akcji zawierała 536.07 mln aktualizacji NBBO wobec 553.53 mln w poniedziałek, co oznacza zmianę dzień do dnia o -3.2%. Dla SPY odnotowano 4.72 mln aktualizacji, dla QQQ 5.94 mln, a dla NVDA 3.01 mln.
Dokładny kod SQL dla każdej liczby
SELECT ticker,
round(quantileExactIf(0.5)(10000 * (toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2), bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price), 2) AS median_spread_bps,
round(count() / 1e6, 2) AS quote_updates_m,
countIf(bid_price <= 0 OR ask_price <= 0) AS one_sided_quote_count,
countIf(bid_price > ask_price AND bid_price > 0 AND ask_price > 0) AS crossed_quote_count
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('AAPL', 'DIA', 'IWM', 'NVDA', 'QQQ', 'SPY', 'TSLA')
AND sip_timestamp >= '2026-07-28 13:30:00' AND sip_timestamp < '2026-07-28 20:00:00'
GROUP BY ticker
HAVING countIf(bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price) > 0
ORDER BY tickerMediana spreadu kwotowań SPY w regularnych godzinach wyniosła 0.27 punktów bazowych względem wartości środkowej, dla QQQ było to 0.74, a dla NVDA 1.52. Dwie ostatnie kolumny zawierają informacje ujawniające: kwotowania jednostronne i krzyżowe są liczone dla każdego waloru i wyłączane z mediany, a nie po cichu pomijane. Kwotowanie krzyżowe, w którym cena bid przewyższa cenę ask, jest zwykłym artefaktem skonsolidowanego strumienia danych łączącego informacje z wielu miejsc obrotu z rozdzielczością nanosekundową.
Dokładny kod SQL dla każdej liczby
SELECT round(anyIf(spread_bps, d = toDate('2026-07-28')), 2) AS jul28_median_spread_bps,
arrayCount(x -> x < anyIf(spread_bps, d = toDate('2026-07-28')), groupArrayIf(spread_bps, d != toDate('2026-07-28'))) + 1 AS rank_tightest,
count() AS sessions_compared,
toString(min(d)) AS first_session
FROM (
SELECT toDate(sip_timestamp) AS d,
quantileExactIf(0.5)(10000 * (toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2), bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price) AS spread_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'SPY'
AND sip_timestamp >= '2026-07-01 13:30:00' AND sip_timestamp < '2026-07-28 20:00:00'
AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
GROUP BY d
HAVING countIf(bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price) > 0
)W porównaniu ze wszystkimi sesjami lipcowymi, ocenianymi według identycznych zasad, mediana spreadu SPY tego dnia wyniosła 0.27 punktów bazowych, co dało 16 miejsce na 19, licząc od najwęższego spreadu, w oknie rozpoczynającym się 2026-07-01. Przy spokojnej taśmie właśnie na tym polega znaczenie panelu: zwykły dzień pod względem płynności stanowi ustalenie, które zostało opublikowane i opatrzone określonym zakresem.
Dokładny kod SQL dla każdej liczby
WITH
(SELECT count() FROM global_markets.cache_options_quotes WHERE sip_timestamp >= '2026-07-28 00:00:00' AND sip_timestamp < '2026-07-29 00:00:00') AS jul28_options_rows,
(SELECT count() FROM global_markets.cache_stocks_quotes WHERE sip_timestamp >= '2026-07-28 00:00:00' AND sip_timestamp < '2026-07-29 00:00:00') AS jul28_stock_quote_rows
SELECT
round(jul28_options_rows / 1e9, 2) AS jul28_options_bn,
round(jul28_options_rows / jul28_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-28 13:30:00' AND sip_timestamp < '2026-07-28 20:00:00') / 1e6, 0) AS jul28_spy_options_mTaśma NBBO dla opcji obejmowała 10.23 mld aktualizacji, czyli 19.1 razy więcej niż taśma kwotowań akcji. Sam symbol bazowy SPY odpowiadał za 382 mln aktualizacji w regularnych godzinach.
Rentowności
Dokładny kod SQL dla każdej liczby
SELECT toString(date) AS date,
round(toFloat64(yield_2_year), 2) AS yield_2y_pct,
round(toFloat64(yield_10_year), 2) AS yield_10y_pct,
round(toFloat64(yield_30_year), 2) AS yield_30y_pct,
round((toFloat64(yield_10_year) - toFloat64(yield_2_year)) * 100) AS spread_2s10s_bp
FROM global_markets.treasury_yields
WHERE date >= '2026-07-23' AND date <= '2026-07-28'
ORDER BY datePlik dotyczący obligacji skarbowych jest opóźniony względem bieżących notowań o około jedną sesję, dlatego panel przedstawia zapisane w nim transakcje: w oknie znajduje się 4 wierszy z datami. Najnowszy, z datą 2026-07-28, wskazuje rentowność obligacji dwuletnich na poziomie 4.26%, dziesięcioletnich na poziomie 4.61%, a trzydziestoletnich na poziomie 5.09%. Oznacza to spread między obligacjami dwuletnimi a dziesięcioletnimi w wysokości 35 punktów bazowych.
Kalendarz stojący za danym dniem
Dokładny kod SQL dla każdej liczby
WITH
(
SELECT (argMax(t, (n, t)), max(n))
FROM (
SELECT t, count() AS n
FROM (
SELECT arrayJoin(tickers) AS t
FROM global_markets.stocks_news
WHERE published_utc >= '2026-07-28 04:00:00' AND published_utc < '2026-07-29 04:00:00'
)
WHERE t != 'SPCX'
GROUP BY t
)
) AS top_news,
(
SELECT (count(), uniqExact(cik), countIf(form_type = '4'), countIf(form_type = '8-K'), countIf(form_type = '424B2'), countIf(form_type = '10-Q'))
FROM global_markets.stocks_sec_edgar_index
WHERE filing_date = '2026-07-28'
) AS fil
SELECT
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-28') AS ex_dividend_records,
(SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-28') AS reverse_splits,
(SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-28') AS forward_splits,
(SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-28') AS listings,
(SELECT count() FROM global_markets.stocks_news WHERE published_utc >= '2026-07-28 04:00:00' AND published_utc < '2026-07-29 04:00:00') AS news_articles,
(SELECT uniqExact(JSONExtractString(publisher, 'name')) FROM global_markets.stocks_news WHERE published_utc >= '2026-07-28 04:00:00' AND published_utc < '2026-07-29 04:00:00') AS news_publishers,
top_news.1 AS top_news_ticker,
top_news.2 AS top_news_n,
fil.1 AS fil_total,
fil.2 AS fil_filers,
fil.3 AS fil_form4,
fil.4 AS fil_8k,
fil.5 AS fil_424b2,
fil.6 AS fil_10qDywidendy 147 spółek przeszły na dzień bez prawa do dywidendy 28 lipca, wykonano 3 odwrotnych i 0 zwykłych splitów, a na rynku zadebiutowało 2 nowych spółek. Kanał informacyjny zawierał 161 artykułów opublikowanych przez 2 wydawców, przy czym ticker o największej liczbie publikacji w oknie tego kanału miał 9 artykułów (MSFT). Dzienny indeks EDGAR obejmuje 5915 zgłoszeń z tego dnia, złożonych przez 2898 różnych składających: 856 raportów insiderów Form 4, 315 bieżących raportów 8-K, 900 uzupełnień cenowych 424B2 oraz 100 kwartalnych raportów 10-Q. Indeks ten jest publikowany według własnego harmonogramu, a panel przedstawia dane dostępne w momencie generowania.
W planie
W pozostałej części tygodnia należy korzystać z tych samych tabel, celowo pomijając analizowany okres.
Dokładny kod SQL dla każdej liczby
SELECT
(SELECT count() FROM global_markets.stocks_market_holidays WHERE date >= '2026-07-29' AND date <= '2026-07-31' AND status != 'open') AS closures_rest_of_week,
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date >= '2026-07-29' AND ex_dividend_date <= '2026-07-31') AS exdiv_records_rest_of_week,
(SELECT countIf(ticker IN ('AAPL', 'MSFT', 'JPM', 'KO', 'JNJ', 'XOM', 'CVX', 'PG', 'WMT', 'HD')) FROM global_markets.stocks_dividends WHERE ex_dividend_date >= '2026-07-29' AND ex_dividend_date <= '2026-07-31') AS household_exdivs,
(SELECT count() FROM global_markets.stocks_splits WHERE execution_date >= '2026-07-29' AND execution_date <= '2026-07-31') AS splits_rest_of_week,
round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260731') / sum(size), 1) AS jul31_expiry_pct_of_tue_volume,
(SELECT toString(max(settlement_date)) FROM global_markets.stocks_short_interest WHERE settlement_date <= '2026-07-28') AS latest_short_interest_settlement
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-28 00:00:00' AND sip_timestamp < '2026-07-29 00:00:00'Tabela dni świątecznych wskazuje 0 zamknięcia rynku w środę 29 lipca, czwartek 30 lipca i piątek 31 lipca. W ciągu tych trzech sesji 696 rekordów dywidendowych przejdzie przez ex-dividend date, w tym 0 spośród dziesięciu sprawdzonych spółek konsumenckich. Zaplanowano również wykonanie 15 splitów. We wtorek 17.5% wolumenu obrotu opcjami przypadało już na kontrakty z terminem wygaśnięcia w piątek 31 lipca. Najnowsze dostępne rozliczenie pozycji krótkich to 2026-07-15 — plik publikowany z opóźnieniem na tyle dużym, że doczekał się osobnego wyjaśnienia.
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,
countIf(window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-28 20:00:00') AS regular_session_bars,
uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-28 20:00:00') AS day_sessions,
(SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-28') AS jul28_holiday_rows,
(SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-28' AND date <= '2026-12-31' AND status = 'closed') AS next_closure_date,
(SELECT argMin(name, date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-28' AND date <= '2026-12-31' AND status = 'closed') AS next_closure_name
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-28 00:00:00' AND window_start < '2026-07-29 00:00:00'Pełna sesja regularna: pierwsza świeca SPY o 04:00 ET, ostatnia o 19:59 ET, 390 świec w godzinach regularnych, 1 sesja w analizowanym przedziale oraz 0 wierszy dotyczących dni świątecznych dla tej daty. Najbliższe zaplanowane zamknięcie rynku przypada na Labor Day o 2026-09-07.
Najczęściej zadawane pytania
Jak zachował się rynek akcji we wtorek, 28 lipca 2026 r.?
SPY zmienił się o 0.24% względem poprzedniego zamknięcia i wyniósł 740.76 USD, natomiast QQQ osiągnął -0.96%, DIA 1.07%, a IWM 0.15%. Wśród płynnych walorów 3519 wzrósł, a 2423 spadł.
Który sektor zajął pierwsze miejsce 28 lipca 2026 r.?
Health Care, z wynikiem 2.36%, w ujęciu obejmującym jedenaście funduszy SPDR Select Sector. Najsłabszy z jedenastu, Technology, odnotował -1.9%.
Jak aktywny był rynek opcji 28 lipca 2026 r.?
Przedmiotem obrotu było 59.28 mln kontraktów, wobec 64.69 mln podczas poprzedniej sesji. Kontrakty wygasające tego samego dnia stanowiły 29% wolumenu, a opcje call 55%.
Która spółka odnotowała największą wartość obrotu 28 lipca 2026 r.?
MU, z obrotem w regularnych godzinach sesji na poziomie 39.21 mld USD, przed QQQ z wynikiem 29.98 mld USD.
Uwagi dotyczące danych
To wydanie uzupełnia lukę z 28 lipca w dziennej serii: dzienny raport z 27 lipca obejmuje poprzednią sesję, dzienny raport z 29 lipca — następną, a tygodniowe podsumowanie obejmuje tydzień poprzedzający obie te sesje. Panele nazwane według tickerów uporządkowano alfabetycznie, aby odwołania w tekście wskazywały stałe wiersze. Rankingi i zestawienia największych zmian uporządkowano według wartości, a każde zawarte w nich twierdzenie dotyczące pozycji zakodowano jako ograniczenie kontrolne. Koszyk spółek mega-cap oraz koszyk sektorowy obejmujący jedenaście funduszy są określonymi, stałymi zbiorami, a nie klasyfikacjami dostawcy danych. Zestawienia największych zmian stosują próg obrotu w regularnych godzinach sesji wynoszący pięć milionów USD, wykluczają każdy instrument, dla którego split został wykonany między dwiema analizowanymi cenami zamknięcia, oraz wykluczają jeden powtórnie użyty symbol zgodnie z wewnętrzną regułą dotyczącą niejednoznaczności. Dzięki temu każde wyróżnienie prowadzi do możliwej do zweryfikowania nazwy. Panele kwotowań zliczają dla każdego instrumentu kwotowania jednostronne i krzyżowe, zamiast po cichu je pomijać. Plik Treasury oraz dzienny indeks EDGAR są publikowane według własnych harmonogramów, dlatego panele przedstawiają zawarte w nich dane, bez zakładania, że pliki wpłynęły. W tym wydaniu nie występuje żaden indeks implikowanej zmienności. Serie te nie są objęte licencją w tym magazynie danych, dlatego zmienność jest oceniana na podstawie przebiegu notowań, zakresów zmian, udziału opcji w transakcjach tego samego dnia oraz zachowania kwotowań.
Metodyka
- Źródło danych rynkowych: skonsolidowany strumień transakcji.
delayed_stocks_minute_aggsdla cen i wolumenów,options_tradesdla strumienia danych opcyjnych,cache_stocks_quotesicache_options_quotesdla paneli NBBO. - Kurs zamknięcia: ostatni jednominutowy bar regularnej sesji; nigdy nie jest to założona transakcja z godziny 16:00 ani transakcja z sesji wydłużonej.
- Obsługa stref czasowych: wszystkie zapisane znaczniki czasu są w UTC; klauzule WHERE używają surowych literałów UTC, a
toTimeZonewystępuje wyłącznie na listach SELECT dla oznaczeń ET. - Weryfikacja sesji: na podstawie tabeli dni świątecznych oraz zaobserwowanych barów, a nie na podstawie samego kalendarza.
- Porównania z poprzednią sesją: obliczane w zapytaniu na podstawie danych z 27 lipca, a nie przenoszone z wcześniejszej publikacji.
- Liczby dziesiętne: kolumny cen, wielkości pozycji i wolumenów są konwertowane do Float64 przed wykonaniem jakiegokolwiek dzielenia lub mnożenia.
- Deterministyczne agregaty: w całym opracowaniu stosowane są dokładne kwantyle oraz rozstrzyganie remisów na podstawie kluczy krotek; każde twierdzenie dotyczące kolejności lub znaku w tekście jest zakodowane jako warunek kontrolny.
- Data stanu magazynu danych: 1 sierpnia 2026 r., cztery dni po sesji, czyli po typowym dla strumienia danych opóźnieniu ingestii wynoszącym one-to-two days; powyższe ograniczone potwierdzenia zabezpieczają publikację na wypadek braku któregoś zbioru danych w momencie generowania.
Linki wewnętrzne: dzienny raport z 27 lipca, dzienny raport z 29 lipca, kiedy wygasają opcje, czym jest spread bid-ask oraz spread między obligacjami dwuletnimi a dziesięcioletnimi.
Każde z powyższych zapytań działa bez zmian na terminalu Strasmore, jeśli konieczne jest przekierowanie okna na inną sesję.