Strasmore Research
Recap di mercato Matt ConnorDi Matt Connor · Aggiornato 2026-07-24

Recap mercato 9 luglio 2026

I titoli chip-equipment hanno chiuso il gap iniziale mentre le mega-cap hanno invertito il trend. Il mercato ha chiuso in positivo, ma NVDA resta in rosso.

Giovedì 9 luglio 2026 ha registrato una forte volatilità in un solo minuto, avvenuto prima dell'apertura dei mercati. I titoli legati alle chip-equipment erano già molto sopra la chiusura di mercoledì durante il premarket, mentre META si trovava -3.16% sotto tale livello; il dato delle 9:30 ha confermato entrambe le posizioni. Successivamente, il mercato ha parzialmente invertito l'apertura: i gap sui titoli chip sono diminuiti, META è tornata ai livelli precedenti e la sessione si è conclusa 71.5% in territorio positivo, risultando la più ampia della settimana. NVDA, in rialzo dopo il crollo di martedì, ha chiuso in rosso. Ogni cifra riportata di seguito è estratta da una query memorizzata.

Fattori che hanno determinato l'apertura

I gap non si sono creati alle 9:30. Tra le 4:00 e le 9:29 ET, il tape del premarket aveva già riprezzato questi titoli, e il prezzo di apertura si è attestato su tali livelli.

QueryAndamento premarket, 4:00-9:29 am ET: ultimo print premarket vs chiusura di mercoledì e apertura successiva
L'esatto SQL dietro ogni numero
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

L'ultimo prezzo di KLAC nel premarket era di +8.49% rispetto alla chiusura di mercoledì e ha aperto a +8.14%; LRCX ha registrato un +9.64% con un'apertura a +9.67%; META ha segnato -3.16% e ha aperto a -3.16%. Leggi open_vs_premkt_pct: tutti e sei i titoli hanno aperto entro l'uno percentuale dal loro ultimo prezzo premarket. NVDA è l'eccezione: 0.16% durante la notte su 3741.7k shares, il volume premarket più elevato tra i sei e il movimento più contenuto (trading premarket e after-hours).

C'è stato un catalizzatore? I nostri dati non ne indicano alcuno

Un riepilogo dovrebbe indicare cosa ha mosso un titolo. In questo caso le nostre tabelle non indicano nulla: il feed delle notizie e l'indice dei filing SEC sono entrambi vuoti per i quattro nomi che hanno registrato i gap più ampi.

QueryCatalyst registrati: news e SEC filings per ticker, da chiusura mercoledì a giovedì
L'esatto SQL dietro ogni numero
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 articoli overnight, 0 intraday, 0 filing SEC per KLAC — la stessa riga vuota per LRCX, TER e WDC. NVDA, che non ha mai registrato gap, ha avuto la copertura più intensa tra i nove titoli (7 overnight, 9 intraday) ed è chiusa in rosso. Si tratta dell'attenzione di un singolo feed, non dei media mondiali, e una riga assente non è la prova dell'assenza di un evento — ma nulla nei nostri dati indica una causa, e "causa sconosciuta" è una risposta completa.

Il tabellone

Ogni variazione confronta l'ultima barra di un minuto della sessione regolare del 9 luglio con quella di mercoledì; le righe sono in ordine alfabetico, quindi ogni ETF mantiene una posizione fissa.

QuerySPY / QQQ / DIA / IWM — 9 luglio vs chiusura 8 luglio, sessione regolare
L'esatto SQL dietro ogni numero
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

Tutti e quattro hanno chiuso in rialzo. QQQ ha guidato con +1.67% — un gap di +0.99% più una salita di +0.68%; la small-cap IWM ha segnato +1.29%, SPY +0.85% a $751.64, DIA è rimasta indietro con +0.29%. La crescita in testa, il Dow in coda.

La giornata è stata insolita?

A livello di indice, no: la chiusura di QQQ rispetto alla precedente con un +1.67% si è posizionata al 10 delle 21 sessioni precedenti per ampiezza, mentre l'oscillazione intraday di SPY è stata il 8 delle 22. La volatilità si è concentrata tra i gruppi della giornata.

QueryMovimento giornaliero SPY / QQQ in contesto trailing (~22 sessioni)
L'esatto SQL dietro ogni numero
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
    )
)

Breadth: la sessione più ampia della settimana

QueryBreadth liquid-tape: quota advancer 9 luglio vs 8 luglio, filtro $1M traded
L'esatto SQL dietro ogni numero
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 titoli in rialzo contro 1631 titoli in ribasso — una quota di titoli in rialzo del 71.5% dopo 29.6% mercoledì, stessa computazione, stesso filtro di scambio da $1M (5385 di 11351 nomi scendono sotto tale soglia). Rispetto al resto della settimana:

