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

Marktüberblick 30. Juli 2026: Der Tag in Zahlen

30. Juli 2026 aus den gespeicherten Abfragen: Indexüberblick, Marktbreite, Sektorspread, Optionsflow, Kurse, Zinsen und Kalender, jede Zahl belegt.

Diese Marktübersicht für Donnerstag, den 30. Juli 2026, bildet die gesamte Sitzung anhand gespeicherter Abfragen ab: Die Veränderung von SPY gegenüber dem Vortagesschluss betrug 1.68%, der Anteil der Gewinner im liquiden Markt 63.5%, und im Optionshandel wurden 67.06 Millionen Kontrakte ausgeführt. Jedes nachfolgende Zeitfenster ist an beiden Enden durch konkrete Daten festgelegt. Bei einer erneuten Ausführung der SQL-Abfrage für ein beliebiges Panel ergeben sich daher dieselben Werte.

Die Übersicht

Jede Veränderung vergleicht den letzten Minutenbalken der regulären Sitzung vom 30. Juli mit dem der vorangegangenen Handelssitzung am Mittwoch, dem 29. Juli. Die Zeilen sind alphabetisch geordnet, sodass jedes ETF seine feste Position behält.

AbfrageSPY / QQQ / DIA / IWM: 30. Juli gegenüber Schlusskurs vom 29. 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-29 13:30:00' AND window_start < '2026-07-29 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-30 13:30:00' AND window_start < '2026-07-30 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.19%, IWM um 1.37%, QQQ um 3.34% und SPY um 1.68% auf einen Schlusskurs von $741.73. Jede Zeile teilt die Bewegung in ihre zwei Komponenten auf: SPY eröffnete 0.9% gegenüber dem Schlusskurs vom Mittwoch und bewegte sich vom Eröffnungs- bis zum Schlusskurs um 0.77%. Die Übernachtbewegung und die Intraday-Bewegung müssen nicht übereinstimmen. Ihre Aufteilung ist der erste Fingerabdruck einer Sitzung.

War der Tag ungewöhnlich?

Die Zahl einer einzelnen Sitzung sagt ohne die zugrunde liegende Verteilung wenig aus. Deshalb wird der Tag nach derselben Logik innerhalb seines eigenen zurückliegenden Monats eingeordnet.

AbfrageTagesbewegung von SPY im nachlaufenden Kontext (Eröffnung bis Schluss, 30. Juni bis 30. Juli)
Das exakte SQL hinter jeder Zahl
SELECT
    round(anyIf(oc_pct, d = toDate('2026-07-30')), 2) AS spy_open_to_close_pct,
    arrayCount(x -> x > abs(anyIf(oc_pct, d = toDate('2026-07-30'))), groupArrayIf(abs(oc_pct), d != toDate('2026-07-30'))) + 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-30 13:30:00')
      AND window_start < toDateTime('2026-07-31 00:00:00')
      AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
    GROUP BY d
)
Run this yourself

SPYs Bewegung vom Eröffnungs- bis zum Schlusskurs von 0.77% belegte nach ihrer absoluten Größe Rang 3 von 22 zurückliegenden Sitzungen. Der Betrachtungszeitraum reicht bis 2026-06-30 zurück. Der Rang zählt, wie viele andere Sitzungen im Zeitraum eine größere Bewegung aufwiesen, 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 30. Juli gegenüber Schlusskurs am 29. Juli, Filter: $1M Handelsvolumen
Das exakte SQL hinter jeder Zahl
SELECT
    countIf(c30 > c29 AND liquid) AS advancers,
    countIf(c30 < c29 AND liquid) AS decliners,
    countIf(c30 = c29 AND liquid) AS unchanged,
    countIf(liquid) AS liquid_tickers,
    countIf(NOT liquid) AS dropped_by_liquidity_filter,
    round(100.0 * countIf(c30 > c29 AND liquid) / countIf(liquid), 1) AS advancer_pct
FROM (
    SELECT ticker, c29, c30, dv30 >= 1000000 AS liquid
    FROM (
        SELECT ticker,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS c29,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00') AS c30,
               sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-30 13:30:00') AS dv30
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-30 20:00:00'
        GROUP BY ticker
        HAVING c29 > 0 AND c30 > 0
    )
)
Run this yourself

