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

Recap mercato 1 luglio 2026

L'apertura del secondo semestre è stata calma per gli index ma violenta nel trading. META è balzata mentre la maggior parte dei settori S&P ha chiuso in rialzo.

Mercoledì 1 luglio 2026 — la prima sessione del secondo semestre — ha visto una delle giornate più tranquille per gli index accostata alla sua più violenta attività di trading. SPY ha chiuso -0.08% e QQQ -1.44%, mentre il complesso della memoria che ha sostenuto il secondo trimestre ha perso un decimo del suo valore, META è balzato del 8.88% e 7 dei fondi settoriali S&P di 11 ha chiuso ancora in rialzo. Sessione precedente: 30 giugno.

Il tabellone

Le variazioni confrontano l'ultima barra della sessione regolare del 1° luglio con quella di martedì 30 giugno.

QuerySPY / QQQ / DIA / IWM — 1 luglio vs chiusura 30 giugno, 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-06-30 13:30:00' AND window_start < '2026-06-30 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-01 13:30:00' AND window_start < '2026-07-01 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_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

Il dato principale riguarda lo split: DIA a 0.02% e SPY a -0.08% sono rimasti stabili rispetto al -1.44% di QQQ e al -0.37% di IWM — un selloff dei titoli growth che il mercato ampio ha appena registrato.

Una delle giornate più calme per gli indici dell'ultimo mese

QueryVariazione open-close di SPY rispetto all'ultimo mese di sessioni (rank 1 = massimo scostamento assoluto)
L'esatto SQL dietro ogni numero
SELECT round(anyIf(oc_pct, d = toDate('2026-07-01')), 2) AS day_move_pct,
       arrayCount(x -> x > abs(anyIf(oc_pct, d = toDate('2026-07-01'))), groupArrayIf(abs(oc_pct), d != toDate('2026-07-01'))) + 1 AS abs_move_rank,
       count() AS 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-01 00:00:00')
      AND window_start < toDateTime('2026-07-02 00:00:00')
      AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
    GROUP BY d
)

La variazione dall'apertura alla chiusura della sessione — un parametro diverso rispetto al rendimento rispetto alla chiusura precedente — per SPY è stata di 0.09%: si posiziona al 20 posto su 22 sessioni dell'ultimo mese per ampiezza assoluta, con solo due variazioni inferiori. Anche il comparto della volatilità ha confermato il trend. Questo database non contiene l'indice VIX spot, pertanto l'analisi si basa sui fondi quotati sui VIX-futures — il dato scambiabile più vicino al prezzo della protezione:

QueryIl complesso della volatilità al 1 luglio: VIX-futures ETF vs chiusura di martedì, con SPY come anchor
L'esatto SQL dietro ogni numero
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-01 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-01 00:00:00')) AS day_close,
        maxIf(toFloat64(high), window_start >= '2026-07-01 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-07-01 00:00:00') AS day_low
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'SVXY', 'UVXY', 'VIXY', 'VXX')
      AND ((window_start >= '2026-06-30 13:30:00' AND window_start < '2026-06-30 20:00:00')
        OR (window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00'))
    GROUP BY ticker
)
SELECT
    ticker,
    round(prior_close, 2) AS prior_close,
    round(day_close, 2) AS day_close,
    round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
    round((day_high / day_low - 1) * 100, 2) AS range_pct
FROM per_name
ORDER BY ticker

VXX, il principale fondo sui VIX futures con scadenza mensile, è salito dello 0.72%; VIXY dello 0.8%; l'ETF a leva UVXY dello 1.13% in un range dello 3.68%; l'inverso SVXY dello -0.42%. I risultati sono trascurabili rispetto alle performance dei singoli titoli.

Breadth: più ribassista che rialzista — e più nuovi massimi che nuovi minimi

QueryAdvancers, decliners e nuovi massimi/minimi trimestrali tra i ticker con almeno $1M scambiati il 1 luglio
L'esatto SQL dietro ogni numero
WITH per_ticker AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-01 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-01 00:00:00')) AS day_close,
        maxIf(toFloat64(high), window_start < '2026-07-01 00:00:00') AS quarter_high,
        minIf(toFloat64(low), window_start < '2026-07-01 00:00:00') AS quarter_low,
        maxIf(toFloat64(high), window_start >= '2026-07-01 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-07-01 00:00:00') AS day_low,
        sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-01 00:00:00') AS day_dollar_volume,
        countIf(window_start < '2026-07-01 00:00:00') AS quarter_bars
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ((window_start >= '2026-04-01 13:30:00' AND window_start < '2026-06-30 20:00:00')
        OR (window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00'))
      AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
    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,
    round(100.0 * countIf(day_close > prior_close AND day_dollar_volume >= 1000000)
        / countIf(day_dollar_volume >= 1000000), 1) AS advancer_pct,
    countIf(day_dollar_volume >= 1000000 AND quarter_bars >= 1000 AND day_high > quarter_high) AS new_quarter_highs,
    countIf(day_dollar_volume >= 1000000 AND quarter_bars >= 1000 AND day_low < quarter_low) AS new_quarter_lows,
    round(countIf(day_dollar_volume >= 1000000 AND quarter_bars >= 1000 AND day_high > quarter_high)
        / countIf(day_dollar_volume >= 1000000 AND quarter_bars >= 1000 AND day_low < quarter_low), 1) AS highs_per_low,
    countIf(day_dollar_volume >= 1000000 AND quarter_bars >= 1000) AS names_with_a_full_quarter,
    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,
    countIf(day_dollar_volume >= 1000000 AND quarter_bars < 1000) AS dropped_short_quarter_history
FROM per_ticker
WHERE prior_close > 0 AND day_close > 0

2928 rialzisti, 3465 ribassisti, 82 invariati — 45.2% del tape liquido è salito. La portata non indica la gravità: rispetto al range durante l'orario regolare del secondo trimestre, il 836 dei 6217 titoli con un trimestre completo di trading ha registrato un nuovo massimo trimestrale in questa giornata negativa, contro il 246 che ha registrato un nuovo minimo — 3.4 nuovi massimi per ogni nuovo minimo. La maggior parte è scesa; pochi hanno rotto il proprio range. Cali: 5435 di 11910 ticker dual-session sotto il filtro di 1 milione di dollari, 258 titoli liquidi senza un trimestre completo di candele.

Il settore principale: il calo è stato limitato a un unico settore

Gli undici fondi settoriali SPDR rappresentano la sezione trasversale del mercato più economica — lo stesso paniere ogni sessione.

QueryGli undici S&P sector ETF al 1 luglio, dal migliore al peggiore vs chiusura di martedì
L'esatto SQL dietro ogni numero
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-01 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-01 00:00:00')) AS day_close,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-01 00:00:00') / 1e9, 2) AS day_dollar_bn
    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-06-30 13:30:00' AND window_start < '2026-06-30 20:00:00')
        OR (window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00'))
    GROUP BY ticker
)
SELECT
    ticker,
    round(prior_close, 2) AS prior_close,
    round(day_close, 2) AS day_close,
    round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
    round((day_close / prior_close - 1) * 100 - min((day_close / prior_close - 1) * 100) OVER (), 2) AS pct_above_worst_sector,
    sum(if(day_close > prior_close, 1, 0)) OVER (ORDER BY (day_close / prior_close) DESC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS green_so_far,
    day_dollar_bn
FROM per_name
ORDER BY pct_chg DESC

Communication services (XLC) — il fondo settoriale che detiene META — ha guidato con 2.41%, mentre i financials (XLF) sono rimasti indietro al 2.2%. Technology (XLK) si è posizionato da solo in fondo, -2.56% e 4.97 punti percentuali sotto il leader. In totale, 7 di 11 fondi hanno chiuso in rialzo — discretionary 0.68%, health care 0.57% — contro utilities (-1.28%), industrials (-0.98%) ed energy (-0.6%) in rosso. In sostanza, "l'indice si è mosso appena" partendo dal basso.

Il punto della giornata: il settore memory crolla, META si muove in direzione opposta

Otto titoli hanno guidato la dispersione: i quattro titoli di memory-and-storage che hanno trainato il secondo trimestre, e quattro titoli di chip e platform correlati. Vengono riportati co-movimento, magnitudo e tempismo; i dati non ne spiegano le cause.

QueryIl complesso della memoria e le megacap: variazione vs chiusura di martedì, range timing e dollar volume
L'esatto SQL dietro ogni numero
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-01 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-01 00:00:00')) AS day_close,
        maxIf(toFloat64(high), window_start >= '2026-07-01 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-07-01 00:00:00') AS day_low,
        argMinIf(window_start, (toFloat64(low), toInt64(toUnixTimestamp(window_start))), window_start >= '2026-07-01 00:00:00') AS low_bar,
        argMaxIf(window_start, (toFloat64(high), -toInt64(toUnixTimestamp(window_start))), window_start >= '2026-07-01 00:00:00') AS high_bar,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-01 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('AMD', 'META', 'MRVL', 'MU', 'NVDA', 'SNDK', 'STX', 'WDC')
      AND ((window_start >= '2026-06-30 13:30:00' AND window_start < '2026-06-30 20:00:00')
        OR (window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 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(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

SanDisk (-10.45%) e Micron (-10.23%) hanno perso ciascuno più di un decimo del proprio valore; Marvell -8.68%, AMD -6.87%, Western Digital -6.3%, Seagate -5.11%. MU ha registrato un volume di scambi di $42.94 miliardi, superiore a quello di tutto l'SPY nell'intera giornata; MU, AMD e Marvell hanno registrato i minimi di sessione negli ultimi minuti di negoziazione (15:59, 15:57, 15:58 ET) — venduti durante l'asta di chiusura, non a causa di un vuoto di liquidità mattutino che si è poi riassorbito (l'analisi approfondita di MU indica che il trimestre è ormai concluso).

META è l'immagine speculare: 8.88% su $22.72 miliardi scambiati, con il minimo a 09:30 ET — la candela di apertura — mai più raggiunto. NVDA è rimasta stabile a -1.09% (NVDA a giugno).

Cosa è stato detto

Questa pagina non attribuisce mai cause. Il nostro feed di notizie con licenza è una tabella come ogni altra — ecco cosa ha riportato quel giorno:

QueryLe ultime dodici news della giornata con tag MU, SNDK, STX, WDC o META (feed con licenza)
L'esatto SQL dietro ogni numero
SELECT published_et, publisher, names_tagged, headline
FROM (
    SELECT
        published_utc,
        formatDateTime(toTimeZone(published_utc, 'America/New_York'), '%H:%i') AS published_et,
        JSONExtractString(publisher, 'name') AS publisher,
        arrayStringConcat(arrayFilter(x -> x IN ('MU', 'SNDK', 'STX', 'WDC', 'META'), tickers), ' ') AS names_tagged,
        substring(title, 1, 72) AS headline
    FROM global_markets.stocks_news
    WHERE published_utc >= '2026-07-01 04:00:00' AND published_utc < '2026-07-02 04:00:00'
      AND hasAny(tickers, ['MU', 'SNDK', 'STX', 'WDC', 'META'])
      AND NOT has(tickers, 'SPCX')
      AND position(title, 'SPCX') = 0
    ORDER BY published_utc DESC
    LIMIT 12
)
ORDER BY published_utc ASC

L'articolo di metà pomeriggio di The Motley Fool su Micron (14:11 ET) è stato pubblicato con il titolo "Why Micron Stock Is Plummeting Today". Il riepilogo serale (17:12 ET) e l'aggiornamento avvenuto quattro minuti dopo (17:16 ET) hanno entrambi associato il rialzo di META a un presunto piano per vendere la capacità di calcolo AI in eccesso come business cloud. Si tratta della linea editoriale della testata, non di un dato rilevato direttamente dai mercati; gli articoli di 12 editori rappresentano l'attenzione di un singolo feed, non quella del mercato.

Dove sono stati scambiati i capitali

QueryVolume leaders in due modi: top 6 per dollars traded, top 4 per shares traded (un simbolo duplicato escluso in attesa di verifica)
L'esatto SQL dietro ogni numero
SELECT ticker, leaderboard, dollar_volume_bn, if(dollar_volume_bn < 1, dollar_volume_m, NULL) AS dollar_value_m, 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(close) * toFloat64(volume)) / 1e6, 0) AS dollar_volume_m,
        round(sum(toFloat64(volume)) / 1e6, 1) AS shares_m
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 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(close) * toFloat64(volume)) / 1e6, 0) AS dollar_volume_m,
        round(sum(toFloat64(volume)) / 1e6, 1) AS shares_m
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 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 con $42.94 miliardi ha dominato gli scambi — SPY è secondo con $27.76 miliardi, META è quarto con $22.72 miliardi — un titolo in calo con volumi pari a una volta e mezzo rispetto all'ETF di riferimento. Gli estremi del movimento sono stati caratterizzati dai nomi più attivi. Il registro delle azioni presenta le solite distorsioni: SOXS, l'ETF 3x-inverse sui semiconduttori, ha guidato con 553.1 milioni di azioni — il titolo più scambiato nella giornata di crollo dei chip — mentre un titolo a basso prezzo chiude la lista con 189.8 milioni di azioni per un valore di $319 milioni (volume relativo). Base: ore regolamentari del 1 luglio, un titolo con simbolo riutilizzato escluso (ricevute).

