Strasmore Research
Marktrückblicke Matt ConnorVon Matt Connor

Marktrückblick 29. Juli 2026: Der Tag in Zahlen

Marktübersicht zum 29. Juli 2026 mit Indexvergleich, Marktbreite, Sektorspread, Optionsfluss, Kursdaten, Zinsen und Kalender auf Abfragebasis.

Diese Marktübersicht für Mittwoch, den 29. Juli 2026, wertet die gesamte Sitzung anhand gespeicherter Abfragen aus: Die Veränderung von SPY gegenüber dem vorherigen Schlusskurs betrug -1.52%, der Anteil der Gewinner im liquiden Markt 27.2%, und im Optionshandel wurden 66.84 Millionen Kontrakte ausgeführt. Für jedes Zeitfenster sind Beginn und Ende durch konkrete Daten festgelegt. Bei einer erneuten Ausführung der SQL-Abfrage für ein beliebiges Panel ergeben sich daher dieselben Zahlen.

Das Punktetableau

Jede Veränderung vergleicht den letzten Minutenbalken der regulären Sitzung vom 29. Juli mit demjenigen vom Dienstag, dem 28. Juli. Die Zeilen sind alphabetisch sortiert, sodass jedes ETF seine feste Position behält.

AbfrageSPY / QQQ / DIA / IWM: 29. Juli gegenüber dem Schlusskurs vom 28. Juli, reguläre Handelszeiten
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-28 13:30:00' AND window_start < '2026-07-28 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-29 13:30:00' AND window_start < '2026-07-29 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 -2.19%, IWM um -1.63%, QQQ um -2.07% und SPY um -1.52% auf einen Schlusskurs von $729.51. Jede Zeile teilt die Bewegung in ihre beiden Komponenten auf: SPY eröffnete -0.11% gegenüber dem Schlusskurs vom Dienstag und bewegte sich vom Eröffnungskurs bis zum Schlusskurs um -1.41%. Die Bewegung über Nacht und die Intraday-Bewegung müssen nicht übereinstimmen. Ihre Aufteilung ist der erste Fingerabdruck einer Sitzung.

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.

AbfrageTagesbewegung von SPY im historischen Kontext (Eröffnung bis Schluss, 29. Juni bis 29. Juli)
Das exakte SQL hinter jeder Zahl
SELECT
    round(anyIf(oc_pct, d = toDate('2026-07-29')), 2) AS spy_open_to_close_pct,
    arrayCount(x -> x > abs(anyIf(oc_pct, d = toDate('2026-07-29'))), groupArrayIf(abs(oc_pct), d != toDate('2026-07-29'))) + 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-30 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 zwischen Eröffnung und Schluss von -1.41% belegte nach ihrer absoluten Größe Rang 1 von 22 zurückliegenden Handelssitzungen. Das betrachtete Zeitfenster reicht bis 2026-06-29 zurück. Für die Rangberechnung wird gezählt, wie viele andere Sitzungen im Fenster eine größere Bewegung aufwiesen; anschließend wird eins addiert. Rang eins wäre somit die größte Bewegung des zurückliegenden Monats.

Marktbreite

Ein Indexstand ist eine einzelne Zahl. Die Marktbreite erfasst, wie viele Aktien sich mit ihm bewegten.

AbfrageBreite des liquiden Tapes: Schlusskurs am 29. Juli gegenüber dem 28. Juli, Filter: 1 Mio. $ Handelsvolumen
Das exakte SQL hinter jeder Zahl
SELECT
    countIf(c29 > c28 AND liquid) AS advancers,
    countIf(c29 < c28 AND liquid) AS decliners,
    countIf(c29 = c28 AND liquid) AS unchanged,
    countIf(liquid) AS liquid_tickers,
    countIf(NOT liquid) AS dropped_by_liquidity_filter,
    round(100.0 * countIf(c29 > c28 AND liquid) / countIf(liquid), 1) AS advancer_pct