QueryLa settimana finora: movimenti indici e quota advancer per ogni sessione completata
L'esatto SQL dietro ogni numero
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

Lunedì è iniziato con 62.4% titoli in rialzo, martedì e mercoledì sono scesi rispettivamente a 33.9% e 29.6%, e il valore di 71.4% di giovedì è il più alto delle quattro sessioni completate della settimana (venerdì 10 luglio è successivo a questo riepilogo). Anche QQQ ha seguito il trend: -1.82% martedì, 0.25% mercoledì, +1.67% giovedì.

Oltre i chip: l'andamento del resto del mercato

La breadth indica che la maggior parte dei titoli è salita; tuttavia, il rally non è stato uniforme. Di seguito: un paniere a equal-weight composto da tre titoli liquidi per settore, lo stesso paniere dichiarato ogni giorno.

QueryOtto basket settoriali: chiusura 9 luglio vs 8 luglio, equal-weighted
L'esatto SQL dietro ogni numero
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 ha guidato il mercato con un +4.24%, mentre Energy ha chiuso a -2.01% — uno spread di -6.25 punti (gap_to_best_sector_pct). Il settore Financials è stato il paniere non legato ai chip con la performance migliore a +1.88%; Staples (-0.91%), Utilities (-0.96%) ed Energy hanno chiuso in rosso. I big tech (AAPL, MSFT e GOOGL) hanno registrato una media contenuta del +0.17%. La maggiore inversione tra apertura e chiusura della giornata, lo swing di META del +8.1%, è esterna a tutti gli otto panieri; all'interno di questo, il passaggio di MSFT da un'apertura di -2.25% a una chiusura di +0.33% è stato il round trip più marcato.

L'apertura dei semiconduttori e il successivo calo

gap_pct rappresenta l'apertura rispetto alla chiusura di mercoledì; intraday_pct rappresenta l'andamento della giornata. Le righe sono in ordine alfabetico.

QueryQuattordici chip names: gap all'apertura vs resto della giornata, 9 luglio
L'esatto SQL dietro ogni numero
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 è aperta a +8.14% rispetto alla chiusura di mercoledì, per poi cedere -3.98%; LRCX è aperta a +9.67% e ha subito un calo di -3.26%; TER (+7.87%) e WDC (+7.89%) hanno seguito lo stesso andamento. MU ha aperto con un gap di +7.07%, è scesa di -2.56%, chiudendo comunque a +4.33% su 33.56B — il titolo più pesante del listino per la seconda sessione (riepilogo di mercoledì contiene il primo). AMD e SNDK sono state le eccezioni: AMD ha aggiunto 1.75% dopo un'apertura di +3.87% per chiudere a +5.68%, mentre SNDK, già a +6.14% all'apertura, ha aggiunto un altro 1.23% chiudendo a +7.45%. E NVDA: un'apertura a +0.16% — senza gap — che ha portato a una chiusura a -0.68%.

QueryReceipts: conteggio green/red 9 luglio su quattordici names e turn di NVDA a due giorni
L'esatto SQL dietro ogni numero
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 dei quattordici titoli ha chiuso in rialzo; le 2 chiusure in rosso sono state l'eccezione strutturale in una giornata positiva, insieme a NVDA a -0.68%, un giorno dopo aver chiuso a +3.66%. Il titolo chip più rilevante del listino ha ignorato la performance positiva del proprio settore, nonostante avesse la maggiore copertura mediatica.

L'altra faccia: le mega-cap aprono in calo e recuperano

QueryOtto mega-caps e defensives: gap all'apertura vs resto della giornata, 9 luglio
L'esatto SQL dietro ogni numero
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

Sette delle otto hanno aperto sotto la chiusura di mercoledì; i risultati successivi le hanno differenziate. META ha aperto -3.16% in calo ed è salita del +8.1% fino a una chiusura di 4.69% — il ribaltamento più violento tra apertura e chiusura della pagina. MSFT ha aperto -2.25% in calo ed è recuperata al +0.33%; anche AMZN (+1.4%) e AAPL (+0.93%) hanno seguito questo trend; TSLA non ha registrato gap ed è salita al +3.21%. I titoli che sono rimasti in calo non erano growth: GOOGL (-0.76%), CVX (-1.06%), JNJ (-1.62%). Perché i titoli hanno gap durante la notte spiega il meccanismo.

Dove sono stati scambiati i capitali

