Strasmore Research
Marktrückblicke Matt ConnorVon Matt Connor · Aktualisiert 2026-07-24

Marktbericht 8. Juli 2026 Zahlen

Ein Aufschwung bei Halbleitern ohne große Wirkung auf die Indizes. NVDA stieg weiter, während der breite Markt mit zwei zu eins überwiegend im Minus schloss.

Mittwoch, der 8. Juli 2026, war ein eintägiger Aufschwung bei Chipwerten, der die Indizes kaum beeinflusste. SNDK schloss mit +6.8%, AVGO mit +4.82% und NVDA mit +3.66% — eine deutliche Umkehr gegenüber dem Chip-Einbruch am Dienstag — aber die Index-ETFs blieben unverändert: SPY -0.31% und QQQ +0.25%. Der breite Markt verzeichnete ein noch stärkeres Ungleichgewicht mit zwei zu eins gegenüber dem Vortag: 1821 steigende Werte gegenüber 4260 fallenden Werten, was einem Anteil steigender Werte von 29.6% entspricht, nachdem der Vortag bei 33.8% lag. Jede unten aufgeführte Zahl stammt aus einer gespeicherten Abfrage — erweitern Sie jedes Panel für das exakte SQL.

Die Ergebnisliste

Jede Änderung vergleicht die letzte Minute der regulären Sitzung vom 8. Juli mit der vom Dienstag, den 7. Juli – also aufeinanderfolgende Handelstage. Die Zeilen sind alphabetisch sortiert, sodass jeder ETF eine feste Position behält.

AbfrageSPY / QQQ / DIA / IWM — 8. Juli vs. Schlusskurs 7. Juli, Regular Hours
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-07 13:30:00' AND window_start < '2026-07-07 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-08 13:30:00' AND window_start < '2026-07-08 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

Die vier ETFs starteten mit einem Gap nach unten und entwickelten sich danach unterschiedlich. DIA eröffnete die Sitzung bei -0.97% im Vergleich zum vorherigen Schlusskurs und verlor weiter an Boden, sodass der Schlusskurs bei -1.09% lag. IWM eröffnete bei -0.73% und blieb im Minus, mit einem Schlusskurs von -0.92%. SPY eröffnete bei -0.6%, erholte sich im Tagesverlauf etwas und schloss dennoch bei -0.31% – die Erholung gegenüber der Eröffnung war geringer als der Gap. QQQ eröffnete bei -0.64% und stieg bis zum Handelsschluss auf +0.25% an; damit war dies der einzige der vier ETFs im positiven Bereich.

War der Tag ungewöhnlich?

Die Kursbewegung des SPY von der Eröffnung bis zum Schluss betrug 0.29%. Dies entspricht dem 16-Rang von 22 vorangegangenen Sitzungen – ein durchschnittlicher Tag für den Index ohne extreme Ausschläge. Die Schlusskursbewegung des QQQ betrug +0.25%, was dem 21-Rang von 22 entspricht. Dies war eine der geringsten Kursbewegungen des QQQ im Vergleich zum vorangegangenen Monat, was zu der schwachen Performance des Index passt.

