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

Marktrückblick 7. Juli 2026 Zahlen

Halbleiter fallen stark, doch NVDA bleibt im Plus. Bei zwei Verlierern auf einen Gewinner verzeichnete der SPY den engsten Spread seit einem Monat.

Dienstag, der 7. Juli 2026, gab die Wachstumsrallye von Montags Erholung vollständig ab und übertraf diesen Verlust sogar: Der QQQ schloss bei -1.82% und löschte damit die Gewinne vom Montag vollständig aus, während der DIA bei -0.29% lag. Im Marktverlauf gab es zwei Verlierer auf einen Gewinner: 4034 sinkende Titel standen 2091 steigenden Titeln gegenüber. Die entscheidende Entwicklung war ein Einbruch bei Halbleitern, der um ein Vielfaches größer war als der Index – ein Sektor, aus dem einer der Branchenriesen ausstieg. Jeder unten aufgeführte Wert stammt aus einer gespeicherten Abfrage – erweitern Sie jedes Panel für das exakte SQL.

Die Ergebnistabelle

Jeder Vergleich bezieht sich auf die letzte Minuten-Bar der regulären Sitzung vom 7. Juli im Vergleich zum Montag, den 6. Juli – aufeinanderfolgende Handelstage.

AbfrageSPY / QQQ / DIA / IWM — 7. Juli vs. Schlusskurs am 6. 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-06 13:30:00' AND window_start < '2026-07-06 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-07 13:30:00' AND window_start < '2026-07-07 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 AS shares_traded_m
FROM sess s
JOIN prior p ON s.ticker = p.ticker
ORDER BY s.ticker

Der -1.82% von QQQ führte die vier Index-ETFs nach unten; SPY schloss mit -0.48%, IWM mit -0.9%, und der Wert von DIA war mit -0.29% am geringsten. Die Differenz zwischen Gap und Trend zeigt eine Diskrepanz der Marktbewegungen zur Eröffnung: Der nächtliche Gap von QQQ betrug -1.17% und die Kursbewegung von der Eröffnung bis zum Schluss lag bei -0.65% – der Gap verursachte den Großteil des Verlusts – während DIA um 0.47% nach oben sprang und dennoch im Minus schloss, mit einer Kursbewegung von der Eröffnung bis zum Schluss von -0.76%. Die Marktführung hat sich seit Donnerstag in jeder Sitzung geändert: DIA führte am Donnerstag, QQQ führte am Montag, und DIA führte erneut am Dienstag.

War der Tag ungewöhnlich?

