Strasmore Research
Recap di mercato Matt ConnorDi Matt Connor · Aggiornato 2026-08-02

Riepilogo mercati 27 luglio 2026: tutti i numeri

Il 27 luglio 2026 tra scoreboard, breadth, spread settoriali, options flow, quote tape, tassi e calendario, con dati verificabili nelle query archiviate.

Questo riepilogo di mercato di lunedì 27 luglio 2026 legge l’intera seduta dalle query archiviate: la variazione di SPY rispetto alla chiusura di venerdì è stata pari a 0.02%, la quota dei titoli in rialzo sul mercato liquido a 65.4% e il mercato delle opzioni ha registrato 64.69 milioni di contratti. Ogni finestra riportata di seguito è ancorata a date esplicite di inizio e fine, quindi rieseguendo la query SQL di ciascun pannello si ottengono gli stessi dati.

Il tabellone

Ogni variazione confronta la barra dell’ultimo minuto della sessione regolare di lunedì 27 luglio con quella di venerdì 24 luglio, due sessioni di trading consecutive separate dal fine settimana. Le righe sono in ordine alfabetico, quindi ogni ETF mantiene una posizione fissa.

QuerySPY / QQQ / DIA / IWM: 27 luglio rispetto alla chiusura del 24 luglio, orari regolari
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-24 13:30:00' AND window_start < '2026-07-24 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-27 13:30:00' AND window_start < '2026-07-27 20:00:00'
    GROUP BY ticker
)
SELECT
    s.ticker AS ticker,
    round(toFloat64(p.prior_close), 2) AS prior_close,
    round(toFloat64(s.day_open), 2) AS day_open,
    round(toFloat64(s.day_close), 2) AS day_close,
    round((toFloat64(s.day_open) / toFloat64(p.prior_close) - 1) * 100, 2) AS gap_pct,
    round((toFloat64(s.day_close) / toFloat64(s.day_open) - 1) * 100, 2) AS intraday_pct,
    round((toFloat64(s.day_close) / toFloat64(p.prior_close) - 1) * 100, 2) AS pct_change,
    round(toFloat64(s.day_high), 2) AS day_high,
    round(toFloat64(s.day_low), 2) AS day_low,
    s.shares_traded_m
FROM sess s LEFT JOIN prior p ON s.ticker = p.ticker
ORDER BY ticker
Run this yourself

DIA si è mosso di 0.49%, IWM di 0.59%, QQQ di -0.32% e SPY di 0.02%, chiudendo a $739.02. Ogni riga suddivide la variazione nelle sue due componenti: SPY ha aperto a 0.82% rispetto alla chiusura di venerdì, un gap che incorpora l’intero fine settimana, e si è mosso di -0.79% dall’apertura alla chiusura. Di lunedì la componente overnight è in realtà una componente di due giorni; la ripartizione tra questa e la componente intraday è la prima impronta della sessione.

La giornata è stata insolita?

Il dato di una singola sessione dice poco senza la distribuzione sottostante. Per questo la giornata viene classificata all’interno del proprio mese precedente applicando la stessa logica.

QueryMovimento giornaliero di SPY nel contesto storico recente (da apertura a chiusura, 26 giugno–27 luglio)
L'esatto SQL dietro ogni numero
SELECT
    round(anyIf(oc_pct, d = toDate('2026-07-27')), 2) AS spy_open_to_close_pct,
    arrayCount(x -> x > abs(anyIf(oc_pct, d = toDate('2026-07-27'))), groupArrayIf(abs(oc_pct), d != toDate('2026-07-27'))) + 1 AS spy_abs_move_rank,
    count() AS spy_sessions_compared,
    toString(min(d)) AS first_session