AbfrageSPY / QQQ Tagesbewegung im Trend (Close-over-Close, ~22 Sessions)
Das exakte SQL hinter jeder Zahl
SELECT
    round(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-08')), 2) AS qqq_close_over_close_pct,
    arrayCount(x -> x > abs(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-08'))), groupArrayIf(abs(cc_pct), ticker = 'QQQ' AND d != toDate('2026-07-08'))) + 1 AS qqq_abs_move_rank,
    countIf(ticker = 'QQQ') AS qqq_sessions_compared,
    round(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-08')), 2) AS spy_open_to_close_pct,
    arrayCount(x -> x > abs(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-08'))), groupArrayIf(abs(oc_pct), ticker = 'SPY' AND d != toDate('2026-07-08'))) + 1 AS spy_abs_move_rank,
    countIf(ticker = 'SPY') AS spy_sessions_compared,
    toString(min(d)) AS first_session
FROM (
    SELECT ticker, d,
           (close_px / lagInFrame(close_px) OVER (PARTITION BY ticker ORDER BY d) - 1) * 100 AS cc_pct,
           oc_pct
    FROM (
        SELECT ticker, toDate(toTimeZone(window_start, 'America/New_York')) AS d,
               argMax(toFloat64(close), window_start) AS close_px,
               (argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100 AS oc_pct
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker IN ('SPY', 'QQQ')
          AND window_start >= toDateTime('2026-06-05 13:30:00')
          AND window_start < toDateTime('2026-07-09 00:00:00')
          AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
        GROUP BY ticker, d
    )
)

Marktdurchdringung: noch mehr zwei-zu-eins rote Werte als am Vortag

AbfrageLiquid-Tape Breadth: Anteil der Advancer am 8. Juli vs. 7. Juli, $1M-Handelsfilter
Das exakte SQL hinter jeder Zahl
SELECT
    countIf(close_8 > close_7 AND close_7 > 0 AND dv_8 >= 1000000) AS advancers,
    countIf(close_8 < close_7 AND close_7 > 0 AND dv_8 >= 1000000) AS decliners,
    countIf(close_8 = close_7 AND close_7 > 0 AND dv_8 >= 1000000) AS unchanged,
    countIf(close_7 > 0 AND close_8 > 0 AND dv_8 >= 1000000) AS liquid_tickers,
    countIf(close_7 > 0 AND close_8 > 0) AS traded_both_sessions,
    countIf(close_7 > 0 AND close_8 > 0) - countIf(close_7 > 0 AND close_8 > 0 AND dv_8 >= 1000000) AS dropped_by_liquidity_filter,
    round(100.0 * countIf(close_8 > close_7 AND close_7 > 0 AND dv_8 >= 1000000) / countIf(close_7 > 0 AND close_8 > 0 AND dv_8 >= 1000000), 1) AS advancer_pct,
    round(100.0 * countIf(close_7 > close_6 AND close_6 > 0 AND dv_7 >= 1000000) / countIf(close_7 > 0 AND close_6 > 0 AND dv_7 >= 1000000), 1) AS jul7_advancer_pct
FROM (
    SELECT ticker,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00')) AS close_6,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00')) AS close_7,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00')) AS close_8,
           sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00') AS dv_8,
           sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00') AS dv_7
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-08 20:00:00'
    GROUP BY ticker
)

Die Differenz zwischen steigenden (1821) und fallenden Werten (4260) ergab einen Anteil an steigenden Werten von 29.6%. Dies ist ein Rückgang gegenüber 33.8% der vorangegangenen Sitzung — berechnet mit demselben Liquiditätsfilter für beide Tage. Von den 11439 Titeln, die an beiden Tagen einen Schlusskurs verzeichneten, fielen 5284 unter den Handelsfilter von 1 Mio. $ und wurden nicht mitgezählt. Die durch die Tech-Werte getriebene Erholung und der gemischte Schlusskurs des Index überdeckten ein noch einheitlicher negatives Gesamtbild des Marktes.

The chip complex bounced — hard, and on heavy volume

Rows are alphabetical, so each name keeps a fixed position; the Tuesday comparison is computed fresh from the July 7 and July 6 closes in the receipts block below the table.

AbfrageVierzehn Chip-Werte: Vorheriger Schlusskurs, Tageschluss, Tagesspanne, Dollar-Volumen, Minutenspanne (ET)
Das exakte SQL hinter jeder Zahl
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-08 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-08 00:00:00')) AS day_close,
        maxIf(toFloat64(high), window_start >= '2026-07-08 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-07-08 00:00:00') AS day_low,
        argMinIf(window_start, (toFloat64(low), toInt64(toUnixTimestamp(window_start))), window_start >= '2026-07-08 00:00:00') AS low_bar,
        argMaxIf(window_start, (toFloat64(high), -toInt64(toUnixTimestamp(window_start))), window_start >= '2026-07-08 00:00:00') AS high_bar,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-08 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('AMD', 'AVGO', 'INTC', 'KLAC', 'LRCX', 'MRVL', 'MU', 'NVDA', 'SNDK', 'SOXL', 'SOXS', 'STX', 'TER', 'WDC')
      AND ((window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00')
        OR (window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 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,
    round(((day_high - day_low) / prior_close) * 100, 2) AS range_pct,
    round(toFloat64(day_low), 2) AS day_low,
    round(toFloat64(day_high), 2) AS day_high,
    toUInt32(toHour(toTimeZone(low_bar, 'America/New_York')) * 60 + toMinute(toTimeZone(low_bar, 'America/New_York'))) AS low_minute_et,
    toUInt32(toHour(toTimeZone(high_bar, 'America/New_York')) * 60 + toMinute(toTimeZone(high_bar, 'America/New_York'))) AS high_minute_et,
    day_dollar_bn
FROM per_name
ORDER BY ticker

12 of the fourteen chip names closed green — the reverse of Tuesday's session, when 12 of the fourteen closed red. SNDK led the complex at +6.8% on 16.82B of dollars traded, with AVGO close behind at +4.82%; the other storage names followed — STX +3.9%, WDC +3.45%. The 3x wrapper SOXL ran +5.79% and the inverse SOXS -6.22% — consistent with a one-day recovery in the underlying complex. MU rose a more modest +1.11% but printed 32.02B of dollars — the heaviest dollar-volume name in the panel. NVDA closed +3.66% for a second straight green day: it was one of only 2 names in this panel that closed green through Tuesday's rout (+0.67% that day).

AbfrageReceipts: Green/Red-Counts am 8. Juli vs. 7. Juli für dieselben vierzehn Werte
Das exakte SQL hinter jeder Zahl
SELECT
    countIf(close_8 > close_7) AS jul8_green,
    countIf(close_8 < close_7) AS jul8_red,
    countIf(close_7 > close_6) AS jul7_green,
    countIf(close_7 < close_6) AS jul7_red,
    round(anyIf((close_7 / close_6 - 1) * 100, ticker = 'NVDA'), 2) AS nvda_jul7_pct,
    count() AS names_counted
FROM (
    SELECT ticker,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00')) AS close_6,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00')) AS close_7,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00')) AS close_8
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('AMD', 'AVGO', 'INTC', 'KLAC', 'LRCX', 'MRVL', 'MU', 'NVDA', 'SNDK', 'SOXL', 'SOXS', 'STX', 'TER', 'WDC')
      AND window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-08 20:00:00'
    GROUP BY ticker
)

Die Gegenseite: Defensivwerte und Growth-Mega-Caps folgten dem Trend nicht

AbfrageRotationscheck: acht Werte — Defensives, Mega-Caps, Biotech
Das exakte SQL hinter jeder Zahl
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-08 00:00:00')) AS prior_close_raw,
        toFloat64(argMinIf(open, window_start, window_start >= '2026-07-08 00:00:00')) AS day_open_raw,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-08 00:00:00')) AS day_close_raw,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-08 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('CRNX', 'CVX', 'JNJ', 'LLY', 'META', 'TSLA', 'UNH', 'XOM')
      AND ((window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00')
        OR (window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00'))
    GROUP BY ticker
)
SELECT
    ticker,
    round(prior_close_raw, 2) AS prior_close,
    round(day_open_raw, 2) AS day_open,
    round(day_close_raw, 2) AS day_close,
    round((day_open_raw / prior_close_raw - 1) * 100, 2) AS gap_pct,
    round((day_close_raw / day_open_raw - 1) * 100, 2) AS intraday_pct,
    round((day_close_raw / prior_close_raw - 1) * 100, 2) AS pct_chg,
    day_dollar_bn
FROM per_name
ORDER BY ticker

Die Growth-Mega-Caps entwickelten sich entgegengesetzt zum Chip-Sektor: TSLA -2.22%, META -2.04%, LLY -1.6%. CVX war der einzige Wert mit einem positiven Schlusskurs im Panel und stieg nach einer frühen Kurslücke um +1.12%. XOM eröffnete mit einem Plus von +1.26%, fiel jedoch bis zum Handelsschluss auf -0.49% zurück. Der Handel am Mittwoch war somit zweigeteilt – die Chip-Werte stiegen, während Growth-Werte und Defensivwerte fielen – wobei die Indizes zwischen diesen Bewegungen stagnierten. (Zeilen sind alphabetisch sortiert: CRNX, CVX, JNJ, LLY, META, TSLA, UNH, XOM.)

Handelsvolumen nach Werten

AbfrageTop 6 nach Dollar-Volumen, Top 4 nach Aktien-Volumen — 8. Juli Regular Hours
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,
    round(100 * if(leaderboard = 'by dollars traded', dollar_volume_bn, shares_m)
        / max(if(leaderboard = 'by dollars traded', dollar_volume_bn, shares_m)) OVER (PARTITION BY leaderboard), 1) AS pct_of_board_leader
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-08 13:30:00' AND window_start < '2026-07-08 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-08 13:30:00' AND window_start < '2026-07-08 20:00:00'
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker
    ORDER BY shares_m DESC
    LIMIT 4
)
ORDER BY leaderboard, pct_of_board_leader DESC

MU verzeichnete ein Volumen von 32.02B Dollar – dies war der volumenstärkste Wert und der einzige über der 30-Milliarden-Dollar-Marke. SPY (26.49B), NVDA (24.17B) und QQQ (20.9B) folgten, wobei SNDK mit 16.82B und TSLA mit 11.71B das Board der Dollar-Werte abschlossen. Das Board der Aktien zeigte ein anderes Bild: Der 3x inverse Halbleiter-ETF SOXS handelte 636.5M Anteile zu einem implizierten Durchschnittspreis von $4.67 – eine Folge der Mechanik eines günstigen 3x-Derivats an einem starken Chip-Handelstag.

Der Verlauf der Sitzung

AbfrageAktien pro 30-Minuten-ET-Bucket, Regular Hours, inkl. % des größten Tages-Buckets
Das exakte SQL hinter jeder Zahl
SELECT
    formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
    round(sum(toFloat64(volume)) / 1e9, 2) AS shares_bn,
    round(100 * sum(toFloat64(volume)) / max(sum(toFloat64(volume))) OVER (), 1) AS pct_of_biggest_bucket
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00'
GROUP BY et_time
ORDER BY et_time

Das Handelsvolumen wies eine klassische U-Form auf: Das Volumen zu Handelsbeginn betrug 89.9% des höchsten Volumens des Tages. Es sank im Laufe des Vormittags und erreichte zwischen 13:00 und 13:30 Uhr ET mit 34.1% seinen Tiefpunkt. Die letzte halbe Stunde (15:30 Uhr ET) verzeichnete mit 2.2B Aktien das höchste Volumen des Tages. Dieser Wert liegt über den 1.98B Aktien zu Handelsbeginn, was dem Standardmuster einer regulären Sitzung entspricht.

Der Options-Tape

AbfrageOptions-Tape: Prints, Kontrakte, Call %, 0DTE-Anteil vs. Dienstag, Top-Kontrakt
Das exakte SQL hinter jeder Zahl
WITH
    (
        SELECT (groupArray(und), groupArray(strike), groupArray(typ), groupArray(vol), groupArray(avg_px), groupArray(is_0dte))
        FROM (
            SELECT any(underlying_symbol) AS und, any(toFloat64(strike_price)) AS strike, any(option_type) AS typ,
                   sum(size) AS vol, round(avg(toFloat64(price)), 3) AS avg_px,
                   if(substring(ticker, length(ticker) - 14, 6) = '260708', 1, 0) AS is_0dte
            FROM global_markets.options_trades
            WHERE sip_timestamp >= '2026-07-08 00:00:00' AND sip_timestamp < '2026-07-09 00:00:00'
            GROUP BY ticker
            ORDER BY vol DESC
            LIMIT 2
        )
    ) AS top2,
    (
        SELECT round(toFloat64(argMax(close, window_start)), 2)
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY' AND window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00'
    ) AS spy_regular_close,
    (
        SELECT round(toFloat64(sum(size)) / 1e6, 2)
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-07 00:00:00' AND sip_timestamp < '2026-07-08 00:00:00'
    ) AS jul7_contracts_m,
    (
        SELECT round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260707') / sum(size), 1)
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-07 00:00:00' AND sip_timestamp < '2026-07-08 00:00:00'
    ) AS jul7_pct_0dte
SELECT
    round(count() / 1e6, 2) AS option_prints_m,
    round(toFloat64(sum(size)) / 1e6, 2) AS contracts_m,
    jul7_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) = '260708') / sum(size), 1) AS pct_0dte,
    jul7_pct_0dte,
    spy_regular_close,
    top2.1[1] AS top1_und, top2.2[1] AS top1_strike, top2.3[1] AS top1_type, top2.4[1] AS top1_contracts, top2.5[1] AS top1_avg_px, top2.6[1] AS top1_is_0dte,
    round(toFloat64(top2.2[1]) - spy_regular_close, 2) AS top1_moneyness
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-08 00:00:00' AND sip_timestamp < '2026-07-09 00:00:00'

Der konsolidierte Options-Tape verzeichnete 10.44M Trades und 63.26M Kontrakte – damit über dem Wert von 61.13M vom Dienstag, berechnet aus demselben Tape über den entsprechenden Zeitraum am Dienstag. Calls machten 55.4% des Gesamtvolumens aus, was eine moderate Tendenz zu Calls darstellt. 0DTE-Kontrakte (Ablauf am selben Tag, 260708) machten 38.7% des Kontraktvolumens aus, gegenüber 31.2% am Dienstag. Der am stärksten gehandelte Einzelkontrakt war SPY 745C677981 Kontrakte zu einem Durchschnittspreis von $0.875, ein Kontrakt mit Ablauf am selben Tag, der im Vergleich zum regulären Schlusskurs von SPY bei $745.31 nahezu at the money lag.

Der Quote-Tape

AbfrageAktien NBBO-Update-Zahl: 8. Juli vs. 7. Juli, inkl. Ticker-Updates (Millionen)
Das exakte SQL hinter jeder Zahl
SELECT
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-08')) / 1e6, 2) AS jul8_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-07')) / 1e6, 2) AS jul7_updates_m,
    round((countIf(toDate(sip_timestamp) = toDate('2026-07-08')) / countIf(toDate(sip_timestamp) = toDate('2026-07-07')) - 1) * 100, 1) AS day_over_day_pct,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-08') AND ticker = 'SPY') / 1e6, 2) AS jul8_spy_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-08') AND ticker = 'QQQ') / 1e6, 2) AS jul8_qqq_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-08') AND ticker = 'NVDA') / 1e6, 2) AS jul8_nvda_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-08') AND ticker = 'TSLA') / 1e6, 2) AS jul8_tsla_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-08') AND ticker = 'MU') / 1e6, 2) AS jul8_mu_updates_m
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-07-07 00:00:00' AND sip_timestamp < '2026-07-09 00:00:00'