AbfrageQQQ und SPY: 7. Juli im Vergleich zum vorangegangenen Monat (Rang 1 = größte absolute Bewegung)
Das exakte SQL hinter jeder Zahl
SELECT
    round(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-07')), 2) AS qqq_close_over_close_pct,
    arrayCount(x -> x > abs(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-07'))), groupArrayIf(abs(cc_pct), ticker = 'QQQ' AND d != toDate('2026-07-07'))) + 1 AS qqq_abs_move_rank,
    countIf(ticker = 'QQQ') AS qqq_sessions_compared,
    round(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-07')), 2) AS spy_open_to_close_pct,
    arrayCount(x -> x > abs(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-07'))), groupArrayIf(abs(oc_pct), ticker = 'SPY' AND d != toDate('2026-07-07'))) + 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-04 00:00:00')
          AND window_start < toDateTime('2026-07-08 00:00:00')
          AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
        GROUP BY ticker, d
    )
)
WHERE isFinite(cc_pct)

Auf Indexebene nicht besonders. Die Schlusskursbewegung von QQQ von -1.82% liegt in ihrer absoluten Größe an 9 von 21 vorangegangenen Sitzungen. Die Open-to-Close-Bewegung von SPY von -0.34% liegt an 15 von 21 — ein Monat, der durch die starken Schwankungen Ende Juni eine hohe Messlatte setzt. Auffällig war die Dispersion an diesem 7. Juli.

Marktdurchdringung: zwei fallende auf einen steigenden

AbfrageSteigende vs. fallende Ticker mit mindestens 1 Mio. $ Handelsvolumen am 7. Juli
Das exakte SQL hinter jeder Zahl
WITH per_ticker AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-07 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-07 00:00:00')) AS day_close,
        sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-07 00:00:00') AS day_dollar_volume
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE (window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00')
       OR (window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00')
    GROUP BY ticker
)
SELECT
    countIf(day_close > prior_close AND day_dollar_volume >= 1000000) AS advancers,
    countIf(day_close < prior_close AND day_dollar_volume >= 1000000) AS decliners,
    countIf(day_close = prior_close AND day_dollar_volume >= 1000000) AS unchanged,
    countIf(day_dollar_volume >= 1000000) AS liquid_tickers,
    count() AS tickers_traded_both_sessions,
    count() - countIf(day_dollar_volume >= 1000000) AS dropped_by_liquidity_filter,
    round(100.0 * countIf(day_close > prior_close AND day_dollar_volume >= 1000000)
        / countIf(day_dollar_volume >= 1000000), 1) AS advancer_pct
FROM per_ticker
WHERE prior_close > 0 AND day_close > 0

2091 Zunahmen, 4034 Abnahmen, 59 unverändert — 33.8% des liquiden Handelsvolumens stieg, Montags Gewinne kehrten sich um. Der Filter berücksichtigt 5276 von 11460 Ticker mit einem Handelsvolumen unter einer Million Dollar über zwei Sitzungen hinweg.

The chip complex broke — except its biggest names

The selling concentrated in semiconductors: the chipmakers, the equipment names that supply them, the storage complex around them, and the leveraged ETFs wrapped on top. Co-movement and magnitude reported below; the data does not say why.

AbfrageChip-Sektor am 7. Juli: Veränderung zum Schlusskurs vom Montag, Range-Timing und Dollar-Volumen
Das exakte SQL hinter jeder Zahl
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-07 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-07 00:00:00')) AS day_close,
        maxIf(toFloat64(high), window_start >= '2026-07-07 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-07-07 00:00:00') AS day_low,
        argMinIf(window_start, (toFloat64(low), toInt64(toUnixTimestamp(window_start))), window_start >= '2026-07-07 00:00:00') AS low_bar,
        argMaxIf(window_start, (toFloat64(high), -toInt64(toUnixTimestamp(window_start))), window_start >= '2026-07-07 00:00:00') AS high_bar,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-07 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-06 13:30:00' AND window_start < '2026-07-06 20:00:00')
        OR (window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 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,
    formatDateTime(toTimeZone(high_bar, 'America/New_York'), '%H:%i') AS day_high_et,
    formatDateTime(toTimeZone(low_bar, 'America/New_York'), '%H:%i') AS day_low_et,
    toHour(toTimeZone(high_bar, 'America/New_York')) * 60 + toMinute(toTimeZone(high_bar, 'America/New_York')) AS high_minute_et,
    toHour(toTimeZone(low_bar, 'America/New_York')) * 60 + toMinute(toTimeZone(low_bar, 'America/New_York')) AS low_minute_et,
    round((day_high / day_low - 1) * 100, 2) AS range_pct,
    day_dollar_bn
FROM per_name
ORDER BY ticker

Teradyne (-9.63%) and Intel (-9.59%) lost nearly a tenth of their value, with Marvell (-7.41%), KLA (-7.23%), Lam Research (-6.8%) and AMD (-6.41%) close behind. The memory-and-storage names that half-bounced on Monday rolled straight back over: SanDisk -7.1% across a 10.36% high-to-low range, Western Digital -7.81%, Seagate -4.84%, and MU -4.61% — MU turning over $41.6 billion of stock, more than the other three storage names combined (the MU deep-dive carries the backstory).

The sector's two giants sat it out: NVDA closed green at 0.67% and Broadcom finished near flat at -0.83% — a sector-wide red day, minus its largest members (NVDA's June deep-dive).

The timing was synchronized — one morning air pocket: TER, LRCX and MU printed their session lows at 10:41, 10:41 and 10:41 ET, with SanDisk, Marvell, KLA, AVGO and SOXL inside the same minutes (the panel carries each stamp), and SOXS, the 3x inverse semiconductor ETF, printed its session high at 10:42 — the stretch upside down. Intel kept falling long after the rest stabilized, its low arriving at 15:18. The leveraged wrappers translate the magnitude: SOXL -15.15% against SOXS +15.87%.

Die andere Seite des Marktes

Ein Verhältnis von zwei zu eins im Minus lässt ein grünes Drittel bestehen. Diese Werte stiegen, während die Halbleiter fielen:

AbfrageGewinner bei fallenden Chips — und der stärkste Einzelwert des Tages
Das exakte SQL hinter jeder Zahl
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-07 00:00:00')) AS prior_close_raw,
        toFloat64(argMinIf(open, window_start, window_start >= '2026-07-07 00:00:00')) AS day_open_raw,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-07 00:00:00')) AS day_close_raw,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-07 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-06 13:30:00' AND window_start < '2026-07-06 20:00:00')
        OR (window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 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

Energie und Gesundheitswesen trieben die Gewinnerliste: Exxon +3.78%, Chevron +3.47%, Johnson & Johnson +3.07%, Eli Lilly +2.75%, UnitedHealth +2.41%. Die beiden Megacaps in dieser Auswahl entwickelten sich unterschiedlich: META stieg um +2.52%, während TSLA den Großteil des einseitigen Anstiegs vom Montag bei -4.02% wieder abgab. Und die auffälligste Einzelnotiz im Markt: Crinetics Pharmaceuticals (CRNX) schloss mit +98.79% bei einem Handelsvolumen von $4.19 Milliarden, was fast einer Verdopplung entspricht — die gesamte Bewegung erfolgte durch einen Overnight-Gap (98.91% zur Eröffnung; die reguläre Sitzung bewegte den Kurs nur um -0.06%). Dies ist die Art der Neubewertung zwischen den Sitzungen, die im Pre-Market stattfindet. Die Daten geben keinen Grund dafür an.

Handelsvolumen nach Werten

AbfrageVolumen-Leader: Top 6 nach Handelsvolumen in $, Top 4 nach Anzahl der Aktien (ein Duplikat ausgeschlossen)
Das exakte SQL hinter jeder Zahl
SELECT leaderboard, ticker, dollar_volume_bn, shares_m,
    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-07 13:30:00' AND window_start < '2026-07-07 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-07 13:30:00' AND window_start < '2026-07-07 20:00:00'
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker
    ORDER BY shares_m DESC
    LIMIT 4
)
ORDER BY leaderboard ASC, if(leaderboard = 'by dollars traded', dollar_volume_bn, shares_m) DESC

MU führte das Handelsvolumen mit $41.6 Milliarden an. Damit holte der Wert den Spitzenplatz eine Sitzung nach dem Verlust der Führungsposition zurück. Hinter MU folgten SPY ($28.68 Milliarden) und QQQ ($26.54 Milliarden). Drei weitere Halbleiterwerte — NVDA ($19.95 Milliarden), SNDK ($19.73 Milliarden) und INTC ($13.82 Milliarden) — vervollständigten die Top sechs. Die Konzentration des Handelsvolumens auf Einzelwerte wird durch relatives Volumen angezeigt.

Bei den Aktien verzeichnete SOXS ein Handelsvolumen von 566.3 Millionen Anteilen. Der 3x inverse Semiconductor ETF führt die Liste zum dritten Sitzung in Folge an (Montag und Donnerstag waren die vorangegangenen Tage), diesmal an dem Tag, an dem sein Sektor tatsächlich einbrach. CPOP zeigt das Gegenbeispiel: 161.3 Millionen Anteile ergaben ein Volumen von nur $0.02 Milliarden — hohe Stückzahlen deuten nicht zwangsläufig auf hohe Volumina bei günstigen Aktien hin. Basis: 7. Juli, reguläre Handelszeiten; eine Liste mit wiederverwendetem Ticker wurde zur Verifizierung des Unternehmens ausgeschlossen — siehe Belege.

Der Verlauf der Sitzung

AbfrageGehandelte Aktien pro 30-Minuten-Intervall, reguläre Handelszeiten (Milliarden)
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-07 13:30:00' AND window_start < '2026-07-07 20:00:00'
GROUP BY et_time
ORDER BY et_time

2 Milliarden Aktien in der ersten halben Stunde, ein Tiefpunkt von 0.64 Milliarden bei 13:30 und 2.14 Milliarden bis zum Schluss um 15:30 — das typische U-förmige Muster, mit dem höchsten Volumen zum Handelsschluss.

Der Optionsmarkt

AbfrageGesamter Optionsmarkt des Tages: Volumen, Call-Anteil, 0DTE und die zwei Kontrakte am SPY-Schlusskurs
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) = '260707', 1, 0) AS is_0dte
            FROM global_markets.options_trades
            WHERE sip_timestamp >= '2026-07-07 00:00:00' AND sip_timestamp < '2026-07-08 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-07 13:30:00' AND window_start < '2026-07-07 20:00:00'
    ) AS spy_regular_close