QueryTop 6 per dollari traded, top 4 per shares traded — 9 luglio sessione regolare
L'esatto SQL dietro ogni numero
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 ha dominato nuovamente il listino dei dollari con 33.56B di volume, superando SPY (24.37B), NVDA (21.28B) e SNDK (20.59B) — il settore memorie occupa due dei primi quattro posti. Il listino delle azioni mostra un mercato differente: SOXS ha guidato con 558.1M di azioni, con un prezzo implicito di $3.91 (volume relativo).

QueryShares per bucket 30 minuti ET, sessione regolare, con % del bucket maggiore della giornata
L'esatto SQL dietro ogni numero
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

Un pattern a U classico: la sessione di apertura ha registrato 1.79B di azioni (91.4% del totale massimo), il punto minimo a metà giornata è stato di 0.64B, e l'ultima mezz'ora dell'auction di chiusura è stata la più intensa della giornata con 1.96B. Nonostante l'attività iniziale, il volume si è concentrato alla chiusura.

Il tape delle opzioni

QueryOptions tape: print, contracts, % call, quota 0DTE vs mercoledì, top contracts
L'esatto SQL dietro ogni numero
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'

Il tape ha registrato 9.99M contratti e 58.85M contratti — rispetto ai 63.26M di mercoledì — con una quota di call pari al 58% del volume; la quota 0DTE è scesa a 28.7% rispetto a 38.7%. I tre contratti più scambiati erano tutti call SPY a scadenza giornaliera — la 751C (846.6K contratti, media $0.526), la 752C e la 750C — con una struttura a scala attorno alla chiusura di SPY a $751.64 (le opzioni 0DTE coprono il prodotto).

Hedge o scommessa? Un hedge acquista strike lontani dal prezzo attuale (out-of-the-money); una scommessa acquista la direzione desiderata.

QueryOptions SPY same-day (0DTE): contracts per strike distance dal prezzo di chiusura
L'esatto SQL dietro ogni numero
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)

Il tape giornaliero si è concentrato sull'at-the-money: 3768.9k call e 2563.3k put entro lo 0,5% dalla chiusura (59.5% call). Le ali erano divise per direzione: sotto la chiusura, 1356.5k put contro 255.4k call (1.2% di quota call più profonda); sopra la chiusura, le call hanno occupato il 91.6% di un bucket molto più sottile da 29.1k. Il volume delle ali si è concentrato sugli strike al ribasso, dove si acquista protezione: una struttura a scala sull'at-the-money, non sul rialzo.

Il listino delle quotazioni

QueryConteggio update NBBO stocks: 9 luglio vs 8 luglio, con update per ticker (milioni)
L'esatto SQL dietro ogni numero
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'

Il dato più silenzioso della giornata: 383.44M aggiornamenti NBBO sul listino azionario, contro -27.7% rispetto a mercoledì. La volatilità si è concentrata sui livelli di prezzo, non sul volume di scambi. QQQ ha guidato i ticker nominati con 4.35M, superando lo 2.71M di SPY e lo 1.83M di NVDA.

QuerySPY / QQQ / NVDA / TSLA / MU / SNDK / AVGO: median quoted spread RTH in basis points
L'esatto SQL dietro ogni numero
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

Lo spread mediano quotato di SPY è stato di 0.27 bps, QQQ 0.42, NVDA 0.99 — valori ordinari. La coda più ampia: MU a 4.23 bps, SNDK a 8.79 bps (lo spread bid-ask è il costo misurato da questo dato).

QueryMedia quoted spread RTH di SPY in contesto trailing-month
L'esatto SQL dietro ogni numero
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
)

Lo spread medio quotato di SPY di 2.071 cents si è posizionato al 10 di 22 sessioni precedenti, all'interno di un range di 1.8092.865 centesimi: nessuna tensione nelle quotazioni, nemmeno durante l'apertura.

QueryOptions NBBO tape: total updates vs stock tape, più SPY root slice
L'esatto SQL dietro ogni numero
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

Il listino delle quotazioni delle opzioni ha registrato 6.9 miliardi di aggiornamenti NBBO — 18 volte il listino azionario, con il solo sottostante SPY a 242M.

Tassi: il report del 9 luglio

QueryStato print Treasury: righe 9 luglio su record e curva 8 luglio (ultimo dato disponibile)
L'esatto SQL dietro ogni numero
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'

Il report della Treasury del 9 luglio è stato pubblicato con il consueto ritardo rispetto alla redazione, registrando ora la riga 1. La curva della giornata (2026-07-09): 2 anni 4.16%, 10 anni 4.54%, 30 anni 5.05%, spread 2s10s 0.38 punti — il rendimento a 2 anni è in calo rispetto ai livelli dell'8 luglio, mentre la parte lunga della curva è rimasta stabile.

Il calendario della giornata

QueryEx-divs, splits, SEC filings, news attention
L'esatto SQL dietro ogni numero
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