Il tape delle opzioni

QueryUna riga per l'intera giornata options: volume, same-day expiry, put/call skew e il contract più attivo
L'esatto SQL dietro ogni numero
WITH
    (
        SELECT (any(underlying_symbol), any(toFloat64(strike_price)), any(option_type),
                sum(size), round(avg(toFloat64(price)), 3),
                any(if(substring(ticker, length(ticker) - 14, 6) = '260701', 1, 0)))
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-01 00:00:00' AND sip_timestamp < '2026-07-02 00:00:00'
        GROUP BY ticker
        ORDER BY sum(size) DESC, ticker ASC
        LIMIT 1
    ) AS top_contract,
    (
        SELECT round(toFloat64(argMax(close, window_start)), 2)
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY' AND window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 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(sumIf(toFloat64(size), option_type = 'P') / sumIf(toFloat64(size), option_type = 'C'), 2) AS put_call_ratio,
    round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260701') / sum(size), 1) AS same_day_expiry_pct,
    round(toFloat64(sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260702')) / 1e6, 2) AS thu_jul2_expiry_contracts_m,
    countIf(substring(ticker, length(ticker) - 14, 6) = '260703') AS fri_jul3_expiry_prints,
    round(toFloat64(sumIf(size, underlying_symbol = 'SPY' AND option_type = 'P')) / 1e6, 2) AS spy_put_contracts_m,
    round(100.0 * sumIf(size, underlying_symbol = 'SPY' AND option_type = 'P' AND toFloat64(strike_price) < spy_regular_close * 0.98)
        / sumIf(size, underlying_symbol = 'SPY' AND option_type = 'P'), 1) AS spy_puts_2pct_below_pct,
    round(100.0 * sumIf(size, underlying_symbol = 'SPY' AND option_type = 'C' AND toFloat64(strike_price) > spy_regular_close * 1.02)
        / sumIf(size, underlying_symbol = 'SPY' AND option_type = 'C'), 1) AS spy_calls_2pct_above_pct,
    round(sumIf(toFloat64(size), underlying_symbol = 'MU' AND option_type = 'P')
        / sumIf(toFloat64(size), underlying_symbol = 'MU' AND option_type = 'C'), 2) AS mu_put_call_ratio,
    round(sumIf(toFloat64(size), underlying_symbol = 'META' AND option_type = 'P')
        / sumIf(toFloat64(size), underlying_symbol = 'META' AND option_type = 'C'), 2) AS meta_put_call_ratio,
    top_contract.1 AS top_contract_underlying,
    top_contract.2 AS top_contract_strike,
    top_contract.3 AS top_contract_type,
    top_contract.4 AS top_contract_volume,
    reverse(arrayStringConcat(extractAll(reverse(toString(assumeNotNull(top_contract.4))), '\\d{1,3}'), ',')) AS top_contract_volume_fmt,
    round(top_contract.5, 3) AS top_contract_avg_price,
    top_contract.6 AS top_contract_is_same_day,
    round(top_contract.2 - spy_regular_close, 2) AS top_strike_minus_spy_close,
    spy_regular_close AS spy_close
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-01 00:00:00' AND sip_timestamp < '2026-07-02 00:00:00'

Sono stati scambiati 68.46 milioni di contratti su 11.22 milioni di operazioni — i call rappresentano il 58.6% del volume, con scadenze in giornata pari al 33.5%. Non c'è stato hedging sull'indice: il rapporto puts/call su tutto il mercato è stato di 0.71, e dei 5.76 milioni di put su SPY, solo il 11.6% aveva uno strike superiore al due percentuale rispetto alla chiusura di 745.69 — gli strike con downside estremo che rendono in caso di crash. Lo skew si è concentrato sui singoli titoli: le put di Micron hanno superato i call (1.11 per call), mentre i call di META hanno superato le put con un rapporto superiore a due a uno (0.39). Il contratto più scambiato è stato il call SPY da $748 in scadenza in giornata — 878,947 contratti a una media di $0.707 — con scadenza a 2.31 dollari out of the money, come avvenuto per quelli di martedì. Nessun contratto con scadenza il 3 luglio è stato scambiato durante la giornata (0 operazioni — quel venerdì è chiuso); la weekly di giovedì ha registrato 14.43 milioni.

Rates: drifting up, front end down

Yields are daily closes against June 30.

QueryLa Treasury curve, chiusura 1 luglio vs 30 giugno (solo scadenze popolate)
L'esatto SQL dietro ogni numero
SELECT
    t.1 AS curve_point,
    round(t.2, 2) AS jul1_yield_pct,
    round((t.2 - t.3) * 100) AS one_day_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-01') AS d,
         (SELECT * FROM global_markets.treasury_yields WHERE date = '2026-06-30') AS p
)

The 10-year added 4 bp to 4.48% and the 30-year 6 bp, while the 1-month bill moved -3 bp — belly and long end up, front end down. The 2s10s spread closed at 0.31 percentage points: nothing here matched the equity dispersion.

The calendar behind the day

QueryCalendario corporate e information flow del 1 luglio, in un'unica riga
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-01'
    ) AS news,
    (
        SELECT (argMax(t, n), max(n))
        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-01'
            )
            WHERE t != 'SPCX'
            GROUP BY t
        )
    ) AS top_news
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-01') AS ex_dividend_records,
    (SELECT countIf(frequency = 12) FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-01') AS monthly_payers,
    (SELECT countIf(frequency = 4) FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-01') AS quarterly_payers,
    (SELECT round(100.0 * countIf(frequency = 12) / count(), 1) FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-01') AS monthly_payer_pct,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date = '2026-07-01') AS splits_executed,
    (SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-01') AS ipos_listed,
    (SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-01') AS sec_filings,
    (SELECT uniqExactIf(accession_number, form_type = '4') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-01') AS insider_form4_filings,
    (SELECT uniqExactIf(accession_number, form_type = '8-K') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-01') AS filings_8k,
    (SELECT arrayStringConcat(groupArray(concat(ticker, ' — ', issuer_name)), '; ') FROM (
        SELECT ticker, issuer_name FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-01' ORDER BY ticker
    )) AS ipo_names,
    news.1 AS news_articles,
    news.2 AS news_publishers,
    top_news.1 AS most_covered_ticker,
    top_news.2 AS most_covered_articles

The quarter turn crested here: 745 dividend records went ex-dividend — the wave the June recap watched building — alongside 9 splits and 3 listings (BSP — Bending Spoons S.p.A.; ITG — ITG Inc.; LIME — Neutron Holdings Inc.). The filing feed revived: 4282 filings, 1072 of them Form 4s and 248 8-Ks, after June 30's near-empty index day (the month-end gap note). Our feed carried 201 articles, most-covered MSFT at 16.

But a count says nothing about who was paying. Ranked by the money that traded in them, the board is not corporate at all:

QueryI principali nomi ex-dividend il 1 luglio, ordinati per dollar volume della giornata
L'esatto SQL dietro ogni numero
WITH divs AS (
    SELECT ticker, max(toFloat64(cash_amount)) AS cash, max(frequency) AS freq
    FROM global_markets.stocks_dividends
    WHERE ex_dividend_date = '2026-07-01' AND distribution_type = 'recurring'
    GROUP BY ticker
),
tape AS (
    SELECT ticker,
           sum(toFloat64(close) * toFloat64(volume)) AS dollar_volume,
           toFloat64(argMax(close, (window_start, close))) AS day_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00'
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker
)
SELECT
    d.ticker AS ticker,
    round(d.cash, 4) AS cash_per_share,
    d.freq AS payments_per_year,
    round(t.day_close, 2) AS day_close,
    round(100 * d.cash / t.day_close, 2) AS pct_of_price,
    round(100 * d.cash * d.freq / t.day_close, 2) AS annualized_yield_pct,
    round(t.dollar_volume / 1e9, 2) AS day_dollar_bn
FROM divs d JOIN tape t ON d.ticker = t.ticker
WHERE t.dollar_volume > 0 AND d.cash > 0
ORDER BY t.dollar_volume DESC
LIMIT 8

Every one of the eight busiest ex-dividend tickers is a fund paying 12 times a year: SGOV, a Treasury-bill fund, went ex on $0.2958 a share (0.29% of price, 3.54% annualized) on $3.5 billion traded; HYG, a high-yield bond fund, on $0.3688. That is a first-of-month wave: 572 of the day's 745 records (76.8%) are monthly payers — funds distributing interest — against 123 quarterly payers. The ex-date drop is mechanical, not a loss.

Il primo giorno di un trimestre è mai una giornata ordinaria?

La narrazione è scontata: nuovo trimestre, nuovi capitali, nuove allocazioni. Il database non è d'accordo.

QueryOgni sessione di inizio trimestre dal 2004: variazione open-close di SPY, con il 1 luglio classificato nel contesto
L'esatto SQL dietro ogni numero
SELECT
    count() AS quarter_opens_measured,
    round(quantileExact(0.5)(oc_pct), 2) AS median_quarter_open_pct,
    countIf(oc_pct > 0) AS quarter_opens_green,
    countIf(oc_pct <= 0) AS quarter_opens_red,
    round(anyIf(oc_pct, first_day = toDate('2026-07-01')), 2) AS jul1_oc_pct,
    arrayCount(x -> x < anyIf(oc_pct, first_day = toDate('2026-07-01')), groupArrayIf(oc_pct, first_day != toDate('2026-07-01'))) + 1 AS jul1_rank_worst_to_best,
    round(min(oc_pct), 2) AS worst_quarter_open_pct,
    round(max(oc_pct), 2) AS best_quarter_open_pct,
    concat(monthName(min(first_day)), ' ', toString(toYear(min(first_day)))) AS first_measured
FROM (
    SELECT f.first_day AS first_day, d.oc_pct AS oc_pct
    FROM (
        SELECT toStartOfQuarter(d) AS q, min(d) AS first_day
        FROM (
            SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d
            FROM global_markets.delayed_stocks_minute_aggs
            WHERE ticker = 'SPY'
              AND window_start >= toDateTime('2004-01-01 00:00:00')
              AND window_start < toDateTime('2026-07-02 00:00:00')
              AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
            GROUP BY d
        )
        GROUP BY q
    ) f
    INNER JOIN (
        SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
               (argMax(toFloat64(close), (window_start, close)) / argMin(toFloat64(open), (window_start, open)) - 1) * 100 AS oc_pct
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND window_start >= toDateTime('2004-01-01 00:00:00')
          AND window_start < toDateTime('2026-07-02 00:00:00')
          AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
        GROUP BY d
    ) d ON d.d = f.first_day
)

In 91 sessioni di apertura trimestrale registrate da January 2004, il movimento mediano di SPY dall'apertura alla chiusura nel primo giorno del trimestre è pari a 0.01% — 46 rialzisti contro 45 ribassisti, nell'intervallo tra -2.28% e 3.18%: un lancio di moneta con un errore di arrotondamento. Il 1° luglio ha registrato 0.09%, posizione 50 su 91 dalla peggiore alla migliore — esattamente al centro. Base: variazione di SPY durante l'orario regolare, dalla prima sessione di ogni trimestre presente nel database.

Cosa resta al lettore alla fine della giornata

L'indice si è mosso del 0.09%; il panel di otto titoli oscilla tra -10.45% e 8.88%; la protezione è stata appena rivalutata. Questa è la normale aritmetica di un mercato concentrato: le perdite di un settore sono compensate dai guadagni in 7 di altri 11, determinando il risultato netto di un indice. Un'analisi a livello di indice non rileva nulla; un'analisi a livello di posizione mostra la perdita di un decimo di un asset in una sola giornata.

La sessione, verificata

QuerySession check: span osservato su minute-bar di SPY
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-01 13:30:00' AND window_start < '2026-07-01 20:00:00') AS regular_session_bars,
    uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00') AS day_sessions,
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-01') AS jul1_holiday_rows
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-01 00:00:00' AND window_start < '2026-07-02 00:00:00'

Le barre di SPY vanno da 04:00 a 19:59 ora di New York, con 390 barre in sessione regolare e 0 righe per le festività nella data indicata — una sessione completa, verificata dal tape.

FAQ

Il mercato azionario è salito o è sceso il 1 luglio 2026?

Dipende dall'indice considerato. SPY ha chiuso a -0.08%, DIA a 0.02%, QQQ a -1.44%; i titoli liquidi 3465 sono scesi mentre 2928 è salito — tuttavia il 7 dei fondi settoriali 11 ha chiuso in rialzo, con il settore technology come eccezione.

Perché Micron, SanDisk, Western Digital e Seagate sono scesi tutti il 1 luglio 2026?

Questi dati riportano un movimento congiunto, non la causa: i quattro titoli sono scesi tra -5.11% e -10.45%. L'articolo dello stesso giorno di The Motley Fool su Micron (nel pannello news di questa pagina, 14:11 ET) riportava il titolo "Why Micron Stock Is Plummeting Today". Si tratta della linea editoriale della testata, non di un dato di mercato.

Perché META è salita il 1 luglio 2026?

META ha chiuso con un rialzo del 8.88%, toccando il minimo sulla barra di apertura. La copertura di The Motley Fool ha attribuito il movimento a report secondo cui la società avrebbe pianificato di vendere la capacità computazionale AI in eccesso come business cloud: si tratta di un'attribuzione della testata, non nostra.

Il primo giorno di trading di un trimestre è solitamente una giornata forte?

Non in modo misurabile. Analizzando 91 aperture trimestrali dal January 2004, il movimento mediano di SPY dall'apertura alla chiusura è stato del 0.01%: 46 in rialzo, 45 in ribasso — come un lancio di moneta; il 1 luglio si è posizionato a metà classifica.

Il mercato delle opzioni stava facendo hedge durante il selloff del 1 luglio 2026?

Non a livello di indice: il rapporto puts/call è stato di 0.71 su tutto il mercato, e solo il 11.6% del volume di put di SPY ha colpito oltre il due per cento sotto la chiusura.

Note sui dati

  • Il volume in dollari è un proxy al minuto — calcolato come il prodotto tra prezzo di chiusura e volume per ogni barra di un minuto, durante l'orario regolare. Gli estremi visualizzati sono stati verificati rispetto alle barre adiacenti; in caso di parità, viene considerato il valore più precoce.
  • Non è presente l'indice VIX spot. Il pannello della volatilità riporta i fondi quotati sui VIX-futures, che detengono e effettuano il roll dei futures — sono correlati all'indice, ma mai identici.
  • Nuovi massimi/minimi trimestrali confrontano gli estremi dell'orario regolare del 1° luglio con l'intervallo di ogni titolo tra il 1° aprile e il 30 giugno, per i titoli liquidi con un intero trimestre di barre; i cali sono indicati nel pannello.
  • Il pannello dei settori è un paniere selezionato (undici ETF SPDR, non un campo del fornitore); il pannello delle news è un unico feed con licenza (12 articoli, due editori); un titolo con simbolo riutilizzato è escluso dalle classifiche (le sue ricevute).

Metodologia

  • Una sessione di trading (sessione 1, verificata tramite le barre osservate e la tabella delle festività — mai assunta). I timestamp sono memorizzati in UTC e convertiti in orario di New York all'interno delle query; il "close" è l'ultima barra al minuto della sessione regolare, con il cambio di giorno rispetto al 30 giugno.
  • I decimali vengono convertiti in float a 64-bit prima dell'aritmetica dei rapporti; le scadenze delle opzioni vengono rielaborate dal ticker OCC. I pannelli vengono eseguiti una sola volta, al momento della redazione, tramite il percorso di sola lettura protetto. Stato del warehouse al 13 luglio 2026; questa edizione aggiunge i pannelli relativi a settore, volatilità, news, dividendi e cronologia trimestrale.

Ogni pannello è il risultato di una query memorizzata — il grafico, la tabella e l'SQL sono un unico oggetto. Incolla qualsiasi elemento nel terminale Strasmore. Prossimo: 2 luglio; la settimana: la settimana festiva.