SELECT
    round(count() / 1e6, 2) AS option_prints_m,
    round(toFloat64(sum(size)) / 1e6, 2) AS 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) = '260707') / sum(size), 1) AS same_day_expiry_pct,
    round(toFloat64(sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260707')) / 1e6, 2) AS same_day_contracts_m,
    round(toFloat64(sumIf(size, underlying_symbol = 'SPY')) / 1e6, 2) AS spy_contracts_m,
    round(toFloat64(sumIf(size, underlying_symbol = 'QQQ')) / 1e6, 2) AS qqq_contracts_m,
    round(toFloat64(sumIf(size, underlying_symbol = 'INTC')) / 1e6, 2) AS intc_contracts_m,
    top2.1[1] AS top_contract_underlying,
    top2.2[1] AS top_contract_strike,
    top2.3[1] AS top_contract_type,
    if(top2.3[1] = 'C', 1, 0) AS top_contract_is_call,
    top2.4[1] AS top_contract_volume,
    top2.5[1] AS top_contract_avg_price,
    round(top2.2[1] - spy_regular_close, 2) AS top_strike_minus_spy_close,
    top2.1[2] AS second_contract_underlying,
    top2.2[2] AS second_contract_strike,
    top2.3[2] AS second_contract_type,
    if(top2.3[2] = 'P', 1, 0) AS second_contract_is_put,
    top2.4[2] AS second_contract_volume,
    top2.5[2] AS second_contract_avg_price,
    round(spy_regular_close - top2.2[2], 2) AS spy_close_minus_second_strike,
    top2.6[1] + top2.6[2] AS both_top_contracts_same_day,
    spy_regular_close AS spy_close
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-07 00:00:00' AND sip_timestamp < '2026-07-08 00:00:00'

Es wurden 61.13 Millionen Kontrakte über 10.6 Millionen Transaktionen gehandelt – ein Volumen in der Größenordnung von Montag – und Calls machten trotz eines Kursrückgangs weiterhin 55.6% des Volumens aus. Kontrakte mit heutigem Verfallstag machten 31.2% des Volumens aus (19.08 Millionen Kontrakte) – der 0DTE-Anteil eines gewöhnlichen Dienstags. Die zwei aktivsten Kontrakte des Tages lagen um den Schlusskurs herum; beide waren am selben Tag fällige SPY-Basispreise: Der $749 Call (873438 Kontrakte zu durchschnittlich $0.647) endete $1.34 aus dem Geld, und der $747 Put (785834 Kontrakte zu $0.88) endete $0.66 auf der anderen Seite. Der SPY-Schlusskurs von 747.66 lag zwischen den beiden größten Wetten des Tages, und beide verfielen wertlos.

Der Quote-Tape

Unter jedem Preis auf dieser Seite befindet sich der Quote-Stream – das National Best Bid and Offer, das für jede gelistete Aktie kontinuierlich neu bewertet wird. Dies ist der am schwersten zu beschaffende Datensatz in diesem Warehouse. Er wird hier in jeder Session gemessen, ob gewöhnlich oder nicht.

AbfrageGesamter Equity-NBBO-Stream: 7. Juli vs. 7. Juni Update-Counts
Das exakte SQL hinter jeder Zahl
SELECT
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-07')) / 1e6, 2) AS jul7_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-06')) / 1e6, 2) AS jul6_updates_m,
    round((countIf(toDate(sip_timestamp) = toDate('2026-07-07')) / countIf(toDate(sip_timestamp) = toDate('2026-07-06')) - 1) * 100, 1) AS day_over_day_pct,
    toHour(toTimeZone(maxIf(sip_timestamp, toDate(sip_timestamp) = toDate('2026-07-07')), 'America/New_York')) * 60
        + toMinute(toTimeZone(maxIf(sip_timestamp, toDate(sip_timestamp) = toDate('2026-07-07')), 'America/New_York')) AS jul7_last_quote_et_minute,
    round(countIf(sip_timestamp >= '2026-07-07 19:00:00' AND sip_timestamp < '2026-07-07 20:00:00') / 1e6, 2) AS jul7_close_hour_updates_m
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-07-06 00:00:00' AND sip_timestamp < '2026-07-08 00:00:00'

