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

Börsenrückblick 9. Juli 2026 Zahlen

Chip-Equipment-Werte zeigten hohe Volatilität, während Mega-Caps nach Einbruch wieder stiegen. Der Markt schloss grün, doch NVDA verzeichnete Verluste.

Donnerstag, der 9. Juli 2026, war extrem volatil – und diese Volatilität begann bereits vor der Eröffnung. Im vorbörslichen Handel lagen die Kurse von Chip-Equipment-Werten bereits deutlich über dem Schlusskurs vom Mittwoch, während META bei -3.16% unter diesem Wert notierte; die Eröffnung um 9:30 Uhr bestätigte beide Entwicklungen. Im weiteren Verlauf wurde ein Teil der Kursgewinne vom Eröffnungskurs wieder abgegeben: Die Kurslücken bei den Chip-Werten schlossen sich, META stieg wieder auf das Ausgangsniveau zurück, und der Handel schloss mit einem Plus von 71.5% – die volatilste Sitzung der Woche. NVDA, das nach dem Einbruch am Dienstag im Plus lag, schloss im Minus. Alle unten genannten Zahlen stammen aus einer Datenbankabfrage.

Die Ausgangslage zur Eröffnung

Die Kurslücken entstanden nicht um 9:30 Uhr. Zwischen 4:00 Uhr und 9:29 Uhr ET hatte der Pre-Market-Handel diese Titel bereits neu bewertet, sodass die Eröffnungskurse auf diesem Niveau lagen.

AbfragePremarket-Verlauf, 4:00-9:29 am ET: letzter Premarket-Print vs. Mittwoch-Schluss, und die folgende Eröffnung
Das exakte SQL hinter jeder Zahl
SELECT
    ticker,
    round(prior_close, 2) AS prior_close,
    formatDateTime(first_pm_bar, '%H:%i') AS first_premkt_bar_et,
    round(premkt_last, 2) AS premkt_last,
    round((premkt_last / prior_close - 1) * 100, 2) AS premkt_pct,
    round(premkt_shares / 1e3, 1) AS premkt_shares_k,
    round((day_open / prior_close - 1) * 100, 2) AS gap_pct,
    round((day_open / premkt_last - 1) * 100, 2) AS open_vs_premkt_pct