FROM (
    SELECT ticker, c28, c29, dv29 >= 1000000 AS liquid
    FROM (
        SELECT ticker,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-28 20:00:00') AS c28,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS c29,
               sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-29 13:30:00') AS dv29
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-29 20:00:00'
        GROUP BY ticker
        HAVING c28 > 0 AND c29 > 0
    )
)
Run this yourself

Von 6066 Titeln, die im regulären Handel einen Umsatz von einer Million Dollar überschritten, schlossen 1652 über dem Schlusskurs vom Dienstag und 4342 darunter. Der Anteil der Gewinner lag damit bei 27.2%. Der Filter nahm 5363 weniger liquide Titel aus; sie werden hier mitgezählt und nicht stillschweigend verworfen.

Das Mega-Cap-Universum

Dieselben acht Mega-Cap-Titel erscheinen in jeder Sitzung in alphabetischer Reihenfolge, damit jeder Titel seine eigene 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 gegenüber dem 28. Juli und Dollarvolumen in den regulären Handelszeiten, 29. Juli
Das exakte SQL hinter jeder Zahl
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-29 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-29 00:00:00')) AS day_close,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-29 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-28 13:30:00' AND window_start < '2026-07-28 20:00:00')
        OR (window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 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.63%, META um -1.12%, MSFT um -0.27% und NVDA um -3.51% bei einem Umsatz während der regulären Handelszeiten von 22.26 Milliarden Dollar. TSLA lag bei -2.97%. Die Spalte in Dollar zeigt, welchen Anteil des Handelsvolumens diese acht Titel allein ausmachen. Das darüberliegende Breadth-Panel zeigt, wie weit der übrige Markt diese Bewegung mitvollzogen hat.

Die Tagesgewinner und -verlierer

Für beide Listen sind in der regulären Handelszeit mindestens fünf Millionen Dollar Umsatz erforderlich. Aktien, deren Split zwischen den beiden herangezogenen Schlusskursen ausgeführt wurde, werden ausgeschlossen. Außerdem wird ein wiederverwendetes Symbol gemäß der in den Hinweisen beschriebenen Ambiguitätsprüfung des Hauses ausgeschlossen.

AbfrageGrößte Gewinner und Verlierer: Schlusskurs am 29. Juli gegenüber dem 28. Juli, mindestens 5 Mio. $ Handelsvolumen, Splits ausgeschlossen
Das exakte SQL hinter jeder Zahl
SELECT ticker, board, day_pct, day_dollar_m
FROM (
    SELECT 'gainers' AS board, ticker, round((c29 / c28 - 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-28 13:30:00' AND window_start < '2026-07-28 20:00:00') AS c28,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS c29,
               sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-29 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-28' AND execution_date <= '2026-07-29')
          AND window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-29 20:00:00'
        GROUP BY ticker
        HAVING c28 > 0 AND c29 > 0 AND dv >= 5000000
    )
    ORDER BY day_pct DESC
    LIMIT 8
    UNION ALL
    SELECT 'decliners' AS board, ticker, round((c29 / c28 - 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-28 13:30:00' AND window_start < '2026-07-28 20:00:00') AS c28,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS c29,
               sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-29 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-28' AND execution_date <= '2026-07-29')
          AND window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-29 20:00:00'
        GROUP BY ticker
        HAVING c28 > 0 AND c29 > 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, DFNS, legte bei einem Handelsvolumen von 544.9 Millionen Dollar um 119.8% zu. Der stärkste Verlierer, YYAI, gab bei 8.5 Millionen Dollar Umsatz um -68.1% nach. Diese Seite dokumentiert die Größenordnungen und die Belege. Sie ordnet ihnen keine Erklärung zu.

Sektorstreuung

Die elf SPDR Select Sector Funds, Schlusskurs vom 29. Juli im Vergleich zum 28. Juli, nach Wertentwicklung vom besten zum schlechtesten sortiert. Der Korb ist festgelegt und unverändert. Es handelt sich nicht um eine Anbieterklassifizierung.

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

Energy führte die Rangliste mit 1.89% an. Industrials lag mit -3.21% am Ende und damit 5.1 Prozentpunkte zurück. Diese Differenz beschreibt die Sektorstreuung des Tages. Ein Handelstag, an dem alle elf Fonds innerhalb eines Prozentpunkts liegen, unterscheidet sich deutlich von einem Tag, an dem sich die Werte über mehrere Prozentpunkte verteilen.

Wo die Dollar gehandelt wurden

AbfrageTop 6 nach gehandeltem Dollarvolumen, Top 4 nach gehandelten Aktien: reguläre Handelszeiten am 29. 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-29 13:30:00' AND window_start < '2026-07-29 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-29 13:30:00' AND window_start < '2026-07-29 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 44.99 Milliarden während der regulären Handelszeiten an. Dahinter folgte SPY mit 42.29 Milliarden. Die Rangliste nach Aktien beantwortet eine andere Frage: SNXX lag mit 173.4 Millionen Aktien vorn. Daraus ergibt sich ein impliziter Durchschnittspreis von $7.32. Das Dollarvolumen zeigt, auf welche Werte sich die Aufmerksamkeit des Marktes richtet. Das Aktienvolumen zeigt die Umschlaghäufigkeit. Die Kennzahl je Wert ist relatives Volumen.

Der Optionshandel

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

Im Optionshandel wurden 11.03 Millionen Kontrakte in 66.84 Millionen Trades ausgeführt, gegenüber 59.28 Millionen am Dienstag. Call-Optionen machten 53.6% des Kontraktvolumens aus. Kontrakte, die noch am selben Handelstag verfielen, also die Zero-Days-to-Expiry-Gruppe, kamen auf 33.1% gegenüber 29% am Dienstag. Dieses Muster wurde durch den Zeitpunkt des Verfalls bestimmt. Der meistgehandelte SPY-Kontrakt war der 735 P mit 0.36 Millionen Kontrakten. Sein Ausübungspreis lag 5.49 Dollar vom regulären SPY-Schlusskurs bei $729.51 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 erfasst.

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

Das Aktien-Quote-Tape verzeichnete 722.65 Millionen NBBO-Aktualisierungen gegenüber 536.07 Millionen am Dienstag. Das entspricht einer Veränderung zum Vortag von 34.8%. SPY kam auf 7.32 Millionen Aktualisierungen, QQQ auf 8.72 Millionen und NVDA auf 4.41 Millionen.

AbfrageSieben Titel: medianer Quotspread in Basispunkten während der regulären Handelszeiten, mit Anzahl der Quote-Qualitätsdaten, 29. 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-29 13:30:00' AND sip_timestamp < '2026-07-29 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 mediane quotierte Spread von SPY während der regulären Handelszeiten entsprach 0.27 Basispunkten des Midpoints. Bei QQQ waren es 0.75 und bei NVDA 1.55. Die letzten beiden Spalten dienen der Offenlegung: Einseitige und gekreuzte Quotes werden je Wertpapier gezählt und vom Median getrennt ausgewiesen, statt stillschweigend verworfen zu werden. Ein gekreuzter Quote, bei dem der Geldkurs über dem Briefkurs liegt, 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 allen Juli-Sitzungen, engster zuerst
Das exakte SQL hinter jeder Zahl
SELECT round(anyIf(spread_bps, d = toDate('2026-07-29')), 2) AS jul29_median_spread_bps,
       arrayCount(x -> x < anyIf(spread_bps, d = toDate('2026-07-29')), groupArrayIf(spread_bps, d != toDate('2026-07-29'))) + 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-29 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 mediane Spread von SPY an diesem Tag bei 0.27 Basispunkten. Das entsprach 20 von 20, gezählt vom engsten Spread aus, in einem am 2026-07-01 beginnenden Zeitraum. Bei einem ruhigen Tape liegt genau darin die Aussagekraft des Panels: Ein gewöhnlicher Liquiditätstag ist ein veröffentlichtes und klar abgegrenztes Ergebnis.

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

Das Options-NBBO-Tape verzeichnete 13.55 Milliarden Aktualisierungen. Das waren 18.8-mal so viele wie beim Aktien-Quote-Tape. Allein der SPY-Root kam während der regulären Handelszeiten auf 600 Millionen Aktualisierungen.

Zinssätze

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

Die Datei des US-Finanzministeriums liegt etwa eine Handelssitzung hinter dem Marktgeschehen zurück. Dieses Panel zeigt daher die dort gespeicherten Transaktionen: 4 datierte Zeilen im Zeitfenster. Der jüngste Eintrag vom 2026-07-29 setzte die Rendite zweijähriger US-Staatsanleihen auf 4.22%, die Rendite zehnjähriger auf 4.67% und die Rendite dreißigjähriger auf 5.2%. Der Spread zwischen zwei- und zehnjährigen Laufzeiten betrug 45 Basispunkte.

Der Kalender hinter dem Handelstag

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

85 Dividenden wurden am 29. Juli ex-Dividende gehandelt, 2 Reverse Splits und 1 Aktiensplits vollzogen, und 1 neue Listings kamen auf den Markt. Der Newsfeed enthielt 190 Artikel von 2 Publikationen. Dabei war NVDA mit 13 Artikeln der am häufigsten behandelte Ticker in diesem Zeitfenster des Feeds. Der tägliche EDGAR-Index enthält für dieses Datum 5742 Einreichungen von 3064 verschiedenen Einreichern: 712 Insiderberichte nach Formular 4, 440 aktuelle 8-K-Berichte, 884 Preisnachträge nach Formular 424B2 und 174 Quartalsberichte nach Formular 10-Q. Dieser Index wird nach einem eigenen Zeitplan veröffentlicht. Diese Übersicht zeigt den Bestand zum Zeitpunkt der Erstellung.

Als Nächstes

Für den Rest der Woche lesen Sie dieselben Tabellen und blicken dabei bewusst über den Zeitraum hinaus.

Abfrage30. und 31. Juli im Kalender: Schließungen, Ex-Dividenden, Splits, Freitagsexpirierung und Verzögerung bei Leerverkaufsdaten
Das exakte SQL hinter jeder Zahl
SELECT
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date >= '2026-07-30' 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-30' 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-30' AND ex_dividend_date <= '2026-07-31') AS household_exdivs,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date >= '2026-07-30' 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_wed_volume,
    (SELECT toString(max(settlement_date)) FROM global_markets.stocks_short_interest WHERE settlement_date <= '2026-07-29') AS latest_short_interest_settlement
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00'
Run this yourself

Die Feiertagstabelle weist für Donnerstag, den 30. Juli, und Freitag, den 31. Juli, insgesamt 0 Schließungen aus. Bei 611 Dividendenstichtagen fällt der Ex-Dividenden-Termin auf eine dieser beiden Sitzungen. 0 davon entfallen auf die zehn geprüften bekannten Haushaltsnamen. Außerdem sollen 12 Aktiensplits ausgeführt werden. Von Wednesdays Optionsvolumen entfielen bereits 19.7% auf Kontrakte mit Verfall am Freitag, dem 31. Juli. Die jüngste vorliegende Abrechnung zum Short Interest ist 2026-07-15. Diese Datei wird mit einer so langen Verzögerung veröffentlicht, dass sie eine eigene Erläuterung hat.

Die Handelssitzung, überprüft

AbfrageSitzungsprüfung: erster/letzter SPY-Balken ET, Anzahl regulärer Balken, 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-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS regular_session_bars,
    uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS day_sessions,
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-29') AS jul29_holiday_rows,
    (SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-29' 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-29' 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-29 00:00:00' AND window_start < '2026-07-30 00:00:00'
Run this yourself

Eine vollständige reguläre Handelssitzung: 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 entwickelte sich der Aktienmarkt am Mittwoch, dem 29. Juli 2026?

SPY veränderte sich von Schlusskurs zu Schlusskurs um -1.52% auf $729.51. QQQ lag bei -2.07%, DIA bei -2.19% und IWM bei -1.63%. Unter den liquiden Titeln stieg 1652, während 4342 fiel.

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

Energy mit 1.89%, gemessen über die elf SPDR-Select-Sektor-Fonds. Der schwächste der elf Fonds, Industrials, verzeichnete -3.21%.

Wie aktiv war der Optionsmarkt am 29. Juli 2026?

Es wurden 66.84 Millionen Kontrakte gehandelt, gegenüber 59.28 Millionen in der vorherigen Sitzung. Kontrakte mit Verfall am selben Tag machten 33.1% des Volumens aus, und Calls machten 53.6% aus.

Welche Aktie verzeichnete am 29. Juli 2026 den höchsten Dollar-Umsatz?

MU mit einem Dollar-Volumen von 44.99 Milliarden während der regulären Handelszeiten, vor SPY mit 42.29 Milliarden.

Datenhinweise

Diese Ausgabe setzt die tägliche Reihe fort. Die vorherige Tagesausgabe ist 10. Juli 2026, und die Wochenzusammenfassung behandelt die vorangegangene Woche. Die benannten Ticker-Panels sind alphabetisch geordnet, damit sich Textverweise auf feste Zeilen beziehen. Ranglisten und Mover-Boards sind nach Wert geordnet. Jede darin enthaltene Positionsangabe ist als Plausibilitätsgrenze kodiert. Der Mega-Cap-Korb und der Sektorkorb aus elf Fonds sind festgelegte Mengen und keine Klassifizierungen eines Datenanbieters. Für die Mover-Boards gilt ein Umsatzgrenzwert von fünf Millionen Dollar während der regulären Handelszeiten. Werte, bei denen der Split zwischen den beiden gemessenen Schlusskursen ausgeführt wurde, werden ausgeschlossen. Außerdem wird unter der hausinternen Ambiguitätsregel ein wiederverwendetes Symbol ausgeschlossen. Dadurch verweist jede Hervorhebung auf einen überprüfbaren Wert. Die Quote-Panels zählen je Wert einseitige und gekreuzte Quotes, statt 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 die jeweils enthaltenen Daten aus, ohne deren Eingang 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 der Kursspannen, des Optionsanteils am selben Tag und des Quote-Verhaltens aus dem Tape abgeleitet.

Methodik

  • Quelle der Marktdaten: konsolidierter Ticker. delayed_stocks_minute_aggs für Kurse und Volumina, options_trades für den Options-Ticker, 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 unveränderte UTC-Literale, und toTimeZone erscheint nur in SELECT-Listen für ET-Kennzeichnungen.
  • Sitzungsprüfung: anhand der Feiertagstabelle und der beobachteten Balken, niemals auf Grundlage des Kalenders angenommen.
  • Vergleiche mit der vorherigen Sitzung: innerhalb der Abfrage aus dem 28. Juli berechnet, niemals aus einem früheren Beitrag übernommen.
  • Dezimalstellen: Kurs-, Size- und Volumenspalten werden vor jeder Division und jedem Produkt in Float64 umgewandelt.
  • Deterministische Aggregationen: durchgehend exakte Quantile und Tie-Breaks anhand von Tupel-Schlüsseln; jede Rangfolge- oder Vorzeichenaussage im Text ist als Plausibilitätsgrenze kodiert.
  • As-of-Datum des Data Warehouse: 1. August 2026, drei Tage nach der Sitzung und damit nach der üblichen ein- bis zweitägigen Verzögerung bei der Datenübernahme des Tickers; die oben genannten begrenzten Belege halten den Beitrag verfügbar, falls bei der Erstellung ein Datensatz fehlt.

Querverweise: die vorherige Tageszusammenfassung, die Wochenzusammenfassung, wann Optionen verfallen, was ein Bid-Ask-Spread ist und der Spread zwischen zwei- und zehnjährigen Laufzeiten.

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