Der Equity-Tape verzeichnete am 7. Juli 492.76 Millionen NBBO-Updates – 25.7% mehr als die 391.96 Millionen vom Montag. Es gab mehr Re-Quoting, nicht weitere Spreads:

AbfrageTouch durch die Luftlücke: Median-Spread und Quote-Rate, 10:36–10:48 ET vs. Midday-Kontrollwert (je 12 Min.)
Das exakte SQL hinter jeder Zahl
SELECT
    ticker,
    round(quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00'), 2) AS pocket_spread_bps,
    round(quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00'), 2) AS midday_spread_bps,
    round(quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00')
        - quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00'), 2) AS spread_delta_bps,
    round(countIf(sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00') / 1e3, 1) AS pocket_updates_k,
    round(countIf(sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00') / 1e3, 1) AS midday_updates_k,
    round(countIf(sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00') / countIf(sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00'), 1) AS quote_rate_ratio,
    round(count() / 1e6, 2) AS session_updates_m,
    countIf(bid_price <= 0 OR ask_price <= 0 OR bid_price > ask_price) AS dropped_invalid_quotes
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('AMD', 'INTC', 'MU', 'NVDA', 'QQQ', 'SNDK', 'SOXL', 'SOXS', 'SPY', 'WDC')
  AND sip_timestamp >= '2026-07-07 13:30:00' AND sip_timestamp < '2026-07-07 20:00:00'
GROUP BY ticker
ORDER BY ticker

An den Tiefpunkten am Morgen wurden die geprüften Namen mit Vielfachen ihrer Mittagsrate neu bewertet – MU 3.4x, SanDisk 4.1x, AMD 4.6x – und der bid-ask spread bewegte sich kaum: Die mediane Breite von MU betrug 5.02 bps im Tief gegenüber 4.81 zur Mittagszeit, NVDA 1.04 gegenüber 1.01, und der von SPY bewegte sich gar nicht (0 bps Änderung bei einem 0.27 bps Touch). Die zwei Namen, die eine echte Spread-Strafe zahlten, waren AMD (+2.6 bps) und Intel (+0.95) – Intel war der einzige Name, der nach dem Tief weiter fiel – während das gehebelte Paar am Boden tatsächlich enger wurde (SOXL -2.59 bps, SOXS -1.49). Ein Liquiditätsvakuum äußert sich durch weite Quotes und Stille; dies war das Gegenteil – ein Quote-Sturm bei gleichbleibender Volatilität. Die Crossing-Kosten blieben dennoch namensabhängig: SOXS notierte am Boden mit 19.59 bps Breite gegenüber NVDA mit 1.04.

AbfrageSPY Update-gewichteter Durchschnitts-Spread: 7. Juli im Vergleich zum vorangegangenen Monat (Rang 1 = engster)
Das exakte SQL hinter jeder Zahl
SELECT
    round(anyIf(avg_spread_cents, d = toDate('2026-07-07')), 3) AS jul7_avg_spread_cents,
    arrayCount(x -> x < anyIf(avg_spread_cents, d = toDate('2026-07-07')), groupArrayIf(avg_spread_cents, d != toDate('2026-07-07'))) + 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-08 00:00:00')
      AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
    GROUP BY d
)

Und die gewöhnliche Prüfung, die dieser Abschnitt jede Session durchführt: Gemessen am update-gewichteten durchschnittlichen Quote-Spread war der 7. Juli die engste Session für SPY im letzten Monat1.809 Cent, Rang 1 von 21, gegenüber einem Monat, der eine maximale Breite von 2.865 Cent erreichte. Ein zwei-zu-eins roter Tape, der bei der engsten Index-Berührung des Monats notiert, ist eine Tatsache, die nur der Quote-Stream klären kann.

AbfrageOptions-NBBO-Stream: 7. Juli vs. 6. Juli sowie vs. Equity-Quotes derselben Session
Das exakte SQL hinter jeder Zahl
WITH
    (
        SELECT count()
        FROM global_markets.cache_options_quotes
        WHERE toYYYYMMDD(sip_timestamp) = 20260707
    ) AS jul7_option_rows,
    (
        SELECT count()
        FROM global_markets.cache_options_quotes
        WHERE toYYYYMMDD(sip_timestamp) = 20260706
    ) AS jul6_option_rows,
    (
        SELECT count()
        FROM global_markets.cache_stocks_quotes
        WHERE toYYYYMMDD(sip_timestamp) = 20260707
    ) AS jul7_stock_quote_rows
SELECT
    jul7_option_rows AS jul7_option_quote_rows,
    round(jul7_option_rows / 1e9, 2) AS jul7_option_quote_updates_bn,
    round(jul6_option_rows / 1e9, 2) AS jul6_option_quote_updates_bn,
    round((jul7_option_rows / jul6_option_rows - 1) * 100, 1) AS day_over_day_pct,
    round(jul7_stock_quote_rows / 1e6, 2) AS jul7_stock_quote_updates_m,
    round(jul7_option_rows / jul7_stock_quote_rows, 1) AS jul7_option_to_stock_ratio

Der Options-Quote-Stream ist noch größer und stellt den größten Datensatz in diesem Warehouse dar. Der 7. Juli verzeichnete 8.69 Milliarden Options-NBBO-Updates, was das 17.6-fache der Größe des gesamten Aktien-Quote-Tapes derselben Session entspricht (492.76 Millionen Updates). Der Options-Tape vom Montag umfasste 6.49 Milliarden, sodass der Options-Stream im Vergleich zur vorherigen Session um 34% expandierte, parallel zur Expansion des Equity-Streams um 25.7%.

AbfrageSPY Options-Quotes am 7. Juli: Gesamte Wurzel und At-the-money Touch durch die Luftlücke vs. Midday-Kontrollwert
Das exakte SQL hinter jeder Zahl
WITH
    (
        SELECT count()
        FROM global_markets.cache_stocks_quotes
        WHERE toYYYYMMDD(sip_timestamp) = 20260707
    ) AS jul7_stock_quote_rows,
    (
        SELECT round(toFloat64(avg(close)), 2)
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND window_start >= '2026-07-07 14:36:00' AND window_start < '2026-07-07 14:48:00'
    ) AS spy_pocket_price,
    (
        SELECT round(toFloat64(avg(close)), 2)
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND window_start >= '2026-07-07 17:30:00' AND window_start < '2026-07-07 17:42:00'
    ) AS spy_midday_price
SELECT
    round(count() / 1e6, 2) AS spy_option_updates_m,
    round(100.0 * count() / jul7_stock_quote_rows, 1) AS pct_of_whole_equity_quote_tape,
    uniqExact(ticker) AS spy_contracts_quoted,
    round(countIf(substring(ticker, -15, 6) = '260707') / 1e6, 2) AS same_day_updates_m,
    spy_pocket_price AS spy_price_in_pocket,
    spy_midday_price AS spy_price_midday,
    round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price),
        bid_price > 0 AND ask_price >= bid_price
        AND substring(ticker, -15, 6) = '260707'
        AND abs(toFloat64(toUInt32OrZero(substring(ticker, -8))) / 1000 - spy_pocket_price) <= 2
        AND sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00'), 3) AS pocket_atm_spread_dollars,
    round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price),
        bid_price > 0 AND ask_price >= bid_price
        AND substring(ticker, -15, 6) = '260707'
        AND abs(toFloat64(toUInt32OrZero(substring(ticker, -8))) / 1000 - spy_midday_price) <= 2
        AND sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00'), 3) AS midday_atm_spread_dollars,
    round(pocket_atm_spread_dollars - midday_atm_spread_dollars, 3) AS atm_spread_delta_dollars,
    round(countIf(substring(ticker, -15, 6) = '260707'
        AND abs(toFloat64(toUInt32OrZero(substring(ticker, -8))) / 1000 - spy_pocket_price) <= 2
        AND sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00') / 1e3, 1) AS pocket_atm_updates_k,
    round(countIf(substring(ticker, -15, 6) = '260707'
        AND abs(toFloat64(toUInt32OrZero(substring(ticker, -8))) / 1000 - spy_midday_price) <= 2
        AND sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00') / 1e3, 1) AS midday_atm_updates_k,
    round(pocket_atm_updates_k / midday_atm_updates_k, 1) AS atm_quote_rate_ratio,
    countIf(NOT (bid_price > 0 AND ask_price >= bid_price)
        AND substring(ticker, -15, 6) = '260707') AS dropped_invalid_same_day_quotes
FROM global_markets.cache_options_quotes
WHERE ticker >= 'O:SPY26' AND ticker < 'O:SPY27'
  AND sip_timestamp >= '2026-07-07 13:30:00' AND sip_timestamp < '2026-07-07 20:00:00'
HAVING pocket_atm_updates_k > 0 AND midday_atm_updates_k > 0

Allein die Kontrakte mit Fälligkeit 2026 beanspruchten 327.55 Millionen dieser Updates während der regulären Handelszeiten, verteilt auf 9116 gelistete Kontrakte. Das entspricht 66.5% dessen, was der gesamte Aktienmarkt am selben Tag notierte, bezogen auf ein einziges Underlying. Die Kontrakte mit Fälligkeit am selben Tag, die den 0DTE-Tape ausmachen, machen 13.61 Millionen davon aus.

Während der zwölf Minuten des morgendlichen Liquiditätsvakuums notierten Near-the-money-Kontrakte mit Fälligkeit am selben Tag eine mediane Breite von $0.01, exakt dem Wert, den sie zur Mittagszeit notierten ($0.01, eine Differenz von 0). Die Quote-Rate für dieses Paar betrug 3x: 191.1tausend Updates an den Tiefpunkten gegenüber 64tausend zur Mittagszeit. Der Options-Touch verhielt sich wie der Aktien-Touch. Er hielt seine Breite, während die Quote-Maschinerie auf Hochtouren lief. Near-the-money bedeutet einen Strike innerhalb von $2 zum durchschnittlichen Preis von SPY im selben Zeitfenster; die Tabelle gibt beide Preise an (746 im Tief, 749.08 zur Mittagszeit).

Zinsen: Die Zinskurve sank parallel zu den Wachstumsdaten

AbfrageTreasury-Kurve: 7. Juli vs. 6. Juli (nur verfügbare Laufzeiten)
Das exakte SQL hinter jeder Zahl
SELECT
    t.1 AS curve_point,
    round(t.2, 2) AS jul7_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-07') AS d,
         (SELECT * FROM global_markets.treasury_yields WHERE date = '2026-07-06') AS p
)

US-Treasuries verzeichneten Verluste parallel zu den Wachstumsdaten. Die 1-Jahres-Rendite stieg um 11 Basispunkte auf 4.06%, die 10-jährige um 7 auf 4.55% und die 30-jährige um 6 auf 5.05% — damit über der Fünf-Prozent-Marke. Der 2s10s spread blieb bei 0.36 Prozentpunkten (eine Änderung von 1 Basispunkten): eine weitgehend parallele Bewegung ohne Umgestaltung der Kurvenform.

Der Kalender des Tages

AbfrageUnternehmenskalender und Informationsfluss vom 7. Juli in einer Zeile
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-07'
    ) AS news,
    (
        SELECT (argMax(t, n), 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-07'
            )
            WHERE t != 'SPCX'
            GROUP BY t
        )
    ) AS top_news
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-07') AS ex_dividend_records,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date = '2026-07-07') AS splits_executed,
    (SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-07') AS reverse_splits,
    (SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-07') AS forward_splits,
    (SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-07') AS ipos_listed,
    (SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-07') AS sec_filings,
    (SELECT uniqExactIf(accession_number, form_type = '4') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-07') AS insider_form4_filings,
    (SELECT uniqExactIf(accession_number, form_type = '8-K') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-07') AS filings_8k,
    news.1 AS news_articles,
    news.2 AS news_publishers,
    top_news.1 AS most_covered_ticker,
    if(top_news.1 = 'NVDA', 1, 0) AS most_covered_is_nvda,
    top_news.2 AS most_covered_articles,
    top_news.3 AS most_covered_lead_over_next,
    (SELECT countIf(has(tickers, 'CRNX')) FROM global_markets.stocks_news
     WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-07-07') AS crnx_articles

79 Dividendenstichtage waren ex-dividend, 7 Aktiensplits wurden durchgeführt — 5 davon waren Reverse Splits, also Konsolidierungen unter einem Dollar, die unbereinigte Kursgewinne im dreistelligen Bereich vortäuschen, gegenüber 2 Forward-Daten — und 1 neue Börsennotierungen kamen hinzu. Der SEC-Index verzeichnete 2433 Einreichungen: 463 Form 4s, 173 8-Ks. Unser Newsfeed enthielt 215 Artikel von 3 Herausgebern; der am häufigsten behandelte Name war NVDA mit 17 Artikeln, 4 vor dem nächsten Namen — dasselbe NVDA, das trotz des roten Tages seines Sektors im Plus schloss. Der Feed enthielt 0 Artikel zu CRNX, dem stärksten Gewinner des Marktes — die Aufmerksamkeit eines einzelnen Feeds, nicht der weltweiten Medien.

Die Sitzung, verifiziert

AbfrageSession-Check: SPY beobachtete Minuten-Bar-Spanne, Feiertagstabelle und nächster Börsenschluss
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-07 13:30:00' AND window_start < '2026-07-07 20:00:00') AS regular_session_bars,
    uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00') AS day_sessions,
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-07') AS jul7_holiday_rows,
    (SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-07' AND status = 'closed') AS next_closure_date,
    (SELECT argMin(name, date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-07' AND status = 'closed') AS next_closure_name
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-07 00:00:00' AND window_start < '2026-07-08 00:00:00'

Der 7. Juli war eine vollständige Sitzung, kein früher Handelsschluss: Die Bars von SPY laufen von 04:00 bis 19:59 New York Zeit mit genau 390 Bars im regulären Zeitfenster, und die Feiertagstabelle enthält 0 Zeilen für das Datum. Der nächste geplante Handelsschluss ist am Labor Day, 2026-09-07.

Datenhinweise

  • Das Dollar-Volumen ist ein Proxy pro Minute — Schlusskurs × Volumen, summiert pro Minuten-Bar während der regulären Handelszeiten.
  • Die Aufteilung zwischen Gap und Grind wird gemessen vom ersten Bar der regulären Sitzung (Eröffnung) eines Titels gegenüber dem letzten regulären Schlusskurs der vorangegangenen Sitzung; der Rest bezieht sich auf die Bewegung von Eröffnung bis Schluss innerhalb des 7. Juli.
  • Die synchronisierten Tiefststände am Morgen wurden zum Zeitpunkt der Erstellung mit benachbarten Bars abgeglichen — jeder Tiefstand wird durch seine benachbarten Minuten nachverfolgt, nicht durch einen einzelnen Print; keiner wurde als Anomalie eingestuft. Wenn ein Extremwert in mehr als einer Minute auftrat, zeigt die Übersicht den frühesten entsprechenden Bar (deterministischer Tie-Break).
  • Ein Eintrag mit wiederverwendetem Symbol wurde aufgrund der ausstehenden Identitätsprüfung von den Volumen-Ranglisten und der Nachrichten-Übersicht ausgeschlossen; der entsprechende Bericht enthält die Belege.
  • Quoted-spread-Statistiken schließen ungültige Kurse aus (einseitige oder gekreuzte NBBO-Datensätze); jedes Spread-Panel zählt die Ausfälle in einer eigenen Spalte. Der „Update-gewichtete Durchschnitts-Spread“ berechnet die durchschnittliche Breite über jedes gültige NBBO-Update — Zeiten mit hoher Aktivität werden stärker gewichtet; es handelt sich um eine Quote-Statistik, nicht um die Kosten pro Trade.
  • Die Optionskurse vom 7. Juli gingen erst nach der Erstveröffentlichung dieses Beitrags ein. cache_options_quotes weist die längste Ingest-Verzögerung des Warehouse auf, weshalb die erste Ausgabe eine Null-Zeilen-Übersicht lieferte, wo sich nun die Options-Quote-Panels befinden. Die Zeilen sind eingetroffen, die Null-Zeilen-Begrenzung schlug bei der Regeneration fehl, und diese Revision enthält die 8.69 Milliarden Updates der Sitzung. Das Equity-Quote-Tape war von Beginn an vollständig: Das letzte Update vom 7. Juli erfolgt um 1199 ET, mit 77.13 Millionen Updates in der letzten regulären Stunde (Empfang-Spalten im Quote-Tape-Panel).
  • Die Options-Quote-Breiten werden Near-the-Money gemessen. Ein Median pro Update über alle gelisteten Verträge desselben Tages ist eine Kompositionsstatistik: Deep-in-the-money-Kontrakte weisen Spreads in Dollar auf, Far-out-of-the-money-Kontrakte in Cent; zudem wird erfasst, welche Kontrakte während der Sitzung neue Quotes generieren. Der Vergleich zwischen „Pocket“ und „Midday“ beschränkt sich auf Strikes innerhalb von 2 $ des durchschnittlichen Preises von SPY in jedem Zeitfenster; beide Preise sind Spalten im Panel. Ungültige Optionskurse (einseitig oder gekreuzt) werden in diesem Panel gezählt und nicht stillschweigend entfernt.
  • Die Treasury-Daten für den 7. Juli wurden verspätet eingelesen — die erste Ausgabe enthielt einen Hinweis auf die Verzögerung; der Trigger wurde am 8. Juli ausgelöst, als die Daten eintrafen, und diese Revision enthält die tatsächliche Kurve.

Methodik

  • Der Zeitraum entspricht einer einzelnen Handelssitzung (1 Sitzung, verifiziert durch beobachtete Bars und den Feiertagskalender – niemals vorausgesetzt). Zeitstempel werden in UTC gespeichert und innerhalb der Abfragen in New Yorker Zeit umgerechnet. „Close“ bezeichnet den letzten Minuten-Bar der regulären Sitzung; Tagesvergleiche vergleichen den 7. Juli mit dem 6. Juli, also aufeinanderfolgende Handelssitzungen.
  • Dezimalspalten werden vor der Verhältnisrechnung in 64-Bit-Floats umgewandelt; Optionsverfallsdaten werden aus dem OCC-Ticker neu eingelesen (die eigene Spalte für das Verfallsdatum in der Tabelle ist fehlerhaft). Alle Panels werden zum Zeitpunkt der Erstellung einmalig über den gesicherten Read-only-Pfad eingelesen. Datenbestand zum Stand vom 8. Juli 2026.
  • Der Abschnitt zum Quote-Tape wurde in der Revision vom 8. Juli hinzugefügt (dieselbe Revision, die den Treasury-Lag-Beleg durch den Landed-Print ersetzte). Die Options-Quote-Panels wurden neu geschrieben, sobald die NBBO-Zeilen der Optionen vom 7. Juli vorlagen. Die Erstellung erfolgt systembedingt als Batch-Job: Das SPY-Options-Quote-Panel scannt einige hundert Millionen NBBO-Datensätze, während die Tape-Size-Zählungen die Zeilensummen der Tagespartitionen lesen. Dies ermöglicht es einer Tabelle mit Milliarden von Zeilen pro Sitzung, eine Zählung in weniger als einer Sekunde auszuführen.

Jedes Panel ist das Ergebnis einer gespeicherten Abfrage – Chart, Tabelle und SQL sind ein einziges Objekt. Kopieren Sie jedes dieser Elemente in das Strasmore-Terminal, um sie individuell zu nutzen. Vorherige Sitzung: 6. Juli.