Der Aktien-Quote-Tape verzeichnete am 8. Juli 530.55M NBBO-Updates — ein Anstieg um 7.7% im Vergleich zur vorangegangenen Sitzung. Die 6.53M Updates von QQQ führten bei den genannten Titeln, vor den 4.93M Updates von SPY. NVDA (1.8M), TSLA (0.72M) und MU (0.6M) vervollständigen die Liste der genannten Werte.

AbfrageSPY / QQQ / NVDA / TSLA / MU / SNDK / AVGO: Medianer RTH-Quote-Spread in Basispunkten
Das exakte SQL hinter jeder Zahl
SELECT
    ticker,
    round(quantileExact(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000), 2) AS median_spread_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'QQQ', 'NVDA', 'TSLA', 'MU', 'SNDK', 'AVGO')
  AND sip_timestamp >= '2026-07-08 13:30:00' AND sip_timestamp < '2026-07-08 20:00:00'
  AND bid_price > 0 AND ask_price > 0 AND ask_price > bid_price
GROUP BY ticker
ORDER BY median_spread_bps ASC

Über die sieben genannten Titel hinweg lag der mediane quoted spread von SPY während der RTH bei 0.27 bps — ein normaler Wert für den liquidesten US-ETF. QQQ notierte bei 0.71 bps, NVDA bei 1.52 bps. Das breitere Ende der Tabelle gehört zu den Titeln mit geringerer Quote-Aktivität: MU bei 5.66 bps und SNDK bei 12.21 bps.