FROM (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00')) AS prior_close,
        minIf(toTimeZone(window_start, 'America/New_York'), window_start >= '2026-07-09 08:00:00' AND window_start < '2026-07-09 13:30:00') AS first_pm_bar,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-09 08:00:00' AND window_start < '2026-07-09 13:30:00')) AS premkt_last,
        sumIf(toFloat64(volume), window_start >= '2026-07-09 08:00:00' AND window_start < '2026-07-09 13:30:00') AS premkt_shares,
        toFloat64(argMinIf(open, window_start, window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00')) AS day_open
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'QQQ', 'KLAC', 'LRCX', 'META', 'NVDA')
      AND ((window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00')
        OR (window_start >= '2026-07-09 08:00:00' AND window_start < '2026-07-09 20:00:00'))
    GROUP BY ticker
)
ORDER BY ticker

Der letzte Pre-Market-Kurs von KLAC lag +8.49% über dem Schlusskurs vom Mittwoch und die Aktie eröffnete mit +8.14%. LRCX stieg um 9.64% und eröffnete bei einem Plus von 9.67%; META notierte -3.16% und eröffnete bei -3.16%. Lesen Sie open_vs_premkt_pct: Alle sechs Titel eröffneten innerhalb eines Prozents ihres letzten Pre-Market-Preises. NVDA ist die Ausnahme — 0.16% über Nacht bei 3741.7k Aktien, dem höchsten Pre-Market-Volumen der sechs Titel und der geringsten Kursbewegung (Pre-Market- und After-Hours-Handel).

Gab es einen Auslöser? Unsere Daten nennen keinen

Eine Zusammenfassung sollte erklären, was eine Aktie bewegt hat. In unseren Tabellen wird nichts genannt: Sowohl der News-Feed als auch das SEC-Filing-Index sind für die vier Namen mit den größten Gaps leer.

AbfrageNennenswerte Katalysatoren: News und SEC-Filings pro Name, Mittwoch-Schluss bis Donnerstag-Schluss
Das exakte SQL hinter jeder Zahl
SELECT
    ticker,
    toUInt32(sum(overnight_articles)) AS overnight_articles,
    toUInt32(sum(session_articles)) AS session_articles,
    toUInt32(sum(sec_filings)) AS sec_filings,
    toUInt32(sum(filings_8k)) AS filings_8k
FROM (
    SELECT
        arrayJoin(['AMD', 'KLAC', 'LRCX', 'META', 'MSFT', 'MU', 'NVDA', 'TER', 'WDC']) AS ticker,
        toUInt64(0) AS overnight_articles, toUInt64(0) AS session_articles,
        toUInt64(0) AS sec_filings, toUInt64(0) AS filings_8k
    UNION ALL
    SELECT
        arrayJoin(tickers) AS ticker,
        countIf(published_utc < '2026-07-09 13:30:00') AS overnight_articles,
        countIf(published_utc >= '2026-07-09 13:30:00') AS session_articles,
        toUInt64(0) AS sec_filings, toUInt64(0) AS filings_8k
    FROM global_markets.stocks_news
    WHERE published_utc >= '2026-07-08 20:00:00' AND published_utc < '2026-07-09 20:00:00'
    GROUP BY ticker
    UNION ALL
    SELECT
        ticker, toUInt64(0), toUInt64(0),
        count() AS sec_filings,
        countIf(form_type = '8-K') AS filings_8k
    FROM global_markets.stocks_sec_edgar_index
    WHERE filing_date >= '2026-07-08' AND filing_date <= '2026-07-09'
    GROUP BY ticker
)
WHERE ticker IN ('AMD', 'KLAC', 'LRCX', 'META', 'MSFT', 'MU', 'NVDA', 'TER', 'WDC')
GROUP BY ticker
ORDER BY ticker

0 Artikel über Nacht, 0 Intraday, 0 SEC-Filings für KLAC — die gleiche leere Zeile für LRCX, TER und WDC. NVDA, das nie einen Gap aufwies, hatte die höchste Berichterstattung unter den neun (7 über Nacht, 9 Intraday) und schloss im Minus. Dies ist die Aufmerksamkeit eines einzelnen Feeds, nicht der weltweiten Medien, und eine fehlende Zeile ist kein Beweis für ein nicht stattgefundenes Ereignis — aber nichts in unseren Daten nennt eine Ursache, und „Ursache unbekannt“ ist eine vollständige Antwort.

Die Ergebnistabelle

Jeder Vergleich bezieht sich auf die letzte Minute der regulären Sitzung am 9. Juli im Vergleich zum Mittwoch; die Zeilen sind alphabetisch sortiert, sodass die Position jedes ETF gleich bleibt.

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

Alle vier schlossen im Plus. QQQ verzeichnete mit +1.67% den stärksten Zuwachs — bestehend aus einer Lücke von +0.99% und einem Anstieg von +0.68%; Small-Cap IWM stieg um +1.29%, SPY um +0.85% auf $751.64, während DIA mit +0.29% das Schlusslicht bildete. Growth-Werte führten das Feld an, der Dow Jones lag hinten.

War der Tag ungewöhnlich?

Auf Indexebene: Nein. Der Schlusskurs von QQQ stieg um 1.67% und war damit der 10 größte Wert der letzten 21 Handelstage. Die Kursbewegung von SPY vom Eröffnungskurs zum Schlusskurs lag bei 8 der letzten 22 Tage. Die Volatilität konzentrierte sich auf die Werte zwischen den Gruppen des Tages.

AbfrageSPY / QQQ Tagesbewegung im historischen Kontext (~22 Sessions)
Das exakte SQL hinter jeder Zahl
SELECT
    round(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-09')), 2) AS qqq_close_over_close_pct,
    arrayCount(x -> x > abs(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-09'))), groupArrayIf(abs(cc_pct), ticker = 'QQQ' AND d != toDate('2026-07-09'))) + 1 AS qqq_abs_move_rank,
    countIf(ticker = 'QQQ' AND isFinite(cc_pct)) AS qqq_sessions_compared,
    round(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-09')), 2) AS spy_open_to_close_pct,
    arrayCount(x -> x > abs(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-09'))), groupArrayIf(abs(oc_pct), ticker = 'SPY' AND d != toDate('2026-07-09'))) + 1 AS spy_abs_move_rank,
    countIf(ticker = 'SPY') AS spy_sessions_compared,
    toString(min(d)) AS first_session
FROM (
    SELECT ticker, d,
           if(isFinite(close_px / lagInFrame(close_px) OVER (PARTITION BY ticker ORDER BY d) - 1),
              (close_px / lagInFrame(close_px) OVER (PARTITION BY ticker ORDER BY d) - 1) * 100, NULL) 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-08 13:30:00')
          AND window_start < toDateTime('2026-07-10 00:00:00')
          AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
        GROUP BY ticker, d
    )
)

Marktbreite: die breiteste Sitzung der Woche

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

4263 steigende Titel gegenüber 1631 fallenden Titeln — ein Anteil steigender Titel von 71.5% nach 29.6% am Mittwoch, bei gleicher Berechnung und demselben Filter für ein Handelsvolumen von 1 Mio. $ (5385 von 11351 Namen liegen darunter). Im Vergleich zum Rest der Woche:

AbfrageWochenverlauf: Indexbewegungen und Advancer-Anteil pro abgeschlossener Session
Das exakte SQL hinter jeder Zahl
WITH per_day AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           argMax(toFloat64(close), window_start) AS c,
           sum(toFloat64(close) * toFloat64(volume)) AS dv
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-09 20:00:00'
      AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
    GROUP BY ticker, d
),
lagged AS (
    SELECT ticker, d, c, dv,
           lagInFrame(c) OVER (PARTITION BY ticker ORDER BY d) AS prev_c
    FROM per_day
)
SELECT
    toString(d) AS date,
    round(anyIf((c / prev_c - 1) * 100, ticker = 'SPY'), 2) AS spy_pct,
    round(anyIf((c / prev_c - 1) * 100, ticker = 'QQQ'), 2) AS qqq_pct,
    round(100.0 * countIf(c > prev_c AND prev_c > 0 AND dv >= 1000000) / countIf(c > 0 AND prev_c > 0 AND dv >= 1000000), 1) AS advancer_pct,
    countIf(c > 0 AND prev_c > 0 AND dv >= 1000000) AS liquid_names
FROM lagged
WHERE d >= toDate('2026-07-06')
GROUP BY d
ORDER BY d

Der Montag begann mit 62.4% steigenden Titeln, Dienstag und Mittwoch sanken diese auf 33.9% und 29.6%, und der Wert von Donnerstag mit 71.4% ist der höchste der vier abgeschlossenen Sitzungen der Woche (der Freitag, 10. Juli, liegt nach dieser Zusammenfassung). Der QQQ folgte diesem Trend: -1.82% am Dienstag, 0.25% am Mittwoch, +1.67% am Donnerstag.

Jenseits der Chips: So handelten die restlichen Marktsegmente

Die Marktdurchdringung zeigt, dass die meisten Aktien stiegen; sie lässt jedoch darauf schließen, dass die Rallye nicht gleichmäßig verteilt war. Unten aufgeführt ist ein gleichgewichteter Korb aus drei liquiden Titeln pro Sektor, der jeden Tag identisch bleibt.

AbfrageAcht Sektor-Körbe, je drei Namen: 9. Juli Close-over-Close, gleichgewichtet
Das exakte SQL hinter jeder Zahl
SELECT
    sector,
    count() AS names,
    round(avg(pct_chg), 2) AS avg_pct_chg,
    round(min(pct_chg), 2) AS worst_name_pct,
    round(max(pct_chg), 2) AS best_name_pct,
    round(avg(pct_chg) - max(avg(pct_chg)) OVER (), 2) AS gap_to_best_sector_pct
FROM (
    SELECT
        ticker,
        multiIf(ticker IN ('AMD', 'AVGO', 'KLAC'), 'Semiconductors',
                ticker IN ('AAPL', 'MSFT', 'GOOGL'), 'Big tech',
                ticker IN ('JPM', 'BAC', 'GS'), 'Financials',
                ticker IN ('CAT', 'HON', 'GE'), 'Industrials',
                ticker IN ('XOM', 'CVX', 'COP'), 'Energy',
                ticker IN ('JNJ', 'UNH', 'PFE'), 'Healthcare',
                ticker IN ('KO', 'PG', 'WMT'), 'Staples',
                'Utilities') AS sector,
        (toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00'))
         / toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00')) - 1) * 100 AS pct_chg
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('AMD', 'AVGO', 'KLAC', 'AAPL', 'MSFT', 'GOOGL', 'JPM', 'BAC', 'GS', 'CAT', 'HON', 'GE',
                     'XOM', 'CVX', 'COP', 'JNJ', 'UNH', 'PFE', 'KO', 'PG', 'WMT', 'NEE', 'DUK', 'SO')
      AND window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-09 20:00:00'
    GROUP BY ticker
)
GROUP BY sector
ORDER BY avg_pct_chg DESC

Semiconductors führte mit +4.24%, während Energy mit -2.01% zurücklag – ein Spread von -6.25 Punkten (gap_to_best_sector_pct). Der Finanzsektor war mit +1.88% der stärkste Nicht-Chip-Korb; Basiskonsumgüter (-0.91%), Versorger (-0.96%) und Energie schlossen im Minus. Big Tech (AAPL, MSFT und GOOGL) verzeichnete ein moderates Plus von durchschnittlich +0.17%. Die größte Kursumkehr des Tages (Open-to-Close) war die Schwankung von META um +8.1%, die außerhalb aller acht Körbe liegt; innerhalb dieses Korbes war der Wechsel von MSFT von einem -2.25% Eröffnungskurs zu einem +0.33% Schlusskurs die stärkste Kursbewegung.

Die Eröffnung der Halbleiterwerte und der anschließende Rückgang

gap_pct stellt die Eröffnung im Vergleich zum Schlusskurs vom Mittwoch dar; intraday_pct zeigt die Entwicklung über den restlichen Handelstag. Die Zeilen sind alphabetisch sortiert.

AbfrageVierzehn Chip-Werte: Gap zur Eröffnung vs. restlicher Tagesverlauf, 9. Juli
Das exakte SQL hinter jeder Zahl
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-09 00:00:00')) AS prior_close,
        toFloat64(argMinIf(open, window_start, window_start >= '2026-07-09 00:00:00')) AS day_open,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-09 00:00:00')) AS day_close,
        maxIf(toFloat64(high), window_start >= '2026-07-09 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-07-09 00:00:00') AS day_low,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-09 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-08 13:30:00' AND window_start < '2026-07-08 20:00:00')
        OR (window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00'))
    GROUP BY ticker
)
SELECT
    ticker,
    round(prior_close, 2) AS prior_close,
    round(day_open, 2) AS day_open,
    round(day_close, 2) AS day_close,
    round((day_open / prior_close - 1) * 100, 2) AS gap_pct,
    round((day_close / day_open - 1) * 100, 2) AS intraday_pct,
    round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
    day_dollar_bn
FROM per_name
ORDER BY ticker

KLAC eröffnete bei +8.14% gegenüber dem Mittwochsschluss und gab anschließend -3.98% ab; LRCX eröffnete mit +9.67% und verzeichnete einen Rückgang von -3.26%; TER (+7.87%) und WDC (+7.89%) zeigten einen identischen Verlauf. MU eröffnete mit einem Gap von +7.07%, fiel um -2.56% und schloss dennoch mit +4.33% bei einem Volumen von 33.56B — die schwerste Aktie im Handel für die zweite Sitzung (Zusammenfassung vom Mittwoch enthält die erste). AMD und SNDK bildeten die Ausnahmen: AMD legte nach einem Plus von +3.87% weitere 1.75% auf, um bei +5.68% zu schließen, und SNDK, das bereits mit +6.14% eröffnete, gewann weitere 1.23% hinzu und schloss bei +7.45%. Und NVDA: eine Eröffnung mit +0.16% — ohne Gap — bei einem Schlusskurs von -0.68%.

AbfrageReceipts: Green/Red-Counts am 9. Juli für die 14 Namen und NVDA 2-Tages-Turn
Das exakte SQL hinter jeder Zahl
SELECT
    countIf(close_9 > close_8) AS jul9_green,
    countIf(close_9 < close_8) AS jul9_red,
    countIf(close_8 > close_7) AS jul8_green,
    round(anyIf((close_9 / close_8 - 1) * 100, ticker = 'NVDA'), 2) AS nvda_jul9_pct,
    round(anyIf((close_8 / close_7 - 1) * 100, ticker = 'NVDA'), 2) AS nvda_jul8_pct,
    count() AS names_counted
FROM (
    SELECT ticker,
           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,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00')) AS close_9
    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-09 20:00:00'
    GROUP BY ticker
)

12 der vierzehn Werte schlossen im Plus; die 2 roten Schlusskurse bildeten den Gegenpol — eine strukturelle Abweichung an einem Aufwärtstag — sowie NVDA bei -0.68%, einen Tag nach einem Schlusskurs von +3.66%. Die größte Chip-Aktie blieb bei der Rallye ihres eigenen Sektors außen vor, obwohl sie die umfangreichste Berichterstattung aufwies.

Die andere Seite: Mega-Caps mit fallendem Auftakt erholten sich

AbfrageAcht Mega-Caps und Defensives: Gap zur Eröffnung vs. restlicher Tagesverlauf, 9. Juli
Das exakte SQL hinter jeder Zahl
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-09 00:00:00')) AS prior_close,
        toFloat64(argMinIf(open, window_start, window_start >= '2026-07-09 00:00:00')) AS day_open,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-09 00:00:00')) AS day_close,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-09 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('AAPL', 'AMZN', 'CVX', 'GOOGL', 'JNJ', 'META', 'MSFT', 'TSLA')
      AND ((window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00')
        OR (window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00'))
    GROUP BY ticker
)
SELECT
    ticker,
    round(prior_close, 2) AS prior_close,
    round(day_open, 2) AS day_open,
    round(day_close, 2) AS day_close,
    round((day_open / prior_close - 1) * 100, 2) AS gap_pct,
    round((day_close / day_open - 1) * 100, 2) AS intraday_pct,
    round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
    day_dollar_bn
FROM per_name
ORDER BY ticker

Sieben der acht Titel starteten unter dem Schlusskurs vom Mittwoch; die weitere Entwicklung unterschied sie jedoch. META eröffnete -3.16% tiefer und stieg bis zum Schlusskurs um +8.1% auf 4.69%; dies war die stärkste Kursumkehr zwischen Eröffnung und Schlusskurs auf der Seite. MSFT eröffnete -2.25% tiefer und erholte sich auf +0.33%; auch AMZN (+1.4%) und AAPL (+0.93%) folgten diesem Trend; TSLA verzeichnete keinen Gap und stieg auf +3.21%. Die Titel, die im Minus blieben, gehörten nicht zum Growth-Sektor: GOOGL (-0.76%), CVX (-1.06%) und JNJ (-1.62%). Warum Aktien über Nacht Gaps bilden erklärt die Mechanik.

Wo gehandelt wurde

AbfrageTop 6 nach Handelsvolumen ($), Top 4 nach Aktienanzahl — 9. 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-09 13:30:00' AND window_start < '2026-07-09 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-09 13:30:00' AND window_start < '2026-07-09 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 dominierte erneut das Dollar-Board mit 33.56B, vor SPY (24.37B), NVDA (21.28B) und SNDK (20.59B) – zwei der vier Spitzenreiter stammen aus dem Speichersegment. Das Aktien-Board zeigt ein anderes Bild: SOXS führte mit 558.1M Aktien, was einem impliziten Preis von $3.91 entspricht (relatives Volumen).

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-09 13:30:00' AND window_start < '2026-07-09 20:00:00'
GROUP BY et_time
ORDER BY et_time

Ein klassisches U-Profil: Das Handelsvolumen zu Eröffnung betrug 1.79B Aktien (91.4% des Gesamtaufkommens), das Tiefpunkt zur Mittagszeit lag bei 0.64B, und die Schlussauktion in der letzten halben Stunde war mit 1.96B die größte Handelsphase des Tages. Trotz der hohen Aktivität zu Handelsbeginn konzentrierte sich das Volumen am Ende auf den Börsenschluss.

Der Optionsmarkt

AbfrageOptions-Tape: Prints, Kontrakte, Call %, 0DTE-Anteil vs. Mittwoch, Top-Kontrakte
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) = '260709', 1, 0) AS is_0dte
            FROM global_markets.options_trades
            WHERE sip_timestamp >= '2026-07-09 00:00:00' AND sip_timestamp < '2026-07-10 00:00:00'
            GROUP BY ticker
            ORDER BY vol DESC
            LIMIT 3
        )
    ) AS top3,
    (
        SELECT round(toFloat64(argMax(close, window_start)), 2)
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY' AND window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00'
    ) AS spy_regular_close,
    (
        SELECT round(toFloat64(sum(size)) / 1e6, 2)
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-08 00:00:00' AND sip_timestamp < '2026-07-09 00:00:00'
    ) AS jul8_contracts_m,
    (
        SELECT round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260708') / sum(size), 1)
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-08 00:00:00' AND sip_timestamp < '2026-07-09 00:00:00'
    ) AS jul8_pct_0dte
SELECT
    round(count() / 1e6, 2) AS option_prints_m,
    round(toFloat64(sum(size)) / 1e6, 2) AS contracts_m,
    jul8_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) = '260709') / sum(size), 1) AS pct_0dte,
    jul8_pct_0dte,
    spy_regular_close,
    top3.1[1] AS top1_und, top3.2[1] AS top1_strike, top3.3[1] AS top1_type,
    round(toFloat64(top3.4[1]) / 1e3, 1) AS top1_contracts_k, top3.5[1] AS top1_avg_px, top3.6[1] AS top1_is_0dte,
    top3.1[2] AS top2_und, top3.2[2] AS top2_strike, top3.3[2] AS top2_type, top3.6[2] AS top2_is_0dte,
    top3.1[3] AS top3_und, top3.2[3] AS top3_strike, top3.3[3] AS top3_type, top3.6[3] AS top3_is_0dte,
    round(toFloat64(top3.2[1]) - spy_regular_close, 2) AS top1_moneyness
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-09 00:00:00' AND sip_timestamp < '2026-07-10 00:00:00'

Das Handelsvolumen umfasste 9.99M Prints und 58.85M Kontrakte – weniger als die 63.26M vom Mittwoch. Calls machten 58% des Volumens aus, während der Anteil der 0DTE-Optionen auf 28.7% von 38.7% sank. Die drei aktivsten Kontrakte waren allesamt SPY-Calls mit derselben Laufzeit – der 751C (846.6K Kontrakte, durchschnittlich $0.526), der 752C und der 750C – eine Staffelung um den SPY-Schlusskurs von $751.64 (0DTE-Optionen bietet eine Übersicht zum Produkt).

Absicherung oder Wette? Eine Absicherung kauft Strikes aus dem Geld; eine Wette kauft die gewünschte Seite.

AbfrageSPY Same-Day (0DTE) Optionen: Kontrakte nach Strike-Abstand zum Schlusskurs
Das exakte SQL hinter jeder Zahl
WITH (
    SELECT toFloat64(argMax(close, window_start))
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY' AND window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00'
) AS spy_close
SELECT
    multiIf(dist < -2, 'Strike >2% below close',
            dist < -0.5, 'Strike 0.5-2% below',
            dist <= 0.5, 'Strike within 0.5%',
            dist <= 2, 'Strike 0.5-2% above',
            'Strike >2% above close') AS strike_bucket,
    round(toFloat64(sumIf(size, option_type = 'C')) / 1e3, 1) AS call_contracts_k,
    round(toFloat64(sumIf(size, option_type = 'P')) / 1e3, 1) AS put_contracts_k,
    round(100.0 * sumIf(size, option_type = 'C') / sum(size), 1) AS call_share_pct
FROM (
    SELECT option_type, size, (toFloat64(strike_price) / spy_close - 1) * 100 AS dist
    FROM global_markets.options_trades
    WHERE sip_timestamp >= '2026-07-09 00:00:00' AND sip_timestamp < '2026-07-10 00:00:00'
      AND underlying_symbol = 'SPY'
      AND substring(ticker, length(ticker) - 14, 6) = '260709'
)
GROUP BY strike_bucket
ORDER BY min(dist)

Das Volumen der Optionen mit derselben Laufzeit lag im Geld: 3768.9k Calls und 2563.3k Puts innerhalb einer halben Prozentspanne zum Schlusskurs (59.5% Calls). Die Out-of-the-money-Optionen (Wings) waren nach Richtung aufgeteilt – unter dem Schlusskurs 1356.5k Puts gegenüber 255.4k Calls (1.2% Call-Anteil tiefer im Geld); über dem Schlusskurs entfielen 91.6% auf einen deutlich kleineren Topf von 29.1k. Das Volumen der Wings konzentrierte sich auf Abwärts-Strikes, wo Absicherung gekauft wird: eine Staffelung im Geld, keine Aufwärts-Staffelung.

Das Quote-Tape

AbfrageAktien NBBO-Update-Count: 9. Juli vs. 8. Juli, inkl. Ticker-Updates (Millionen)
Das exakte SQL hinter jeder Zahl
SELECT
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-09')) / 1e6, 2) AS jul9_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-08')) / 1e6, 2) AS jul8_updates_m,
    round((countIf(toDate(sip_timestamp) = toDate('2026-07-09')) / countIf(toDate(sip_timestamp) = toDate('2026-07-08')) - 1) * 100, 1) AS day_over_day_pct,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-09') AND ticker = 'SPY') / 1e6, 2) AS jul9_spy_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-09') AND ticker = 'QQQ') / 1e6, 2) AS jul9_qqq_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-09') AND ticker = 'NVDA') / 1e6, 2) AS jul9_nvda_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-09') AND ticker = 'TSLA') / 1e6, 2) AS jul9_tsla_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-09') AND ticker = 'MU') / 1e6, 2) AS jul9_mu_updates_m
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-07-08 00:00:00' AND sip_timestamp < '2026-07-10 00:00:00'