Von 5960 Titeln, die während der regulären Handelszeit ein Umsatzkriterium von einer Million US-Dollar überschritten, schlossen 3782 über dem Schlusskurs vom Mittwoch und 2122 darunter. Der Anteil der gestiegenen Aktien lag damit bei 63.5%. Der Filter schloss 5492 weniger liquide Titel aus; sie werden hier mitgezählt und nicht stillschweigend verworfen.

Das Mega-Cap-Universum

Dieselben acht Mega-Cap-Namen erscheinen in jeder Sitzung. Sie sind alphabetisch geordnet, damit jeder Titel seine Zeile behält. Der feste Korb ist der entscheidende Punkt: Die Leser lernen die Zeilen kennen, und nachträglich werden keine Gewinner redaktionell ausgewählt.

AbfrageAcht Mega-Caps: Veränderung gegenüber 29. Juli und in der regulären Handelszeit gehandeltes Volumen in $, 30. Juli
Das exakte SQL hinter jeder Zahl
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-30 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-30 00:00:00')) AS day_close,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-30 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-29 13:30:00' AND window_start < '2026-07-29 20:00:00')
        OR (window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 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 -1.24%, META um -8.17%, MSFT um 15.06% und NVDA um 2.67% bei einem Umsatz von 19.63 Milliarden Dollar während der regulären Handelszeiten. TSLA lag bei 3.53%. Die Dollarspalte zeigt, welchen Anteil dieser acht Titel am gesamten Handelsgeschehen allein ausmachen. Das Breitenpanel oben zeigt, wie weit der übrige Markt diese Bewegung mitvollzogen hat.

Die Tagesbewegungen

Für beide Listen sind fünf Millionen Dollar Umsatz während der regulären Handelszeiten erforderlich. Ausgeschlossen werden alle Werte, bei denen der Split zwischen den beiden gemessenen Schlusskursen vollzogen wurde. Außerdem wird ein wiederverwendetes Symbol gemäß der in den Anmerkungen beschriebenen hausinternen Eindeutigkeitsprüfung ausgeschlossen.

AbfrageGrößte Gewinner und Verlierer: Schlusskurs am 30. Juli gegenüber Schlusskurs am 29. Juli, mindestens $5M gehandelt, Splits ausgeschlossen
Das exakte SQL hinter jeder Zahl
SELECT ticker, board, day_pct, day_dollar_m
FROM (
    SELECT 'gainers' AS board, ticker, round((c30 / c29 - 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-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS c29,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00') AS c30,
               sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-30 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-29' AND execution_date <= '2026-07-30')
          AND window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-30 20:00:00'
        GROUP BY ticker
        HAVING c29 > 0 AND c30 > 0 AND dv >= 5000000
    )
    ORDER BY day_pct DESC
    LIMIT 8
    UNION ALL
    SELECT 'decliners' AS board, ticker, round((c30 / c29 - 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-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS c29,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00') AS c30,
               sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-30 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-29' AND execution_date <= '2026-07-30')
          AND window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-30 20:00:00'
        GROUP BY ticker
        HAVING c29 > 0 AND c30 > 0 AND dv >= 5000000
    )
    ORDER BY day_pct ASC
    LIMIT 8
)
ORDER BY board DESC, abs(day_pct) DESC
Run this yourself

Der stärkste Gewinner der Liste, CYCU, legte bei einem Handelsvolumen von 474.4 Millionen Dollar um 489.5% zu. Der stärkste Verlierer, IREZ, gab bei 90.8 Millionen Dollar Umsatz um -61.2% nach. Diese Seite dokumentiert die Kursbewegungen und die zugehörigen Belege. Sie liefert keine Erklärung dafür.

Sektorstreuung

Die elf SPDR-Select-Sector-Fonds, Schlusskurs vom 30. Juli gegenüber dem vom 29. Juli, vom besten bis zum schlechtesten Wert geordnet. Der Korb ist festgelegt und unverändert. Er basiert nicht auf einer Anbieterklassifizierung.

AbfrageSektor-ETFs, Schlusskurs am 30. Juli gegenüber Schlusskurs am 29. Juli, gerankt
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((c30 / c29 - 1) * 100, 2) AS day_pct
    FROM (
        SELECT ticker,
               argMaxIf(toFloat64(close), window_start, window_start < '2026-07-30 00:00:00') AS c29,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-30 00:00:00') AS c30
        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-29 13:30:00' AND window_start < '2026-07-29 20:00:00')
            OR (window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00'))
        GROUP BY ticker
        HAVING c29 > 0 AND c30 > 0
    )
)
ORDER BY day_pct DESC
Run this yourself

Technology führte mit 5.52%, während Communications mit -2.69% am Ende lag, 8.21 Prozentpunkte dahinter. Diese Differenz ist die Sektorenstreuung des Tages: Ein Handelstag, an dem alle elf Werte innerhalb eines Prozentpunkts liegen, sieht ganz anders aus als einer, an dem sie sich über mehrere Prozentpunkte verteilen.

Wo die Dollar gehandelt wurden

AbfrageTop 6 nach gehandeltem Volumen in $, Top 4 nach gehandelten Aktien: reguläre Handelszeit am 30. 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-30 13:30:00' AND window_start < '2026-07-30 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-30 13:30:00' AND window_start < '2026-07-30 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 die Dollar-Rangliste mit einem Umsatz von 43.29 Milliarden während der regulären Handelszeiten an. Dahinter folgte MSFT mit 42.56 Milliarden. Die Rangliste nach Aktien beantwortet eine andere Frage: CYCU lag mit 544 Millionen Aktien vorn, bei einem impliziten Durchschnittspreis von $0.86. Das Dollarvolumen zeigt, auf welche Titel der Markt seine Aufmerksamkeit richtet. Das Aktienvolumen zeigt, wie stark die Titel gehandelt werden. Die entsprechende Kennzahl je Titel ist das relative Volumen.

Das Options-Tape

AbfrageOptions-Tape: Kontrakte, Call-Anteil, Tagesanteil gegenüber Mittwoch, 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) = '260730', 1, 0) AS is_0dte
            FROM global_markets.options_trades
            WHERE sip_timestamp >= '2026-07-30 00:00:00' AND sip_timestamp < '2026-07-31 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-30 13:30:00' AND window_start < '2026-07-30 20:00:00'
    ) AS spy_regular_close,
    (
        SELECT round(toFloat64(sum(size)) / 1e6, 2)
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00'
    ) AS jul29_contracts_m,
    (
        SELECT round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260729') / sum(size), 1)
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00'
    ) AS jul29_pct_0dte