FROM (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           (argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100 AS oc_pct
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime('2026-06-26 13:30:00')
      AND window_start < toDateTime('2026-07-28 00:00:00')
      AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
    GROUP BY d
)
Run this yourself

Il movimento open-to-close di SPY, pari a -0.79%, si è classificato 1 su 21 sessioni precedenti in base all’ampiezza assoluta, in una finestra che risale a 2026-06-26. La posizione indica quante altre sessioni nella finestra hanno registrato un movimento più ampio, più uno. Il primo posto corrisponderebbe quindi al movimento più ampio del mese precedente.

Ampiezza

Il livello di un indice è un solo numero. L’ampiezza misura quante azioni si sono mosse nella stessa direzione durante il gap del weekend.

QueryAmpiezza del mercato su titoli liquidi: chiusura del 27 luglio rispetto al 24 luglio, filtro da $1M di controvalore scambiato
L'esatto SQL dietro ogni numero
SELECT
    countIf(c27 > c24 AND liquid) AS advancers,
    countIf(c27 < c24 AND liquid) AS decliners,
    countIf(c27 = c24 AND liquid) AS unchanged,
    countIf(liquid) AS liquid_tickers,
    countIf(NOT liquid) AS dropped_by_liquidity_filter,
    round(100.0 * countIf(c27 > c24 AND liquid) / countIf(liquid), 1) AS advancer_pct
FROM (
    SELECT ticker, c24, c27, dv27 >= 1000000 AS liquid
    FROM (
        SELECT ticker,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-24 13:30:00' AND window_start < '2026-07-24 20:00:00') AS c24,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-27 20:00:00') AS c27,
               sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-27 13:30:00') AS dv27
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE window_start >= '2026-07-24 13:30:00' AND window_start < '2026-07-27 20:00:00'
        GROUP BY ticker
        HAVING c24 > 0 AND c27 > 0
    )
)
Run this yourself

Tra i titoli 5935 che hanno superato la soglia di un milione di dollari di controvalore nelle normali ore di contrattazione, 3880 hanno chiuso sopra la chiusura di venerdì e 1972 sotto, con una quota di titoli in rialzo pari a 65.4%. Il filtro ha escluso 5336 titoli meno liquidi, che qui sono stati conteggiati invece di essere semplicemente scartati.

Il paniere delle mega-cap

Gli stessi otto titoli mega-cap compaiono qui in ogni sessione, in ordine alfabetico, così ciascuno mantiene la propria riga. Il punto è avere un paniere fisso: il lettore impara a riconoscere le righe e nessuna selezione editoriale individua a posteriori i vincitori.

QueryOtto mega-cap: variazione rispetto al 24 luglio e controvalore in orari regolari, 27 luglio
L'esatto SQL dietro ogni numero
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-27 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-27 00:00:00')) AS day_close,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-27 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('AAPL', 'AMZN', 'AVGO', 'GOOGL', 'META', 'MSFT', 'NVDA', 'TSLA')
      AND ((window_start >= '2026-07-24 13:30:00' AND window_start < '2026-07-24 20:00:00')
        OR (window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-27 20:00:00'))
    GROUP BY ticker
)
SELECT
    ticker,
    round(prior_close, 2) AS prior_close,
    round(day_close, 2) AS day_close,
    round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
    day_dollar_bn
FROM per_name
ORDER BY ticker
Run this yourself

AAPL si è mosso di 1.16%, META di -0.21%, MSFT di 1.94% e NVDA di -5.04%, su un controvalore di 25.42 miliardi di dollari negli scambi regolari, mentre TSLA si è attestato a -1.2%. La colonna in dollari mostra quale quota del flusso degli scambi questi otto titoli rappresentano da soli; il pannello dell’ampiezza di mercato sopra indica fino a che punto il resto del mercato si è mosso nella stessa direzione.

I titoli più mossi della giornata

Entrambi i listini richiedono un controvalore di cinque milioni di dollari nelle ore regolari, escludono ogni nome il cui split sia stato eseguito tra le due chiusure considerate ed escludono un simbolo riutilizzato in base al controllo interno sulle ambiguità descritto nelle note.

QueryMaggiori rialzi e ribassi: chiusura del 27 luglio rispetto al 24 luglio, scambi da $5M+, frazionamenti esclusi
L'esatto SQL dietro ogni numero
SELECT ticker, board, day_pct, day_dollar_m
FROM (
    SELECT 'gainers' AS board, ticker, round((c27 / c24 - 1) * 100, 1) AS day_pct, round(dv / 1e6, 1) AS day_dollar_m
    FROM (
        SELECT ticker,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-24 13:30:00' AND window_start < '2026-07-24 20:00:00') AS c24,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-27 20:00:00') AS c27,
               sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-27 13:30:00') AS dv
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker NOT IN ('SPCX')
          AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date > '2026-07-24' AND execution_date <= '2026-07-27')
          AND window_start >= '2026-07-24 13:30:00' AND window_start < '2026-07-27 20:00:00'
        GROUP BY ticker
        HAVING c24 > 0 AND c27 > 0 AND dv >= 5000000
    )
    ORDER BY day_pct DESC
    LIMIT 8
    UNION ALL
    SELECT 'decliners' AS board, ticker, round((c27 / c24 - 1) * 100, 1) AS day_pct, round(dv / 1e6, 1) AS day_dollar_m
    FROM (
        SELECT ticker,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-24 13:30:00' AND window_start < '2026-07-24 20:00:00') AS c24,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-27 20:00:00') AS c27,
               sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-27 13:30:00') AS dv
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker NOT IN ('SPCX')
          AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date > '2026-07-24' AND execution_date <= '2026-07-27')
          AND window_start >= '2026-07-24 13:30:00' AND window_start < '2026-07-27 20:00:00'
        GROUP BY ticker
        HAVING c24 > 0 AND c27 > 0 AND dv >= 5000000
    )
    ORDER BY day_pct ASC
    LIMIT 8
)
ORDER BY board DESC, abs(day_pct) DESC
Run this yourself