Die auffälligste Tatsache des Tages: 383.44M NBBO-Updates im Aktien-Tape, -27.7% im Vergleich zum Mittwoch. Die Volatilität zeigte sich in den Preisniveaus, nicht in der Handelsaktivität. QQQ verzeichnete mit 4.35M die meisten Updates unter den Einzelwerten, vor SPY mit 2.71M und NVDA mit 1.83M.

AbfrageSPY / QQQ / NVDA / TSLA / MU / SNDK / AVGO: Medianer RTH-Quoted 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-09 13:30:00' AND sip_timestamp < '2026-07-09 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

Der mittlere Quote-Spread von SPY lag bei 0.27 bps, QQQ bei 0.42 und NVDA bei 0.99 — gewöhnliche Werte. Die breiteren Ausreißer: MU bei 4.23 bps und SNDK bei 8.79 bps (der Bid-Ask-Spread ist die Kennzahl für diese Kosten).

AbfrageSPY RTH Durchschnittlicher Quoted Spread im Monatsvergleich
Das exakte SQL hinter jeder Zahl
SELECT
    round(anyIf(avg_spread_cents, d = toDate('2026-07-09')), 3) AS jul9_avg_spread_cents,
    arrayCount(x -> x < anyIf(avg_spread_cents, d = toDate('2026-07-09')), groupArrayIf(avg_spread_cents, d != toDate('2026-07-09'))) + 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
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
    FROM global_markets.cache_stocks_quotes
    WHERE ticker = 'SPY'
      AND sip_timestamp >= toDateTime('2026-06-08 00:00:00')
      AND sip_timestamp < toDateTime('2026-07-10 00:00:00')
      AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
    GROUP BY d
)