SELECT
    round(count() / 1e6, 2) AS option_prints_m,
    round(toFloat64(sum(size)) / 1e6, 2) AS contracts_m,
    jul29_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) = '260730') / sum(size), 1) AS pct_0dte,
    jul29_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-30 00:00:00' AND sip_timestamp < '2026-07-31 00:00:00'
Run this yourself

Im Options-Tape wurden 10.93 Millionen Trades mit 67.06 Millionen Kontrakten verzeichnet, nach 66.84 Millionen am Mittwoch. Auf Calls entfielen 54.6% des Kontraktvolumens. Kontrakte mit Verfall am selben Handelstag, die Gruppe der Optionen mit null Tagen bis zum Verfall, kamen auf 25.3% gegenüber 33.1% am Mittwoch. Dieses Muster wird durch das Verfallstiming bestimmt. Der meistgehandelte SPY-Kontrakt war der 740 C mit 0.56 Millionen Kontrakten. Sein Strike lag -1.73 Dollar vom regulären SPY-Schlusskurs von $741.73 entfernt, berechnet als Strike minus Schlusskurs.

Das Kursband

Die Kursdaten sind der knappste Datensatz dieses Desks. Sie werden in jeder Sitzung gemessen. Auch gewöhnliche Handelstage werden erfasst.

AbfrageNBBO-Update-Anzahl von Aktien: 30. Juli gegenüber 29. Juli, einschließlich Updates benannter Ticker (in Millionen)
Das exakte SQL hinter jeder Zahl
SELECT
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-30')) / 1e6, 2) AS jul30_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-29')) / 1e6, 2) AS jul29_updates_m,
    round((countIf(toDate(sip_timestamp) = toDate('2026-07-30')) / countIf(toDate(sip_timestamp) = toDate('2026-07-29')) - 1) * 100, 1) AS day_over_day_pct,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-30') AND ticker = 'SPY') / 1e6, 2) AS jul30_spy_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-30') AND ticker = 'QQQ') / 1e6, 2) AS jul30_qqq_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-30') AND ticker = 'NVDA') / 1e6, 2) AS jul30_nvda_updates_m
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-31 00:00:00'
Run this yourself