Il maggiore rialzo del listino, DFNS, ha segnato 214.9% su scambi per 486.4 milioni di dollari. Il calo più marcato, MPLT, ha registrato -72.9% su 83.3 milioni. Questa pagina riporta le variazioni e i dati delle transazioni, senza attribuire loro alcuna spiegazione.

Dispersione settoriale

Gli undici fondi SPDR dei singoli settori, con la chiusura del 27 luglio rapportata a quella del 24 luglio, sono ordinati dal migliore al peggiore. Il paniere è definito e fisso; non si tratta di una classificazione del fornitore.

QueryETF settoriali, chiusura del 27 luglio rispetto al 24 luglio, in ordine di performance
L'esatto SQL dietro ogni numero
SELECT sector, day_pct, round(max(day_pct) OVER () - day_pct, 2) AS points_behind_best
FROM (
    SELECT multiIf(ticker = 'XLK', 'Technology', ticker = 'XLC', 'Communications', ticker = 'XLE', 'Energy',
                   ticker = 'XLF', 'Financials', ticker = 'XLI', 'Industrials', ticker = 'XLB', 'Materials',
                   ticker = 'XLP', 'Staples', ticker = 'XLRE', 'Real Estate', ticker = 'XLU', 'Utilities',
                   ticker = 'XLV', 'Health Care', 'Consumer Discretionary') AS sector,
           round((c27 / c24 - 1) * 100, 2) AS day_pct
    FROM (
        SELECT ticker,
               argMaxIf(toFloat64(close), window_start, window_start < '2026-07-27 00:00:00') AS c24,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-27 00:00:00') AS c27
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker IN ('XLB', 'XLC', 'XLE', 'XLF', 'XLI', 'XLK', 'XLP', 'XLRE', 'XLU', 'XLV', 'XLY')
          AND ((window_start >= '2026-07-24 13:30:00' AND window_start < '2026-07-24 20:00:00')
            OR (window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-27 20:00:00'))
        GROUP BY ticker
        HAVING c24 > 0 AND c27 > 0
    )
)
ORDER BY day_pct DESC
Run this yourself

Staples è in cima alla classifica con 1.5%, mentre Energy è in fondo con -2.06%, 3.56 punti percentuali più indietro. Questo spread rappresenta la dispersione settoriale della giornata: un mercato in cui tutti gli undici settori si muovono entro un punto percentuale è molto diverso da uno in cui la distanza si estende su diversi punti.

Dove sono stati scambiati i dollari

QueryPrime 6 per controvalore scambiato, prime 4 per azioni scambiate: orari regolari del 27 luglio
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
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-27 13:30:00' AND window_start < '2026-07-27 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-27 13:30:00' AND window_start < '2026-07-27 20:00:00'
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker
    ORDER BY shares_m DESC
    LIMIT 4
)
ORDER BY leaderboard, if(leaderboard = 'by shares traded', shares_m, dollar_volume_bn) DESC
Run this yourself

MU ha guidato la classifica per controvalore in dollari, con 35.71 miliardi di turnover nelle ore regolari, seguito da SPY con 27.03 miliardi. La classifica per numero di azioni risponde a una domanda diversa: KIDZ è stato in testa con 198.3 milioni di azioni e un prezzo medio implicito di $0.66. Il volume in dollari individua l'attenzione del mercato, il volume di azioni ne misura il ricambio; a livello di singolo titolo, questa misura è il volume relativo.

Il flusso degli ordini in opzioni

QueryFlussi sul mercato delle opzioni: contratti, quota call, quota same-day rispetto a venerdì, contratto SPY più attivo
L'esatto SQL dietro ogni numero
WITH
    (
        SELECT (strike, typ, vol_m, is_0dte)
        FROM (
            SELECT toFloat64(any(strike_price)) AS strike, any(option_type) AS typ,
                   round(toFloat64(sum(size)) / 1e6, 2) AS vol_m,
                   if(substring(ticker, length(ticker) - 14, 6) = '260727', 1, 0) AS is_0dte
            FROM global_markets.options_trades
            WHERE sip_timestamp >= '2026-07-27 00:00:00' AND sip_timestamp < '2026-07-28 00:00:00'
              AND underlying_symbol = 'SPY'
            GROUP BY ticker
            ORDER BY vol_m DESC, strike ASC
            LIMIT 1
        )
    ) AS top_spy,
    (
        SELECT round(toFloat64(argMax(close, window_start)), 2)
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY' AND window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-27 20:00:00'
    ) AS spy_regular_close,
    (
        SELECT round(toFloat64(sum(size)) / 1e6, 2)
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-24 00:00:00' AND sip_timestamp < '2026-07-25 00:00:00'
    ) AS jul24_contracts_m,
    (
        SELECT round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260724') / sum(size), 1)
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-24 00:00:00' AND sip_timestamp < '2026-07-25 00:00:00'
    ) AS jul24_pct_0dte
SELECT
    round(count() / 1e6, 2) AS option_prints_m,
    round(toFloat64(sum(size)) / 1e6, 2) AS contracts_m,
    jul24_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) = '260727') / sum(size), 1) AS pct_0dte,
    jul24_pct_0dte,
    spy_regular_close,
    top_spy.1 AS top_spy_strike,
    top_spy.2 AS top_spy_type,
    top_spy.3 AS top_spy_contracts_m,
    top_spy.4 AS top_spy_is_0dte,
    round(top_spy.1 - spy_regular_close, 2) AS top_spy_strike_minus_close
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-27 00:00:00' AND sip_timestamp < '2026-07-28 00:00:00'
Run this yourself