Der durchschnittliche Quote-Spread von SPY betrug 2.071 cents. Damit liegt er auf dem 10-ten Platz der letzten 22 Sitzungen, innerhalb eines Bereichs von 1.8092.865 cents: es gab keine Anzeichen von Stress im Quote, selbst bei der Eröffnung.

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-09 00:00:00' AND sip_timestamp < '2026-07-10 00:00:00') AS jul9_options_rows,
    (SELECT count() FROM global_markets.cache_stocks_quotes WHERE sip_timestamp >= '2026-07-09 00:00:00' AND sip_timestamp < '2026-07-10 00:00:00') AS jul9_stock_quote_rows
SELECT
    round(jul9_options_rows / 1e9, 2) AS jul9_options_bn,
    round(jul9_options_rows / jul9_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-09 13:30:00' AND sip_timestamp < '2026-07-09 20:00:00') / 1e6, 0) AS jul9_spy_options_m

Das Options-Quote-Tape verzeichnete 6.9 Milliarden NBBO-Updates — das entspricht dem 18-fachen des Aktien-Tapes, wobei allein der SPY-Basiswert 242M Updates aufwies.

Zinsen: der Bericht vom 9. Juli

AbfrageTreasury-Print-Status: Datensätze vom 9. Juli und die Kurve vom 8. Juli (Stand Erstellung)
Das exakte SQL hinter jeder Zahl
SELECT
    (SELECT count() FROM global_markets.treasury_yields WHERE date = '2026-07-09') AS jul9_print_rows,
    toString(any(date)) AS latest_print_date,
    round(toFloat64(any(yield_2_year)), 2) AS latest_2y_pct,
    round(toFloat64(any(yield_10_year)), 2) AS latest_10y_pct,
    round(toFloat64(any(yield_30_year)), 2) AS latest_30y_pct,
    round(toFloat64(any(yield_10_year)) - toFloat64(any(yield_2_year)), 2) AS latest_2s10s_pct
FROM global_markets.treasury_yields
WHERE date = '2026-07-09'

Der Bericht zu den US-Staatsanleihen vom 9. Juli wurde mit der üblichen Verzögerung im täglichen Rendite-File veröffentlicht — es handelt sich um die 1 Zeile in der Aufzeichnung. Die Zinskurve des Tages (2026-07-09): 2-jährige 4.16%, 10-jährige 4.54%, 30-jährige 5.05%, 2s10s 0.38 Punkte — die 2-jährige Rendite sank gegenüber dem Wert vom 8. Juli, während das lange Ende stabil blieb.

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-09'
    ) 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-09'
            )
            WHERE t != 'SPCX'
            GROUP BY t
        )
    ) AS top_news
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-09') AS ex_dividend_records,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date = '2026-07-09') AS splits_executed,
    (SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-09') AS reverse_splits,
    (SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-09') AS forward_splits,
    (SELECT countIf(form_type = '424B2') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-09') AS fil_424b2,
    (SELECT countIf(form_type = '4') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-09') AS fil_form4,
    (SELECT countIf(form_type = '8-K') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-09') AS fil_8k,
    (SELECT count() FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-09') 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,
    if(top_news.1 = 'NVDA', 1, 0) AS top_news_is_nvda

Ein routinemäßiger Kalender mit ungewöhnlichen Ereignissen: 127 Ex-Dividende Daten, 5 Rückwärts-Splits, 1 Vorwärts-Splits, 2979 SEC-Einreichungen (623 Form 4, 605 424B2, 149 8-K). Der Feed lieferte 184 Artikel über 3 Publisher; der am häufigsten behandelte Ticker war NVDA mit 20 Artikeln, gefolgt von 8.

On deck

From our own tables — facts about the next session, not forecasts.

AbfrageAusblick: Nächste Session, Ex-Dividend-Liste, SPY Expiry-Ladder und Short-Interest-Clock
Das exakte SQL hinter jeder Zahl
SELECT
    toString(min(d)) AS next_session_date,
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-10') AS next_session_holiday_rows,
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-10') AS ex_div_records_next,
    (SELECT countIf(ticker IN ('AAPL', 'MSFT', 'JNJ', 'KO', 'PG', 'XOM', 'CVX', 'JPM', 'WMT', 'PEP', 'HON', 'CAT'))
     FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-10') AS household_ex_div_next,
    (SELECT round(toFloat64(sum(size)) / 1e6, 2) FROM global_markets.options_trades
     WHERE sip_timestamp >= '2026-07-09 00:00:00' AND sip_timestamp < '2026-07-10 00:00:00'
       AND underlying_symbol = 'SPY' AND substring(ticker, length(ticker) - 14, 6) = '260710') AS spy_next_expiry_contracts_m,
    (SELECT round(toFloat64(sum(size)) / 1e6, 2) FROM global_markets.options_trades
     WHERE sip_timestamp >= '2026-07-09 00:00:00' AND sip_timestamp < '2026-07-10 00:00:00'
       AND underlying_symbol = 'SPY' AND substring(ticker, length(ticker) - 14, 6) = '260717') AS spy_monthly_expiry_contracts_m,
    (SELECT toString(max(settlement_date)) FROM global_markets.stocks_short_interest) AS latest_short_settlement,
    (SELECT count() FROM global_markets.stocks_short_interest WHERE settlement_date = '2026-07-15') AS jul15_short_rows
FROM (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY' AND window_start >= '2026-07-10 00:00:00' AND window_start < '2026-07-14 00:00:00'
)

The next session is 2026-07-10, 0 holiday rows against it: a normal Friday. 153 companies go ex-dividend that morning, 0 from our household-name checklist. Friday's SPY expiry is the heaviest forward one already traded — 1.66M contracts on July 9 versus 0.57M against the July monthly. Short-interest clock: latest settlement on file 2026-06-30, 0 rows yet filed for mid-July — FINRA publishes about eight business days after settlement (why short interest is two weeks old).

Die Sitzung, verifiziert

AbfrageSession-Verifizierung: Erster/letzter SPY-Bar ET, Regular-Bar-Count, Holiday-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-09 13:30:00' AND window_start < '2026-07-09 20:00:00') AS regular_session_bars,
    uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00') AS day_sessions,
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-09') AS jul9_holiday_rows,
    (SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-09' AND status = 'closed') AS next_closure_date,
    (SELECT concat(monthName(min(date)), ' ', toString(toDayOfMonth(min(date))), ', ', toString(toYear(min(date))))
     FROM global_markets.stocks_market_holidays WHERE date > '2026-07-09' AND status = 'closed') AS next_closure_label,
    (SELECT argMin(name, date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-09' AND status = 'closed') AS next_closure_name
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-09 00:00:00' AND window_start < '2026-07-10 00:00:00'

Eine vollständige reguläre Sitzung: erste SPY-Bar 04:00 ET, letzte 19:59 ET, 390 reguläre Minutenvorgaben, keine Feiertagszeile. Nächster Handelsschluss: Labor Day, September 7, 2026.

FAQ

Was am 9. Juli 2026 am Aktienmarkt passiert?

Alle Index-ETFs schlossen höher — QQQ +1.67%, IWM +1.29%, SPY +0.85%, DIA +0.29%, 71.5% der liquiden Aktien stiegen. Titel aus dem Bereich Chip-Equipment verzeichneten ein Gap nach oben, das sich wieder ausglich; Mega-Caps verzeichneten ein Gap nach unten und erholten sich.

Warum stiegen Chip-Equipment-Aktien wie KLAC und LRCX am 9. Juli 2026?

Unsere Daten nennen keinen Grund: Es gibt weder Artikel noch SEC-Filings für KLAC, LRCX, TER oder WDC zwischen dem Schlusskurs am Mittwoch und Donnerstag. Die Bewegung war bereits im Pre-Market vor 9:30 Uhr ET eingepreist.

Warum fiel NVDA, während der Chip-Sektor zulegte?

NVDA schloss bei -0.68%, während 12 von vierzehn Chip-Werten im Plus schlossen. Der Ticker verzeichnete kein Gap (0.16% zur Eröffnung) und war mit 20 Artikeln der am häufigsten abgedeckte Ticker — eine Rekord-Koinzidenz, deren Ursache nicht in diesen Daten enthalten ist.

War der 9. Juli 2026 ein ungewöhnlicher Tag für den Markt?

Auf Index-Ebene nicht: Die Bewegung des QQQ rangierte bei 10 von 21 vorangegangenen Sitzungen hinsichtlich der Größe, der durchschnittliche Spread des SPY lag bei 10 von 22. Die Dispersion innerhalb des Marktes betrug -6.25 Punkte zwischen dem besten und dem schlechtesten Sektor-Korb.

Datenhinweise

Die regulären Handelszeiten sind 13:3020:00 UTC (9:30 am–4:00 pm ET); das Premarket-Panel nutzt 08:00–13:30 UTC. Die acht Sektor-Warenkörbe sind kuratiert und gleichgewichtet — jeweils drei liquide Titel, wobei jeder Ticker aus der SQL des jeweiligen Panels gelistet wird. Dies ist eine festgelegte Methode und keine Klassifizierung durch einen Drittanbieter: drei Titel repräsentieren den Sektor, nicht ein einzelner Titel steht für einen ganzen Sektor. Das Catalyst-Panel berücksichtigt ausschließlich unseren News-Feed und den EDGAR-Index.

Vollständige Datenhinweise

Die Panels pro Ticker sind alphabetisch sortiert, sodass sich jeder Textverweis auf eine feste Zeile bezieht; Leaderboards sind nach dem Wert sortiert, wobei jeder Positionsanspruch begrenzt ist. Die Treasury-Daten und die Abrechnung des Short-Interest Mitte Juli sind auf null Zeilen begrenzt — deren Erscheinen erfordert eine Überarbeitung dieses Beitrags.

Methodik

  • Quellen: Jedes Panel nutzt eigene SQL-Tabellen für die Auswertung — Minuten-Aggregatdaten, NBBO-Caches für Aktien und Optionen, Options-Handelsdaten, unser News-Feed, der EDGAR-Index, Dividenden, Short Interest, Feiertage und Staatsanleihen-Renditen.
  • Konventionen: In WHERE-Klauseln werden UTC-Zeitstempel verwendet, in SELECT-Klauseln nur ET-Labels; gap = Eröffnung der ersten regulären Kerze ÷ Schlusskurs der vorangegangenen regulären Sitzung − 1; Werte der vorangegangenen Sitzung oder Vorwoche werden direkt in der Abfrage berechnet und nicht aus früheren Berichten übernommen. Datenbestand (Warehouse) Stand: 13. Juli 2026.