Marktrückblick 28. Juli 2026: Der Tag in Zahlen
Marktbericht zum 28. Juli 2026 mit Indexüberblick, Marktbreite, Sektor-Spreads, Optionsfluss, Kursen, Zinsen und Kalender. Alle Werte stammen aus Abfragen.
Dieser Marktbericht für Dienstag, den 28. Juli 2026, fasst die gesamte Sitzung anhand gespeicherter Abfragen zusammen: Die Veränderung von SPY gegenüber dem vorherigen Schlusskurs betrug 0.24%, der Anteil der gestiegenen Werte im liquiden Markt 58.6%, und im Optionshandel wurden 59.28 Millionen Kontrakte ausgeführt. Jedes untenstehende Zeitfenster ist an beiden Enden durch konkrete Daten festgelegt. Bei einer erneuten Ausführung der SQL-Abfrage eines beliebigen Panels werden daher dieselben Werte zurückgegeben.
Die Übersicht
Jede Veränderung vergleicht den Schlusskurs des letzten regulären Minutenbalkens vom 28. Juli mit dem entsprechenden Wert vom Montag, dem 27. Juli, also aufeinanderfolgende Handelssitzungen. Die Zeilen sind alphabetisch geordnet, sodass jedes ETF seine feste Position behält.
Das exakte SQL hinter jeder Zahl
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 bewegte sich um 1.07%, IWM um 0.15%, QQQ um -0.96% und SPY um 0.24% auf einen Schlusskurs von $740.76. Jede Zeile teilt die Bewegung in ihre zwei Komponenten auf: SPY eröffnete 0.02% gegenüber dem Montagsschluss und bewegte sich vom Eröffnungskurs bis zum Schlusskurs um 0.21%. Die Bewegung über Nacht und die Intraday-Bewegung müssen nicht übereinstimmen. Ihre Aufteilung ist der erste Fingerabdruck einer Handelssitzung.
War der Handelstag ungewöhnlich?
Die Kennzahl eines einzelnen Handelstags sagt ohne die zugrunde liegende Verteilung wenig aus. Deshalb wird der Tag nach derselben Logik innerhalb seines eigenen zurückliegenden Monats eingeordnet.
Das exakte SQL hinter jeder Zahl
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
)Die Bewegung von SPY vom Handelsbeginn bis zum Handelsschluss von 0.21% belegte bei der absoluten Größe Rang 14 von 21 zurückliegenden Handelstagen. Der betrachtete Zeitraum reicht bis 2026-06-29 zurück. Der Rang zählt, wie viele andere Handelstage sich im Zeitraum stärker bewegten, und addiert eins. Rang eins wäre somit die größte Bewegung des zurückliegenden Monats.
Marktbreite
Ein Indexstand ist eine einzelne Zahl. Die Marktbreite zeigt, wie viele Aktien sich in dieselbe Richtung bewegten.
Das exakte SQL hinter jeder Zahl
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
)
)Von 6008 Titeln, die im regulären Handel einen Umsatz von einer Million Dollar überschritten, schlossen 3519 über dem Schlusskurs vom Montag und 2423 darunter. Der Anteil der gestiegenen Titel lag bei 58.6%. Der Filter schloss 5346 weniger liquide Titel aus. Sie werden hier ausgewiesen und nicht stillschweigend verworfen.
Das Mega-Cap-Universum
Dieselben acht Mega-Cap-Namen erscheinen in jeder Sitzung. Sie sind alphabetisch sortiert, damit jeder Titel seine Zeile behält. Der feste Korb ist entscheidend: Die Leser lernen die Zeilen kennen, und nachträglich werden keine Gewinner redaktionell ausgewählt.
Das exakte SQL hinter jeder Zahl
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 bewegte sich um 0.97%, META um -0.05%, MSFT um 1.12% und NVDA um 0.23% bei einem Umsatz von 21.11 Milliarden Dollar während der regulären Handelszeiten. TSLA lag bei -0.57%. Die Dollarspalte zeigt, welchen Anteil dieser acht Titel am gesamten Tape-Volumen allein ausmachen. Das darüberliegende Breitenpanel zeigt, wie weit der übrige Markt diese Bewegung mitvollzogen hat.
Die Tagesgewinner und -verlierer
Für beide Listen sind mindestens fünf Millionen Dollar Umsatz während der regulären Handelszeiten erforderlich. Ausgeschlossen werden alle Werte, deren Aktiensplit zwischen den beiden gemessenen Schlusskursen vollzogen wurde. Außerdem wird ein wiederverwendetes Symbol gemäß der in den Hinweisen beschriebenen Ambiguitätsregel des Hauses ausgeschlossen.
Das exakte SQL hinter jeder Zahl
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) DESCDer größte Gewinner der Liste, STKH, legte bei einem Handelsvolumen von 113.2 Millionen Dollar um 166.7% zu. Der stärkste Verlierer, YYAI, gab bei 18.3 Millionen Dollar Umsatz um -71% nach. Diese Seite dokumentiert die Kursbewegungen und die zugrunde liegenden Transaktionen. Sie liefert keine Erklärung dafür.
Sektorstreuung
Die elf SPDR Select Sector Fonds, Schlusskurs vom 28. Juli im Verhältnis zum Schlusskurs vom 27. Juli, sortiert vom besten zum schlechtesten Wert. Der Korb ist festgelegt und unverändert. Er basiert nicht auf einer Anbieterklassifizierung.
Das exakte SQL hinter jeder Zahl
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 führte die Rangliste mit 2.36% an. Technology lag mit -1.9% am Ende und damit 4.26 Prozentpunkte zurück. Diese Spanne beschreibt die Sektorstreuung des Tages. Ein Handelstag, an dem alle elf Fonds innerhalb eines Prozentpunkts liegen, sieht deutlich anders aus als einer, an dem sich die Werte über mehrere Prozentpunkte verteilen.
Wo die Dollar gehandelt wurden
Das exakte SQL hinter jeder Zahl
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 führte das Dollar-Ranking mit einem Umsatz von 39.21 Milliarden in den regulären Handelszeiten an. QQQ folgte mit 29.98 Milliarden. Das Aktien-Ranking beantwortet eine andere Frage: ONFO lag mit 182.4 Millionen Aktien vorn. Daraus ergibt sich ein impliziter Durchschnittspreis von $0.16. Das Dollarvolumen zeigt, auf welche Werte sich die Aufmerksamkeit des Marktes richtet. Das Aktienvolumen zeigt die Umschlagshäufigkeit. Die wertbezogene Variante dieser Kennzahl ist das relative Volumen.
Der Optionshandel
Das exakte SQL hinter jeder Zahl
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'Im Optionshandel wurden 10.07 Millionen Geschäfte mit 59.28 Millionen Kontrakten ausgeführt, gegenüber 64.69 Millionen am Montag. Auf Calls entfielen 55% des Kontraktvolumens. Kontrakte mit Verfall am selben Handelstag, die sogenannte Zero-Days-to-Expiry-Gruppe, erreichten 29% gegenüber 39.3% am Montag. Dieses Muster wird durch den Verfallstermin bestimmt. Der meistgehandelte SPY-Kontrakt war der 742 C mit 0.72 Millionen Kontrakten. Sein Ausübungspreis lag 1.24 Dollar vom regulären SPY-Schlusskurs von $740.76 entfernt, berechnet als Ausübungspreis minus Schlusskurs.
Das Quote-Tape
Die Quote-Daten sind der knappste Datensatz dieses Desks und werden in jeder Sitzung gemessen. Auch gewöhnliche Handelstage werden aufgezeichnet.
Das exakte SQL hinter jeder Zahl
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'Das Aktien-Quote-Tape verzeichnete 536.07 Millionen NBBO-Updates gegenüber 553.53 Millionen am Montag. Das entspricht einer Veränderung zum Vortag von -3.2%. Auf SPY entfielen 4.72 Millionen Updates, auf QQQ 5.94 Millionen und auf NVDA 3.01 Millionen.
Das exakte SQL hinter jeder Zahl
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 tickerDer Median des angezeigten Spreads bei SPY während der regulären Handelszeiten entsprach 0.27 Basispunkten des Mid-Preises. Bei QQQ waren es 0.74 und bei NVDA 1.52. Die letzten beiden Spalten dienen der Offenlegung: Einseitige und gekreuzte Quotes werden je Wertpapier gezählt und vom Median getrennt ausgewiesen, statt stillschweigend entfernt zu werden. Bei einem gekreuzten Quote liegt das Bid über dem Ask. Das ist ein gewöhnliches Artefakt eines konsolidierten Feeds, der bei einer Auflösung im Nanosekundenbereich Daten von vielen Handelsplätzen zusammenführt.
Das exakte SQL hinter jeder Zahl
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
)Verglichen mit jeder Juli-Sitzung nach identischer Methodik lag der SPY-Median-Spread des Tages von 0.27 Basispunkten bei 16 von 19, ausgehend vom engsten Spread gezählt, in einem am 2026-07-01 beginnenden Zeitraum. An einem ruhigen Handelstag liegt genau darin die Aussagekraft des Panels: Ein gewöhnlicher Liquiditätstag ist eine Erkenntnis, die veröffentlicht und klar abgegrenzt wird.
Das exakte SQL hinter jeder Zahl
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_mDas Options-NBBO-Tape verzeichnete 10.23 Milliarden Updates. Das waren 19.1-mal so viele wie im Aktien-Quote-Tape. Allein auf den SPY-Root entfielen während der regulären Handelszeiten 382 Millionen Updates.
Zinssätze
Das exakte SQL hinter jeder Zahl
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 dateDie Datei des US-Finanzministeriums liegt gegenüber dem Marktgeschehen etwa eine Sitzung zurück. Dieses Panel zeigt daher die darin enthaltenen ausgeführten Trades: 4 datierte Zeilen im Zeitfenster. Der jüngste Eintrag vom 2026-07-28 setzte die Rendite zweijähriger US-Staatsanleihen auf 4.26%, die Rendite zehnjähriger US-Staatsanleihen auf 4.61% und die Rendite dreißigjähriger US-Staatsanleihen auf 5.09%. Daraus ergibt sich ein Spread zwischen zwei- und zehnjährigen Laufzeiten von 35 Basispunkten.
The calendar behind the day
Das exakte SQL hinter jeder Zahl
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_10q147 dividend records went ex-dividend on July 28, 3 reverse and 0 forward splits executed, and 2 new listings hit the tape. The news feed carried 161 articles from 2 publishers, with MSFT the most-covered ticker in this one feed's window at 9 articles. The EDGAR daily index holds 5915 filings for the date from 2898 distinct filers: 856 insider Form 4 reports, 315 8-K current reports, 900 424B2 pricing supplements and 100 10-Q quarterly reports. That index lands on its own schedule, and this panel reports whatever it holds at generation time.
Als Nächstes
Lesen Sie für den Rest der Woche aus denselben Tabellen. Schauen Sie dabei bewusst über den Berichtszeitraum hinaus.
Das exakte SQL hinter jeder Zahl
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'Die Feiertagstabelle weist von Mittwoch, dem 29. Juli, bis Freitag, dem 31. Juli, einschließlich Donnerstag, dem 30. Juli, 0 Schließungen aus. Bei 696 Dividendenaufzeichnungen fällt der Ex-Dividenden-Termin auf eine dieser drei Sitzungen. 0 davon entfallen auf zehn überprüfte bekannte Haushaltsnamen. Außerdem sollen 15 Aktiensplits ausgeführt werden. Von Tuesdays Optionsvolumen entfielen bereits 17.5% auf Kontrakte mit Verfall am Freitag, dem 31. Juli. Der jüngste erfasste Abrechnungstermin für Short Interest ist 2026-07-15. Die Veröffentlichung erfolgt mit einer so langen Verzögerung, dass sie eine eigene Erläuterung verdient.
Die Sitzung, verifiziert
Das exakte SQL hinter jeder Zahl
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'Eine vollständige reguläre Sitzung: erster SPY-Balken um 04:00 ET, letzter um 19:59 ET, 390 Balken während der regulären Handelszeiten, 1 Sitzung im Zeitfenster und 0 Feiertagszeilen für das Datum. Die nächste planmäßige Schließung ist Labor Day am 2026-09-07.
Häufig gestellte Fragen
Wie entwickelte sich der Aktienmarkt am Dienstag, dem 28. Juli 2026?
SPY veränderte sich gegenüber dem Schlusskurs des Vortags um 0.24% auf $740.76. QQQ lag bei -0.96%, DIA bei 1.07% und IWM bei 0.15%. Unter den liquiden Titeln stieg 3519, während 2423 fiel.
Welcher Sektor lag am 28. Juli 2026 an der Spitze?
Health Care mit 2.36%, gemessen anhand der elf SPDR-Select-Sektor-Fonds. Der schwächste der elf Fonds, Technology, verzeichnete -1.9%.
Wie rege war der Optionsmarkt am 28. Juli 2026?
59.28 Millionen Kontrakte wurden gehandelt, gegenüber 64.69 Millionen in der vorherigen Sitzung. Kontrakte mit taggleicher Fälligkeit machten 29% des Volumens aus, und auf Calls entfielen 55%.
Welche Aktie verzeichnete am 28. Juli 2026 das höchste Handelsvolumen in Dollar?
MU mit einem Dollarvolumen von 39.21 Milliarden während der regulären Handelszeiten, vor QQQ mit 29.98 Milliarden.
Datenhinweise
Diese Ausgabe schließt die Lücke vom 28. Juli in der täglichen Reihe: die Tagesausgabe vom 27. Juli behandelt die vorherige Sitzung, die Tagesausgabe vom 29. Juli die nachfolgende Sitzung, und die Wochenzusammenfassung umfasst die Woche vor beiden. Benannte panels nach ticker sind alphabetisch sortiert, damit Verweise im Text auf feste Zeilen zeigen. Leaderboards und Übersichten zu den stärksten Bewegungen sind nach Wert sortiert, und jede darin enthaltene Positionsangabe ist als Plausibilitätsgrenze codiert. Der Mega-Cap-Korb und der Sektorkorb mit elf Fonds sind fest definierte Mengen, keine Klassifizierungen eines Datenanbieters. Für die Übersichten zu den stärksten Bewegungen gilt ein Umsatz von fünf Millionen Dollar während der regulären Handelszeiten. Titel, bei denen ein Split zwischen den beiden gemessenen Schlusskursen ausgeführt wurde, werden ausgeschlossen. Zusätzlich wird ein wiederverwendetes Symbol gemäß der internen Mehrdeutigkeitsprüfung ausgeschlossen, damit jede Hervorhebung auf einen überprüfbaren Titel zurückfällt. Die Quote-panels zählen für jeden Titel einseitige und gekreuzte Quotes, statt sie stillschweigend zu verwerfen. Die Datei des US-Finanzministeriums und der tägliche EDGAR-Index werden nach eigenen Zeitplänen veröffentlicht. Daher geben diese panels den jeweils enthaltenen Datenbestand wieder, ohne eine fristgerechte Ankunft vorauszusetzen. Ein Index für implizite Volatilität ist hier nicht enthalten. Diese Reihen sind für dieses Datenlager nicht lizenziert. Die Volatilität wird daher anhand des Kursverlaufs beurteilt, insbesondere über Handelsspannen, den Anteil von Optionen am Tagesvolumen und das Quote-Verhalten.
Methodik
- Quelle der Marktdaten: konsolidiertes Orderbuch.
delayed_stocks_minute_aggsfür Preise und Volumina,options_tradesfür das Options-Orderbuch,cache_stocks_quotesundcache_options_quotesfür die NBBO-Panels. - Schlusskurs: der letzte Minutenbalken der regulären Sitzung, niemals ein angenommener Print um 16:00 Uhr und niemals ein Print aus dem erweiterten Handel.
- Zeitzonenverarbeitung: Alle gespeicherten Zeitstempel sind UTC. WHERE-Klauseln verwenden rohe UTC-Literale, und
toTimeZoneerscheint nur in SELECT-Listen für ET-Kennzeichnungen. - Sitzungsprüfung: anhand der Feiertagstabelle und der beobachteten Balken, niemals ausschließlich anhand des Kalenders.
- Vergleiche mit der vorherigen Sitzung: werden in der Abfrage aus dem 27. Juli berechnet und nicht aus einem früheren Beitrag übernommen.
- Dezimalstellen: Preis-, Größen- und Volumenspalten werden vor jeder Division oder Multiplikation in Float64 umgewandelt.
- Deterministische Aggregationen: durchgehend exakte Quantile und Tie-Breaks anhand von Tupel-Schlüsseln; jede Rangfolge- oder Richtungsbehauptung im Text ist als Plausibilitätsgrenze codiert.
- Stichtag des Data-Warehouse: 1. August 2026, vier Tage nach der Sitzung und damit nach der üblichen ein- bis zweitägigen Verzögerung bei der Datenübernahme; die oben genannten begrenzten Belege halten den Beitrag zurück, falls bei der Erstellung ein Datensatz fehlt.
Querverweise: die Tageszusammenfassung vom 27. Juli, die Tageszusammenfassung vom 29. Juli, wann Optionen verfallen, was ein Bid-Ask-Spread ist und der Spread zwischen zwei- und zehnjährigen Laufzeiten.
Jede obige Abfrage läuft unverändert auf dem Strasmore-Terminal, wenn Sie ein Zeitfenster auf eine andere Sitzung ausrichten möchten.