Il flusso degli ordini in opzioni ha registrato 11.07 milioni di operazioni per 64.69 milioni di contratti, rispetto ai 71.14 milioni di venerdì. Le call hanno rappresentato 55.1% del volume dei contratti. I contratti in scadenza nella stessa sessione, il gruppo zero-days-to-expiry, hanno totalizzato 39.3%, contro 49% di venerdì, con un ritmo determinato dalla tempistica delle scadenze. Il contratto SPY più scambiato è stato il 740 C, con 0.59 milioni di contratti; il suo strike era distante 0.98 dollari dalla chiusura regolare di SPY a $739.02, calcolata come strike meno chiusura.

Il flusso delle quotazioni

I dati sulle quotazioni sono il dataset più raro di questo desk e vengono misurati a ogni sessione. Anche le giornate ordinarie entrano nel registro.

QueryNumero di aggiornamenti NBBO azionari: 27 luglio rispetto al 24 luglio, con aggiornamenti dei ticker indicati (milioni)
L'esatto SQL dietro ogni numero
SELECT
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-27')) / 1e6, 2) AS jul27_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-24')) / 1e6, 2) AS jul24_updates_m,
    round((countIf(toDate(sip_timestamp) = toDate('2026-07-27')) / countIf(toDate(sip_timestamp) = toDate('2026-07-24')) - 1) * 100, 1) AS session_over_session_pct,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-27') AND ticker = 'SPY') / 1e6, 2) AS jul27_spy_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-27') AND ticker = 'QQQ') / 1e6, 2) AS jul27_qqq_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-27') AND ticker = 'NVDA') / 1e6, 2) AS jul27_nvda_updates_m
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-07-24 00:00:00' AND sip_timestamp < '2026-07-28 00:00:00'
Run this yourself