Un calendario di routine in un'apertura insolita: record 127 ex-dividend, 5 reverse splits, 1 forward split, comunicazioni SEC 2979 (623 Form 4, 605 424B2, 149 8-K). Il feed ha generato 184 articoli attraverso 3 editori; il ticker più coperto è stato NVDA con 20 articoli, 8 distaccando il nome successivo.

In programma

Dai nostri database — dati reali sulla prossima sessione, non previsioni.

QueryProssimi eventi: prossima sessione, slate ex-dividend, SPY expiry ladder e short-interest clock
L'esatto SQL dietro ogni numero
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'
)

La prossima sessione sarà 2026-07-10, con 0 giorni festivi rispetto ad essa: un venerdì normale. 153 società andranno ex-dividend quella mattina, 0 dalla nostra lista di nomi noti. L'expiry di SPY di venerdì è la più rilevante tra quelle già scambiate — 1.66M contratti il 9 luglio contro 0.57M per la scadenza mensile di luglio. Monitoraggio short-interest: l'ultimo settlement registrato è 2026-06-30, con 0 righe ancora depositate per metà luglio — FINRA pubblica i dati circa otto giorni lavorativi dopo il settlement (perché lo short interest ha due settimane di ritardo).

La sessione, verificata

QueryVerifica sessione: prima/ultima bar SPY ET, conteggio regular-bar, receipts festivi, prossima chiusura
L'esatto SQL dietro ogni numero
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'

Una sessione ordinaria completa: prima barra SPY 04:00 ET, ultima 19:59 ET, 390 barre regolari al minuto, nessuna riga relativa alle festività. Prossima chiusura: Labor Day, September 7, 2026.

FAQ

Cosa è successo sul mercato azionario il 9 luglio 2026?

Ogni index ETF ha chiuso in rialzo — QQQ +1.67%, IWM +1.29%, SPY +0.85%, DIA +0.29%, 71.5% di titoli liquidi in aumento. I titoli del settore chip-equipment hanno registrato un gap up seguito da un calo; le mega-cap hanno registrato un gap down per poi recuperare.

Perché titoli chip-equipment come KLAC e LRCX sono balzati in borsa il 9 luglio 2026?

I nostri dati non indicano alcuna causa: non sono presenti articoli o SEC filing per KLAC, LRCX, TER o WDC dalla chiusura di mercoledì a quella di giovedì. Il movimento era già scontato nel premarket, prima delle 9:30 ET.

Perché NVDA è scesa mentre il settore chip è rimbalzato?

NVDA ha chiuso -0.68% mentre il 12 di quattordici titoli chip ha chiuso in rialzo. Non ha mai registrato un gap (0.16% all'apertura) ed è stato il ticker più coperto con 20 articoli — una co-occorrenza record, ma la causa non è presente in questi dati.

Il 9 luglio 2026 è stata una giornata insolita per il mercato?

Non a livello di indici: il movimento di QQQ si è classificato al 10 di 21 sessioni precedenti per ampiezza, lo spread medio di SPY è stato del 10 di 22. La dispersione sottostante è stata di: -6.25 punti tra il miglior e il peggior paniere settoriale.

Note sui dati

Gli orari regolari sono 13:3020:00 UTC (9:30 am–4:00 pm ET); il panel premarket utilizza l'intervallo 08:00–13:30 UTC. Gli otto basket settoriali sono selezionati e pesati equamente — tre titoli liquidi per ciascuno, ogni ticker è elencato nel SQL del relativo panel. Si tratta di un metodo dichiarato, non di una classificazione di un vendor: tre titoli rappresentano il campione, non l'intero settore. Il panel dei catalyst include esclusivamente il nostro feed news e l'indice EDGAR.

Note complete sui dati

I panel per singolo ticker sono in ordine alfabetico, pertanto ogni riferimento testuale punta a una riga fissa; le classifiche sono ordinate per valore, ogni posizione è delimitata. I dati Treasury e il settlement dello short-interest di metà luglio sono limitati a zero righe — la loro pubblicazione richiederà una riscrittura di questo post.

Metodologia

  • Fonti: ogni pannello utilizza tabelle SQL specifiche — aggregati al minuto, cache NBBO per azioni e opzioni, scambi di opzioni, il nostro feed news, l'indice EDGAR, dividendi, short interest, festività, rendimenti Treasury.
  • Convenzioni: i valori UTC grezzi sono utilizzati nelle clausole WHERE, le etichette ET solo nelle clausole SELECT; gap = apertura della prima barra regolare ÷ chiusura della precedente barra regolare − 1; i dati della sessione precedente e della settimana precedente sono calcolati direttamente nella query e non vengono riportati da post precedenti. Warehouse aggiornato al 13 luglio 2026.