Strasmore Research
Marktrückblicke Matt ConnorVon Matt Connor · Aktualisiert 2026-08-02

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.

AbfrageSPY / QQQ / DIA / IWM: 28. Juli vs. Schlusskurs vom 27. Juli, reguläre Handelszeit
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 ticker
Run this yourself

DIA 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.

AbfrageSPY-Tagesbewegung im nachlaufenden Kontext (Eröffnung bis Schluss, 29. Juni bis 28. Juli)
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
)
Run this yourself

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.

AbfrageBreite des Liquid-Tapes: Schlusskurs am 28. Juli vs. Schlusskurs am 27. Juli, $1M-Handelsfilter
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
    )
)
Run this yourself

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.

AbfrageAcht Mega-Caps: Veränderung vs. 27. Juli und Handelsvolumen in Dollar, 28. Juli
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 ticker
Run this yourself

AAPL 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.

AbfrageGrößte Gewinner und Verlierer: Schlusskurs am 28. Juli vs. Schlusskurs am 27. Juli, ab $5M Handelsvolumen, Splits 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) DESC
Run this yourself

Der 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.

AbfrageSektor-ETFs, Schlusskurs am 28. Juli vs. Schlusskurs am 27. Juli, sortiert
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 DESC
Run this yourself

Health 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

AbfrageTop 6 nach Handelsvolumen in Dollar, Top 4 nach gehandelten Aktien: reguläre Handelszeit am 28. Juli
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) DESC
Run this yourself

MU 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

AbfrageOptions-Tape: Kontrakte, Call-Anteil, Anteil am selben Handelstag vs. Montag, meistgehandelter SPY-Kontrakt
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'
Run this yourself

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.

AbfrageNBBO-Updates bei Aktien: Anzahl am 28. Juli vs. 27. Juli, einschließlich Updates für benannte ticker (Millionen)
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'
Run this yourself

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.

AbfrageSieben Werte: Median-Spread im RTH in Basispunkten, mit Anzahlen zur Quote-Qualität, 28. Juli
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 ticker
Run this yourself

Der 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.

AbfrageSPY-Median-Spread im Vergleich zu jeder Juli-Sitzung, engster zuerst
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
)
Run this yourself

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.

AbfrageOptions-NBBO-Tape: Gesamtzahl der Updates vs. Aktien-Tape, plus SPY-Root-Segment, 28. Juli
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_m
Run this yourself

Das 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

AbfrageErfasste Treasury-Kurspunkte, 23. bis 28. Juli
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 date
Run this yourself

Die 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

AbfrageEx-Dividenden, Splits, Listings, Nachrichten und die SEC-Filing-Mischung vom 28. Juli
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_10q
Run this yourself

147 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.

Abfrage29. bis 31. Juli im Kalender: Schließungen, Ex-Dividenden, Splits, der Verfall am Freitag und die Verzögerung bei Short-Interest-Daten
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'
Run this yourself

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

AbfrageSitzungsprüfung: erste/letzte SPY-Kerze ET, Anzahl regulärer Kerzen, Feiertagsbelege, nächste Schließung
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'
Run this yourself

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_aggs für Preise und Volumina, options_trades für das Options-Orderbuch, cache_stocks_quotes und cache_options_quotes fü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 toTimeZone erscheint 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.