Il flusso delle quotazioni azionarie ha registrato 553.53 milioni di aggiornamenti NBBO rispetto ai 500.88 milioni di venerdì, con una variazione tra sessioni pari a 10.5%. SPY ha registrato 4.84 milioni di aggiornamenti, QQQ 6.78 milioni e NVDA 2.93 milioni.

QuerySette titoli: spread mediano quotato RTH in punti base, con conteggi sulla qualità delle quotazioni, 27 luglio
L'esatto SQL dietro ogni numero
SELECT ticker,
       round(quantileExactIf(0.5)(10000 * (toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2), bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price), 2) AS median_spread_bps,
       round(count() / 1e6, 2) AS quote_updates_m,
       countIf(bid_price <= 0 OR ask_price <= 0) AS one_sided_quote_count,
       countIf(bid_price > ask_price AND bid_price > 0 AND ask_price > 0) AS crossed_quote_count
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('AAPL', 'DIA', 'IWM', 'NVDA', 'QQQ', 'SPY', 'TSLA')
  AND sip_timestamp >= '2026-07-27 13:30:00' AND sip_timestamp < '2026-07-27 20:00:00'
GROUP BY ticker
HAVING countIf(bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price) > 0
ORDER BY ticker
Run this yourself

Lo spread mediano quotato di SPY durante il normale orario di contrattazione è stato pari a 0.27 punti base del mid, quello di QQQ a 0.59 e quello di NVDA a 1.02. Le ultime due colonne riportano l'informazione completa: le quotazioni a un solo lato e quelle incrociate vengono conteggiate per ciascun titolo e tenute separate dalla mediana, invece di essere eliminate senza indicazione. Una quotazione incrociata, con il bid superiore all'ask, è un normale artefatto di un feed consolidato ottenuto combinando dati provenienti da molte venue alla risoluzione dei nanosecondi.

QuerySpread mediano di SPY classificato rispetto a ogni sessione di luglio fino al 27, dal più stretto
L'esatto SQL dietro ogni numero
SELECT round(anyIf(spread_bps, d = toDate('2026-07-27')), 2) AS jul27_median_spread_bps,
       arrayCount(x -> x < anyIf(spread_bps, d = toDate('2026-07-27')), groupArrayIf(spread_bps, d != toDate('2026-07-27'))) + 1 AS rank_tightest,
       count() AS sessions_compared,
       toString(min(d)) AS first_session
FROM (
    SELECT toDate(sip_timestamp) AS d,
           quantileExactIf(0.5)(10000 * (toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2), bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price) AS spread_bps
    FROM global_markets.cache_stocks_quotes
    WHERE ticker = 'SPY'
      AND sip_timestamp >= '2026-07-01 13:30:00' AND sip_timestamp < '2026-07-27 20:00:00'
      AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
    GROUP BY d
    HAVING countIf(bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price) > 0
)
Run this yourself

Confrontata con ogni sessione di luglio applicando la stessa logica, la mediana dello spread di SPY, pari a 0.27 punti base, si è collocata al 18 posto su 18, contando dal livello più stretto, in una finestra iniziata il 2026-07-01. Su un flusso tranquillo, questo è il punto del pannello: una giornata ordinaria per la liquidità è un dato rilevante, pubblicato e delimitato.