Das Aktienkursband verzeichnete 560.75 Millionen NBBO-Aktualisierungen gegenüber 722.65 Millionen am Mittwoch. Das entspricht einer Veränderung gegenüber dem Vortag von -22.4%. SPY kam auf 5.55 Millionen Aktualisierungen, QQQ auf 6.75 Millionen und NVDA auf 2.39 Millionen.

AbfrageSieben Titel: medianer Quotierungs-Spread in Basispunkten während der regulären Handelszeit, mit Anzahl der Quote-Qualitätsdaten, 30. 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-30 13:30:00' AND sip_timestamp < '2026-07-30 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 quotierten Spreads von SPY während der regulären Handelszeiten betrug 0.27 Basispunkte des Mittelkurses. Bei QQQ waren es 0.59 und bei NVDA 1.03. Die letzten beiden Spalten zeigen die Bereinigung: Einseitige und gekreuzte Quotes werden je Wertpapier gezählt und für die Berechnung des Medians separat ausgewiesen, statt stillschweigend entfernt zu werden. Bei einem gekreuzten Quote liegt der Geldkurs über dem Briefkurs. Das ist ein gewöhnliches Artefakt eines konsolidierten Feeds, der Daten vieler Handelsplätze mit Nanosekundenauflösung zusammenführt.

AbfrageMedianer Spread von SPY im Vergleich zu jeder Julisitzung, engster zuerst
Das exakte SQL hinter jeder Zahl
SELECT round(anyIf(spread_bps, d = toDate('2026-07-30')), 2) AS jul30_median_spread_bps,
       arrayCount(x -> x < anyIf(spread_bps, d = toDate('2026-07-30')), groupArrayIf(spread_bps, d != toDate('2026-07-30'))) + 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-30 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 Tagesmedian des SPY-Spreads von 0.27 Basispunkten auf Rang 19 von 21, ausgehend vom engsten Spread. Der Vergleichszeitraum beginnt 2026-07-01. An einem ruhigen Handelstag ist genau das die Aussage der Übersicht: Ein gewöhnlicher Liquiditätstag ist ein Ergebnis, das veröffentlicht und klar abgegrenzt wird.

AbfrageOptions-NBBO-Tape: gesamte Updates gegenüber dem Aktien-Tape sowie SPY-Root-Ausschnitt, 30. Juli
Das exakte SQL hinter jeder Zahl
WITH
    (SELECT count() FROM global_markets.cache_options_quotes WHERE sip_timestamp >= '2026-07-30 00:00:00' AND sip_timestamp < '2026-07-31 00:00:00') AS jul30_options_rows,
    (SELECT count() FROM global_markets.cache_stocks_quotes WHERE sip_timestamp >= '2026-07-30 00:00:00' AND sip_timestamp < '2026-07-31 00:00:00') AS jul30_stock_quote_rows