AbfrageSPY RTH Durchschnittlicher Quote-Spread im Trend der letzten Monat
Das exakte SQL hinter jeder Zahl
SELECT
    round(anyIf(avg_spread_cents, d = toDate('2026-07-08')), 3) AS jul8_avg_spread_cents,
    arrayCount(x -> x < anyIf(avg_spread_cents, d = toDate('2026-07-08')), groupArrayIf(avg_spread_cents, d != toDate('2026-07-08'))) + 1 AS tightness_rank,
    count() AS sessions_compared,
    round(min(avg_spread_cents), 3) AS tightest_session_cents,
    round(max(avg_spread_cents), 3) AS widest_session_cents,
    toString(min(d)) AS first_session,
    sum(dropped_invalid) AS dropped_invalid_quotes
FROM (
    SELECT toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS d,
           avgIf(toFloat64(ask_price - bid_price), bid_price > 0 AND ask_price >= bid_price) * 100 AS avg_spread_cents,
           countIf(NOT (bid_price > 0 AND ask_price >= bid_price)) AS dropped_invalid
    FROM global_markets.cache_stocks_quotes
    WHERE ticker = 'SPY'
      AND sip_timestamp >= toDateTime('2026-06-05 00:00:00')
      AND sip_timestamp < toDateTime('2026-07-09 00:00:00')
      AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
    GROUP BY d
)