QueryNBBO delle opzioni: aggiornamenti totali rispetto al mercato azionario, più il segmento sul root SPY, 27 luglio
L'esatto SQL dietro ogni numero
WITH
    (SELECT count() FROM global_markets.cache_options_quotes WHERE sip_timestamp >= '2026-07-27 00:00:00' AND sip_timestamp < '2026-07-28 00:00:00') AS jul27_options_rows,
    (SELECT count() FROM global_markets.cache_stocks_quotes WHERE sip_timestamp >= '2026-07-27 00:00:00' AND sip_timestamp < '2026-07-28 00:00:00') AS jul27_stock_quote_rows
SELECT
    round(jul27_options_rows / 1e9, 2) AS jul27_options_bn,
    round(jul27_options_rows / jul27_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-27 13:30:00' AND sip_timestamp < '2026-07-27 20:00:00') / 1e6, 0) AS jul27_spy_options_m
Run this yourself

Il flusso NBBO delle opzioni ha registrato 10.38 miliardi di aggiornamenti, 18.8 volte il flusso delle quotazioni azionarie, con il solo root SPY a 440 milioni di aggiornamenti durante il normale orario di contrattazione.

Tassi

QueryQuotazioni della curva Treasury disponibili, dal 22 al 27 luglio
L'esatto SQL dietro ogni numero
SELECT toString(date) AS date,
       round(toFloat64(yield_2_year), 2) AS yield_2y_pct,
       round(toFloat64(yield_10_year), 2) AS yield_10y_pct,
       round(toFloat64(yield_30_year), 2) AS yield_30y_pct,
       round((toFloat64(yield_10_year) - toFloat64(yield_2_year)) * 100) AS spread_2s10s_bp
FROM global_markets.treasury_yields
WHERE date >= '2026-07-22' AND date <= '2026-07-27'
ORDER BY date
Run this yourself

Il file del Treasury è indietro di circa una seduta rispetto al mercato, quindi questo pannello riporta le operazioni eseguite che contiene: righe datate 4 nella finestra dal 22 al 27 luglio. L’ultimo dato, datato 2026-07-27, indicava il rendimento biennale a 4.31%, quello decennale a 4.65% e quello trentennale a 5.12%, con uno spread tra il biennale e il decennale di 34 punti base.

Il calendario dietro la giornata

QueryEx-dividendi, frazionamenti, quotazioni, notizie e composizione dei filing SEC del 27 luglio
L'esatto SQL dietro ogni numero
WITH
    (
        SELECT (argMax(t, (n, t)), max(n))
        FROM (
            SELECT t, count() AS n
            FROM (
                SELECT arrayJoin(tickers) AS t
                FROM global_markets.stocks_news
                WHERE published_utc >= '2026-07-27 04:00:00' AND published_utc < '2026-07-28 04:00:00'
            )
            WHERE t != 'SPCX'
            GROUP BY t
        )
    ) AS top_news,
    (
        SELECT (count(), uniqExact(cik), countIf(form_type = '4'), countIf(form_type = '8-K'), countIf(form_type = '424B2'), countIf(form_type = '10-Q'))
        FROM global_markets.stocks_sec_edgar_index
        WHERE filing_date = '2026-07-27'
    ) AS fil
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-27') AS ex_dividend_records,
    (SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-27') AS reverse_splits,
    (SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-27') AS forward_splits,
    (SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-27') AS listings,
    (SELECT count() FROM global_markets.stocks_news WHERE published_utc >= '2026-07-27 04:00:00' AND published_utc < '2026-07-28 04:00:00') AS news_articles,
    (SELECT uniqExact(JSONExtractString(publisher, 'name')) FROM global_markets.stocks_news WHERE published_utc >= '2026-07-27 04:00:00' AND published_utc < '2026-07-28 04:00:00') AS news_publishers,
    top_news.1 AS top_news_ticker,
    top_news.2 AS top_news_n,
    fil.1 AS fil_total,
    fil.2 AS fil_filers,
    fil.3 AS fil_form4,
    fil.4 AS fil_8k,
    fil.5 AS fil_424b2,
    fil.6 AS fil_10q
Run this yourself

91 registrazioni di dividendi sono andate ex-dividend il 27 luglio, sono stati eseguiti 7 reverse split e 1 forward split, e 0 nuove quotazioni sono arrivate sul mercato. Il news feed conteneva 166 articoli provenienti da 2 editori, con MSFT il ticker più seguito nell'intervallo di questo feed, per un totale di 12 articoli. L'indice giornaliero EDGAR contiene 3997 filing relativi alla data, depositati da 2163 filer distinti: 587 report degli insider Form 4, 226 report correnti 8-K, 555 supplementi di prezzo 424B2 e 23 report trimestrali 10-Q. L'indice viene aggiornato secondo una propria programmazione e questo pannello mostra i dati disponibili al momento della generazione.

In programma

Per il resto della settimana, da martedì 28 luglio a venerdì 31 luglio, i dati vanno letti nelle stesse tabelle, guardando deliberatamente oltre il periodo.

QueryDal 28 al 31 luglio in calendario: chiusure, ex-dividendi, frazionamenti, scadenza di venerdì e ritardo degli short interest
L'esatto SQL dietro ogni numero
SELECT
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date >= '2026-07-28' AND date <= '2026-07-31' AND status != 'open') AS closures_rest_of_week,
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date >= '2026-07-28' AND ex_dividend_date <= '2026-07-31') AS exdiv_records_rest_of_week,
    (SELECT countIf(ticker IN ('AAPL', 'MSFT', 'JPM', 'KO', 'JNJ', 'XOM', 'CVX', 'PG', 'WMT', 'HD')) FROM global_markets.stocks_dividends WHERE ex_dividend_date >= '2026-07-28' AND ex_dividend_date <= '2026-07-31') AS household_exdivs,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date >= '2026-07-28' AND execution_date <= '2026-07-31') AS splits_rest_of_week,
    round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260731') / sum(size), 1) AS jul31_expiry_pct_of_mon_volume,
    (SELECT toString(max(settlement_date)) FROM global_markets.stocks_short_interest WHERE settlement_date <= '2026-07-27') AS latest_short_interest_settlement
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-27 00:00:00' AND sip_timestamp < '2026-07-28 00:00:00'
Run this yourself

La tabella delle festività mostra 0 chiusure nelle quattro sessioni rimanenti della settimana. I record di 843 dividendi diventano ex-dividend in quelle sessioni; 0 riguardano dieci società consumer monitorate. Sono previste 18 operazioni di split. Del volume di opzioni di lunedì, 17.1% era già concentrato in contratti con scadenza venerdì 31 luglio. L'ultimo dato disponibile sullo short interest è 2026-07-15, una pubblicazione con un ritardo sufficiente a meritare una spiegazione dedicata.

La sessione, verificata

QueryVerifica della sessione: prima/ultima barra SPY ET, numero di barre regolari, ricezioni festive, 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,
    countIf(window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-27 20:00:00') AS regular_session_bars,
    uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-27 20:00:00') AS day_sessions,
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-27') AS jul27_holiday_rows,
    (SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-27' AND date <= '2026-12-31' AND status = 'closed') AS next_closure_date,
    (SELECT argMin(name, date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-27' AND date <= '2026-12-31' AND status = 'closed') AS next_closure_name
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-27 00:00:00' AND window_start < '2026-07-28 00:00:00'
Run this yourself

Una sessione regolare completa: prima barra di SPY alle 04:00 ET, ultima alle 19:59 ET, 390 barre nell’orario regolare, 1 sessione nella finestra e 0 righe relative alle festività per la data. La prossima chiusura programmata è Labor Day il 2026-09-07.

FAQ

Come ha chiuso il mercato azionario lunedì 27 luglio 2026?

SPY è cambiato di 0.02% rispetto alla chiusura di venerdì, a $739.02, con QQQ a -0.32%, DIA a 0.49% e IWM a 0.59%. Tra i titoli più liquidi, 3880 è salito e 1972 è sceso.

Quale settore ha guidato il mercato il 27 luglio 2026?

Staples, a 1.5%, misurato sui gli undici fondi SPDR select-sector. Il più debole degli undici, Energy, ha registrato -2.06%.

Quanto è stato intenso il trading di opzioni il 27 luglio 2026?

Sono stati scambiati 64.69 milioni di contratti, rispetto ai 71.14 milioni della seduta precedente. I contratti con scadenza nella stessa giornata hanno rappresentato 39.3% del volume e le call 55.1%.

Quale titolo ha registrato il maggiore controvalore di scambi il 27 luglio 2026?

MU, con 35.71 miliardi di controvalore durante le ore regolari, davanti a SPY con 27.03 miliardi.

Note sui dati

Questa edizione integra la seduta di lunedì nella serie giornaliera ripresa, pubblicata il primo agosto. La sessione precedente in base alla data di negoziazione è 10 luglio 2026, l’edizione del 29 luglio riguarda il mercoledì della stessa settimana e il riepilogo settimanale copre la settimana terminata venerdì 24 luglio, la seduta su cui si basa ogni confronto in questa pagina. I pannelli nominativi per ticker sono ordinati alfabeticamente, così i riferimenti nel testo puntano a righe fisse; le classifiche e le tabelle dei maggiori movimenti sono ordinate per valore e ogni affermazione relativa alla posizione è codificata come vincolo di controllo. Il paniere mega-cap e il paniere settoriale di undici fondi sono insiemi definiti e fissi, non classificazioni del vendor. Le tabelle dei maggiori movimenti applicano una soglia di turnover di cinque milioni di dollari nelle ore regolari, escludono ogni titolo il cui split sia stato eseguito tra le due chiusure misurate ed escludono un simbolo riutilizzato secondo il controllo interno sulle ambiguità, così ogni richiamo rimanda sempre a un nome verificabile. Ogni variazione tra chiusure qui riportata copre il fine settimana, da venerdì 24 luglio a lunedì 27 luglio, e la colonna del gap nello scoreboard copre l’intero intervallo. I pannelli delle quotazioni conteggiano per ciascun nome le quotazioni a un solo lato e quelle crossed, anziché eliminarle senza indicazione. Il file del Treasury e l’indice giornaliero EDGAR vengono pubblicati secondo calendari propri; pertanto i relativi pannelli riportano i dati disponibili, senza presumere che siano già arrivati. Qui non compare alcun indice di volatilità implicita: queste serie non sono concesse in licenza a questo warehouse, quindi la volatilità viene ricavata dal tape attraverso gli intervalli di prezzo, la quota di opzioni negoziate nella stessa giornata e il comportamento delle quotazioni.

Metodologia

  • Fonte dei dati di mercato: consolidated tape. delayed_stocks_minute_aggs per prezzi e volumi, options_trades per il options tape, cache_stocks_quotes e cache_options_quotes per i pannelli NBBO.
  • Chiusura: l’ultima barra minuto della sessione regolare, mai un print delle 16:00 dato per scontato e mai un print dell’extended hours.
  • Gestione del fuso orario: tutti i timestamp archiviati sono in UTC; le clausole WHERE usano valori letterali UTC grezzi e toTimeZone compare solo nelle liste SELECT per le etichette ET.
  • Verifica della sessione: ricavata dalla tabella delle festività e dalle barre osservate, mai presunta sulla base del calendario.
  • Confronti con la sessione precedente: calcolati nella query a partire da venerdì 24 luglio, la sessione di trading precedente nel fine settimana, mai ripresi da un post precedente.
  • Decimali: le colonne di prezzo, size e volume vengono convertite in Float64 prima di qualsiasi divisione o prodotto.
  • Aggregazioni deterministiche: quantili esatti e criteri di spareggio basati su tuple in tutto il processo; ogni indicazione di ordine o segno nel testo è codificata come vincolo di coerenza.
  • Data as-of del warehouse: 1° agosto 2026, cinque giorni dopo la sessione, oltre il consueto ritardo di ingestione del tape, pari a uno-due giorni; le ricevute con intervallo definito sopra mantengono il post se al momento della generazione manca un dataset.

Collegamenti: il precedente riepilogo giornaliero, l’edizione del 29 luglio, il riepilogo settimanale, quando scadono le opzioni, cos’è uno spread bid-ask e lo spread tra i Treasury a due e dieci anni.

Ogni query sopra viene eseguita senza modifiche sul terminale Strasmore, se vuoi reindirizzare una finestra a una sessione diversa.