SELECT
    round(jul30_options_rows / 1e9, 2) AS jul30_options_bn,
    round(jul30_options_rows / jul30_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-30 13:30:00' AND sip_timestamp < '2026-07-30 20:00:00') / 1e6, 0) AS jul30_spy_options_m
Run this yourself

Das NBBO-Kursband der Optionen verzeichnete 10.32 Milliarden Aktualisierungen. Das waren 18.4-mal so viele wie im Aktienkursband. Allein der SPY-Root kam während der regulären Handelszeiten auf 441 Millionen Aktualisierungen.

Zinssätze

AbfrageHinterlegte Treasury-Kurspunkte, 27. bis 30. 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-27' AND date <= '2026-07-30'
ORDER BY date
Run this yourself

Die Datei des US-Finanzministeriums ist gegenüber dem laufenden Marktgeschehen etwa eine Sitzung im Rückstand. Dieses Panel zeigt daher die darin enthaltenen ausgeführten Geschäfte: 4 datierte Zeilen im Zeitfenster. Die jüngsten Daten vom 2026-07-30 weisen die Rendite zweijähriger US-Staatsanleihen mit 4.23%, die Rendite zehnjähriger US-Staatsanleihen mit 4.68% und die Rendite dreißigjähriger US-Staatsanleihen mit 5.21% aus. Daraus ergibt sich ein Spread zwischen zwei- und zehnjährigen US-Staatsanleihen von 45 Basispunkten.

The calendar behind the day

AbfrageEx-Dividenden, Splits, Listings, Nachrichten und SEC-Filing-Mix vom 30. 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-30 04:00:00' AND published_utc < '2026-07-31 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-30'
    ) AS fil
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-30') AS ex_dividend_records,
    (SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-30') AS reverse_splits,
    (SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-30') AS forward_splits,
    (SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-30') AS listings,
    (SELECT count() FROM global_markets.stocks_news WHERE published_utc >= '2026-07-30 04:00:00' AND published_utc < '2026-07-31 04:00:00') AS news_articles,
    (SELECT uniqExact(JSONExtractString(publisher, 'name')) FROM global_markets.stocks_news WHERE published_utc >= '2026-07-30 04:00:00' AND published_utc < '2026-07-31 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

200 dividend records went ex-dividend on July 30, 3 reverse and 3 forward splits executed, and 3 new listings hit the tape. The news feed carried 173 articles from 2 publishers, with NVDA the most-covered ticker in this one feed's window at 11 articles. The EDGAR daily index holds 5544 filings for the date from 2743 distinct filers: 745 insider Form 4 reports, 460 8-K current reports, 1426 424B2 pricing supplements and 252 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 die nächsten beiden Sitzungen aus denselben Tabellen und blicken Sie dabei bewusst über den Zeitraum hinaus. Freitag, der 31. Juli, ist laut Kalender der letzte Handelstag des Monats.

Abfrage31. Juli und 3. August im Kalender: Börsenschließungen, Ex-Dividenden, Splits, Freitagverfall und 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-31' AND date <= '2026-08-03' AND status != 'open') AS closures_next_two_sessions,
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date >= '2026-07-31' AND ex_dividend_date <= '2026-08-03') AS exdiv_records_next_two_sessions,
    (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-31' AND ex_dividend_date <= '2026-08-03') AS household_exdivs,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date >= '2026-07-31' AND execution_date <= '2026-08-03') AS splits_next_two_sessions,
    round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260731') / sum(size), 1) AS jul31_expiry_pct_of_thu_volume,
    (SELECT toString(max(settlement_date)) FROM global_markets.stocks_short_interest WHERE settlement_date <= '2026-07-30') AS latest_short_interest_settlement
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-30 00:00:00' AND sip_timestamp < '2026-07-31 00:00:00'
Run this yourself

Die Feiertagstabelle weist für Freitag, den 31. Juli, und Montag, den 3. August, 0 Schließtage aus. Bei 544 Dividendenstichtagen fällt der Ex-Dividenden-Tag auf eine dieser beiden Sitzungen. 0 davon entfallen auf zehn geprüfte bekannte Haushaltsnamen. Außerdem sind 14 Splits zur Ausführung vorgesehen. Von Donnerstag entfielen 26.7% des Optionsvolumens bereits auf Kontrakte mit Verfall am Freitag, dem 31. Juli. Der jüngste hinterlegte Abrechnungstermin für das Short-Interest ist 2026-07-15. Diese Datei wird mit so großer Verzögerung veröffentlicht, dass sie eine eigene Erläuterung hat.

Die Sitzung, verifiziert

AbfrageSitzungsprüfung: erste/letzte SPY-Kerze in 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-30 13:30:00' AND window_start < '2026-07-30 20:00:00') AS regular_session_bars,
    uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00') AS day_sessions,
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-30') AS jul30_holiday_rows,
    (SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-30' 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-30' 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-30 00:00:00' AND window_start < '2026-07-31 00:00:00'
Run this yourself

Eine vollständige reguläre Sitzung: der erste SPY-Balken um 04:00 ET, der letzte 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.

FAQ

Wie hat sich der Aktienmarkt am Donnerstag, dem 30. Juli 2026, entwickelt?

SPY veränderte sich 1.68% von Schlusskurs zu Schlusskurs auf $741.73. QQQ lag bei 3.34%, DIA bei 1.19% und IWM bei 1.37%. Unter den liquiden Titeln stieg 3782, während 2122 fiel.

Welcher Sektor lag am 30. Juli 2026 an der Spitze?

Technology mit 5.52%, gemessen über die elf SPDR-Sektor-ETFs. Der schwächste der elf, Communications, verzeichnete -2.69%.

Wie rege war der Optionsmarkt am 30. Juli 2026?

67.06 Millionen Kontrakte wurden gehandelt, gegenüber 66.84 Millionen in der vorherigen Sitzung. Kontrakte mit Fälligkeit am selben Tag machten 25.3% des Volumens aus, Calls 54.6%.

Welche Aktie verzeichnete am 30. Juli 2026 das höchste Handelsvolumen in Dollar?

MU mit einem Dollarvolumen von 43.29 Milliarden während der regulären Handelszeiten, vor MSFT mit 42.56 Milliarden.

Datennotizen

Die vorherige Tagesausgabe ist der 29. Juli 2026, und die Wochenzusammenfassung behandelt die vorangegangene Woche. Namentlich benannte Ticker-Panels sind alphabetisch sortiert, damit sich Textverweise auf feste Zeilen beziehen. Ranglisten und Mover-Boards sind nach Wert sortiert. Jede daraus abgeleitete Positionsaussage ist als Plausibilitätsgrenze kodiert. Der Mega-Cap-Korb und der Sektorkorb mit elf Fonds sind fest definierte Mengen und keine Klassifizierungen eines Datenanbieters. Für die Mover-Boards gilt ein Umsatzfilter von fünf Millionen Dollar während der regulären Handelszeiten. Außerdem werden Titel ausgeschlossen, deren Split zwischen den beiden gemessenen Schlusskursen wirksam wurde. Ein mehrfach verwendetes Symbol wird nach der internen Eindeutigkeitsregel ebenfalls ausgeschlossen. Dadurch verweist jeder Hinweis auf einen überprüfbaren Titel. Die Quote-Panels zählen einseitige und gekreuzte Quotes je Titel, anstatt sie stillschweigend zu entfernen. Die Datei des US-Finanzministeriums und der tägliche EDGAR-Index werden nach eigenen Zeitplänen veröffentlicht. Daher weisen diese Panels den jeweils enthaltenen Stand aus, ohne einen rechtzeitigen Eingang zu unterstellen. Ein Index für implizite Volatilität ist hier nicht enthalten. Diese Reihen sind für dieses Datenarchiv nicht lizenziert. Die Volatilität wird daher anhand der Kursspannen, des Optionsanteils am selben Handelstag und des Quote-Verhaltens aus den Kursdaten abgeleitet.

Methodik

  • Quelle der Marktdaten: konsolidiertes Kursband. delayed_stocks_minute_aggs für Kurse und Volumina, options_trades für das Optionsband, 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.
  • Zeitzonenbehandlung: Alle gespeicherten Zeitstempel sind UTC. WHERE-Klauseln verwenden rohe UTC-Literale, und toTimeZone erscheint nur in SELECT-Listen für ET-Kennzeichnungen.
  • Sitzungsüberprüfung: anhand der Feiertagstabelle und der beobachteten Balken, niemals anhand des Kalenders angenommen.
  • Vergleiche mit der vorherigen Sitzung: innerhalb der Abfrage ab dem 29. Juli berechnet, niemals aus einem früheren Beitrag übernommen.
  • Dezimalstellen: Kurs-, Größen- und Volumenspalten werden vor jeder Division oder Multiplikation in Float64 umgewandelt.
  • Deterministische Aggregationen: durchgehend exakte Quantile und Tie-Breaks über Tupel-Schlüssel; jede Aussage zur Reihenfolge oder zum Vorzeichen im Text ist als Plausibilitätsgrenze kodiert.
  • As-of-Datum des Data Warehouse: 1. August 2026, zwei Tage nach der Sitzung und am Rand der üblichen ein- bis zweitägigen Verzögerung bei der Aufnahme in das Tape; die oben genannten begrenzten Belege halten den Beitrag zurück, falls bei der Erstellung ein Datensatz fehlt.

Querverweise: die vorherige Tageszusammenfassung, die Wochenzusammenfassung, wann Optionen verfallen, was ein Bid-Ask-Spread ist und der Zwei- bis Zehnjahres-Spread.

Jede oben aufgeführte Abfrage läuft unverändert auf dem Strasmore-Terminal, wenn Sie ein Zeitfenster auf eine andere Sitzung ausrichten möchten.