Der durchschnittliche quoted spread von SPY während der RTH betrug 2.202 cents. Dieser Wert liegt auf dem 11 Platz von 22 vorangegangenen Sitzungen. Dies entspricht einem durchschnittlichen Tag hinsichtlich der Spread-Engpässe, wobei die Spanne des letzten Monats von 1.809 cents (der engste Wert) bis 2.865 cents (der weiteste Wert) reichte. Es gab keine Liquiditätslücken oder besondere Liquiditätsereignisse – eine gewöhnliche Sitzung für den quoted spread von SPY.

AbfrageOptions NBBO-Tape: Gesamt-Updates vs. Aktien-Tape, plus SPY-Root-Slice
Das exakte SQL hinter jeder Zahl
WITH
    (SELECT count() FROM global_markets.cache_options_quotes WHERE sip_timestamp >= '2026-07-08 00:00:00' AND sip_timestamp < '2026-07-09 00:00:00') AS jul8_options_rows,
    (SELECT count() FROM global_markets.cache_stocks_quotes WHERE sip_timestamp >= '2026-07-08 00:00:00' AND sip_timestamp < '2026-07-09 00:00:00') AS jul8_stock_quote_rows
SELECT
    round(jul8_options_rows / 1e9, 2) AS jul8_options_bn,
    round(jul8_options_rows / jul8_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-08 13:30:00' AND sip_timestamp < '2026-07-08 20:00:00') / 1e6, 0) AS jul8_spy_options_m

Der Options-Tape verzeichnete 9.62 Milliarden NBBO-Updates — das entspricht dem 18.1-fachen der Anzahl des Aktien-Quote-Tapes. Allein der Anteil der SPY-Optionen umfasste 422 Millionen Updates während der regulären Handelszeiten.

Zinsen: Die Kurve bewegte sich kaum

AbfrageTreasury-Renditen: 8. Juli vs. 7. Juli — Laufzeiten + 2s10s
Das exakte SQL hinter jeder Zahl
SELECT
    t.1 AS curve_point,
    round(t.2, 2) AS jul8_yield_pct,
    round((t.2 - t.3) * 100) AS session_change_bp
FROM (
    SELECT arrayJoin([
        ('1 month',  toFloat64(d.yield_1_month),  toFloat64(p.yield_1_month)),
        ('3 month',  toFloat64(d.yield_3_month),  toFloat64(p.yield_3_month)),
        ('1 year',   toFloat64(d.yield_1_year),   toFloat64(p.yield_1_year)),
        ('2 year',   toFloat64(d.yield_2_year),   toFloat64(p.yield_2_year)),
        ('5 year',   toFloat64(d.yield_5_year),   toFloat64(p.yield_5_year)),
        ('10 year',  toFloat64(d.yield_10_year),  toFloat64(p.yield_10_year)),
        ('30 year',  toFloat64(d.yield_30_year),  toFloat64(p.yield_30_year)),
        ('2s10s spread', toFloat64(d.yield_10_year - d.yield_2_year), toFloat64(p.yield_10_year - p.yield_2_year))
    ]) AS t
    FROM (SELECT * FROM global_markets.treasury_yields WHERE date = '2026-07-08') AS d,
         (SELECT * FROM global_markets.treasury_yields WHERE date = '2026-07-07') AS p
)

Die 5-jährige Rendite verzeichnete mit +4 bp die stärkste Veränderung der Sitzung; die 2-jährige stieg um +2 bp. Keine andere Laufzeit bewegte sich um mehr als 2 bp in eine der beiden Richtungen. Der 2s10s spread lag somit bei 0.35% (-1 bp in der Sitzung) und blieb innerhalb seiner jüngsten Spanne. Die geringfügige Zinsbewegung verlief parallel zu der geringfügigen Indexbewegung.

Der Kalender des Tages

AbfrageEx-Divs, Splits, SEC-Filings, News-Aufmerksamkeit
Das exakte SQL hinter jeder Zahl
WITH
    (
        SELECT (count(), uniqExact(publisher))
        FROM global_markets.stocks_news
        WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-07-08'
    ) AS news,
    (
        SELECT (argMax(t, (n, t)), max(n), max(n) - arraySort(x -> -x, groupArray(n))[2])
        FROM (
            SELECT t, count() AS n
            FROM (
                SELECT arrayJoin(tickers) AS t
                FROM global_markets.stocks_news
                WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-07-08'
            )
            WHERE t != 'SPCX'
            GROUP BY t
        )
    ) AS top_news
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-08') AS ex_dividend_records,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date = '2026-07-08') AS splits_executed,
    (SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-08') AS reverse_splits,
    (SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-08') AS forward_splits,
    (SELECT countIf(form_type = '424B2') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-08') AS fil_424b2,
    (SELECT countIf(form_type = '4') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-08') AS fil_form4,
    (SELECT countIf(form_type = '8-K') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-08') AS fil_8k,
    (SELECT count() FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-08') AS fil_total,
    news.1 AS news_articles, news.2 AS news_publishers,
    top_news.1 AS top_news_ticker, top_news.2 AS top_news_n, top_news.3 AS top_news_lead_over_next

Der Kalender war an diesem Tag überschaubar: 81 Ex-Dividenden-Termine, 1 durchgeführte Vorab-Aktiensplits und insgesamt 3722 SEC-Einreichungen (davon 775 Form 4 Insider-Handel, 527 424B2-Prospekte und 163 8-K-Berichte). Die Berichterstattung umfasste 192 Artikel über 3 Publisher, wobei MU zu den am häufigsten genannten Ticker gehört, die in 17 Artikeln vorkamen. Es gab keine herausragenden Kapitalmaßnahmen bekannter Unternehmen – das zentrale Thema des Marktes war der Halbleitersektor.

Die Sitzung, verifiziert

AbfrageSession-Verifizierung: Erster/letzter SPY-Bar (ET), Regular-Bar-Anzahl, Feiertags-Receipts, Nächster Schluss
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,
    count() AS spy_minute_bars,
    countIf(window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00') AS regular_session_bars,
    uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00') AS day_sessions,
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-08') AS jul8_holiday_rows,
    (SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-08' AND status = 'closed') AS next_closure_date,
    (SELECT argMin(name, date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-08' AND status = 'closed') AS next_closure_name
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-08 00:00:00' AND window_start < '2026-07-09 00:00:00'

Die Sitzung umfasste ein vollständiges Zeitfenster mit verlängerten Handelszeiten — der erste SPY-Bar war um 04:00 ET, der letzte um 19:59 ET — mit 390 Minuten-Bars während der regulären Handelszeiten und 1 Handelsminuten im Zeitfenster (kein Halbtag; die Feiertagstabelle enthält keinen Eintrag für dieses Datum). Die nächste geplante Börsenschlusszeit ist Labor Day am 2026-09-07.

Datenhinweise

Alle Zeitstempel sind in UTC gespeichert; die regulären Handelszeiten am 8. Juli 2026 sind als sip_timestamp / window_start zwischen 2026-07-08 13:30:00 und 2026-07-08 20:00:00 gefiltert, was 9:30 Uhr bis 16:00 Uhr New Yorker Zeit entspricht. Dezimalpreise werden vor jeder Division in Float64 umgewandelt. Die nach Ticker benannten Panels (Scoreboard, Chip-Komplex, Rotation) sind alphabetisch nach Ticker sortiert, sodass sich jeder Textverweis auf eine feste Zeile bezieht; Leaderboards (Volumen, Quote-Snapshot) sind nach Werten sortiert, wobei jede Positionsangabe als Sicherheitsgrenze für diese Position kodiert ist. Jeder wöchentliche Vergleich am Dienstag auf dieser Seite — Marktbreite, Grün/Rot-Zähler der Chips, Optionskontrakte und 0DTE-Anteil, Quote-Update-Zähler — wird frisch ab dem 7. Juli (und dem 6. Juli, falls ein vorheriger Schlusskurs benötigt wird) im selben Abfrageblock berechnet und niemals aus einem früheren Beitrag zitiert.

Vollständige Datenhinweise

Das Panel zur Marktbreite zählt Titel, die an beiden Sitzungen einen Schlusskurs während der regulären Handelszeiten aufweisen und am gemessenen Tag mindestens 1 Mio. $ gehandelt haben; der ausgeklammerte Zähler (5284 von 11439) macht das ausgeschlossene Ende sichtbar. Die Spalten für das Timing des Chip-Komplexes (day_low/day_high) verwenden das argMin/argMaxIf(..., (value, timestamp))-Muster, damit Gleichstände deterministisch aufgelöst werden. Die Beschriftungen der Volume-Smile-Buckets verwenden ET (%H:%i) und werden nur mit toTimeZone in der SELECT-Liste berechnet. Das Options-Tape-Panel erkennt das gleiche Verfallsdatum mittels eines OCC-Ticker-Substring-Abgleichs (substring(ticker, length(ticker) - 14, 6)) anstatt options_trades.expiration_date (diese Spalte ist gemäß dem standardmäßigen Preflight-Hinweis fehlerhaft). Symbole in KNOWN_AMBIGUOUS_TICKERS sind in den SQL-Abfragen für Volumen-Leader und News-Attention ausgeschlossen, sodass sich „meistgenannte“ Aufzählungen auf verifizierbare Namen beziehen. Der Ticker für Top-News verwendet einen deterministischen Tie-Break (argMax(t, (n, t))); top_news_lead_over_next = 0 markiert einen Gleichstand, weshalb im Text „unter den meistgenannten“ steht. Das Treasury-Panel verknüpft zwei tägliche Snapshot-Zeilen; fehlt ein Snapshot für eines der Daten, ergibt dies null Zeilen, und die row_count-Grenze sichert den Beitrag ab. Die Zähler für Stocks-Quote und Options-Quote sind vollständige Scans über Tagespartitionen; die Zähler für benannte Ticker werden in Millionen angegeben, um den Einheiten der Spalten zu entsprechen. Die Mediane des Spread nutzen quantileExact (deterministisch); das Panel für den nachlaufenden Spread ist ein Durchschnitt (avgIf) und ist entsprechend gekennzeichnet.

Methodik

  • Marktdatenquelle: Consolidated Tape — delayed_stocks_minute_aggs für Index- und Einzelwertpreise sowie Volumina, cache_stocks_quotes für NBBO-Counts und Quoted Spreads, cache_options_quotes und options_trades für den Options-Tape.
  • Handhabung der Zeitzonen: Alle gespeicherten Zeitstempel sind in UTC; ET-Zeitangaben werden in SELECT-Listen nur mittels toTimeZone(..., 'America/New_York') berechnet; WHERE-Klauseln verwenden rohe UTC-Literale.
  • Zeitfenster für den regulären Handel: 13:30–20:00 UTC, verifiziert anhand beobachteter SPY-Minutenbars (das Session-Verification-Panel), nicht durch Kalenderberechnung.
  • Definition des Spread: (ask - bid) / midpoint × 10,000 in Basispunkten basierend auf gültigen zwei-seitigen Quotes für den Snapshot; das Panel für den vergangenen Monat zeigt die durchschnittliche Breite in Cent an und ist als Durchschnitt gekennzeichnet.
  • Vergleiche zur vorangegangenen Session: Werden direkt in der Abfrage ab dem 7. Juli berechnet (und am 6. Juli für den Vergleich zum Dienstag) — keine Übernahme aus vorherigen Berichten.
  • Deterministische Aggregate: quantileExact, tupel-geschlüsseltes argMin/argMax und ein deterministischer News-Tie-Break für stabile Re-Generierungen.
  • Stichtag des Data Warehouse: 10. Juli 2026 (T+2 für den Zeitraum); die Tapes beider Sessions sind in dieser Tiefe vollständig eingelesen.

Querverweise: Rückblick zum 7. Juli 2026, Handelskosten für Optionen, Grundlagen zum Bid-Ask-Spread, 0DTE-Optionen und Relatives Volumen.