Strasmore Research
Market Recap

Riepilogo mercato giugno 2026

Matt ConnorBy Matt Connor Updated 2026-07-24

Giugno 2026 è stato un mese di divergenza: gli indici large-cap sono scesi mentre le small cap sono cresciute; al di sotto del livello degli indici, il numero di titoli in calo è stato superiore a quello dei titoli in rialzo. SPY si è chiuso a $746.32, con una variazione del -1.2% nel mese, mentre IWM — l'indice delle small cap — ha guadagnato il 4.2%. L'altro dato rilevante del mese: un produttore di chip per memorie ha registrato un volume di scambi di $995.7 miliardi in 21 sessioni, superando quello di SPY. Ogni numero riportato è il risultato di una query memorizzata; espandere ogni pannello per visualizzare la SQL esatta.

Il mese in borsa

QueryGiugno 2026: open to close, range e turnover in regular-hours per i quattro index ETF
L'esatto SQL dietro ogni numero
SELECT ticker,
    round(argMinIf(toFloat64(open), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199), 2) AS month_open,
    round(argMaxIf(toFloat64(close), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199), 2) AS month_close,
    round((argMaxIf(toFloat64(close), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) / argMinIf(toFloat64(open), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) - 1) * 100, 1) AS month_return_pct,
    round(maxIf(toFloat64(high), (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199), 2) AS month_high,
    round(minIf(toFloat64(low), (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199), 2) AS month_low,
    round(sumIf(toFloat64(close) * toFloat64(volume), (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) / 1e9, 1) AS rth_dollar_bn
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
  AND window_start >= toDateTime('2026-06-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
GROUP BY ticker
ORDER BY ticker

I dati indicano chiaramente l'andamento: DIA 2.4% e IWM 4.2% sono cresciuti, mentre SPY è sceso del -1.2% e QQQ ha chiuso al -0.2% — l'indice growth delle mega-cap è rimasto piatto o in calo nello stesso mese in cui le small caps hanno guadagnato il quattro per cento.

Giugno rispetto ai cinque mesi precedenti

Il calo di giugno è stato insolito? Il pannello precedente ricalcola lo stesso rendimento mensile per ogni mese del semestre in un'unica query — le righe di giugno sono generate esattamente come quelle di gennaio, in tempo reale durante la generazione.

QueryRendimenti mensili, gennaio-giugno 2026, ricalcolati live (SPY e QQQ)
L'esatto SQL dietro ogni numero
SELECT toString(toStartOfMonth(toDate(toTimeZone(window_start, 'America/New_York')))) AS period_start, ticker,
    round((argMaxIf(toFloat64(close), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) / argMinIf(toFloat64(open), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) - 1) * 100, 1) AS month_return_pct,
    round(argMaxIf(toFloat64(close), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199), 2) AS month_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ')
  AND window_start >= toDateTime('2026-01-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
GROUP BY period_start, ticker
ORDER BY period_start, ticker

Secondo questo parametro giugno è stato ordinario: il rendimento di SPY del -1.2% rientra ampiamente nell'intervallo del semestre — marzo è sceso del -4.4% e aprile è salito del 9.9%. Il carattere del mese è stato la rotation, non la direzione.

Giugno rispetto a tutti i precedenti giugno sui dati

QueryOgni giugno sul tape: SPY, ricalcolato identicamente per anno (session counts inclusi)
L'esatto SQL dietro ogni numero
SELECT toYear(toTimeZone(window_start, 'America/New_York')) AS y,
       uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions,
       round((argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100, 1) AS june_return_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY')
  AND window_start >= toDateTime('2003-01-01 00:00:00')
  AND window_start < toDateTime('2026-07-01 00:00:00')
  AND toMonth(toTimeZone(window_start, 'America/New_York')) = 6
  AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY y
HAVING sessions >= 17
ORDER BY y ASC
QueryRanking: giugno attuale rispetto a ogni precedente (rank 1 = best; self-excluded)
L'esatto SQL dietro ogni numero
SELECT round(anyIf(ret, y = 2026), 1) AS june_2026_pct,
       arrayCount(x -> x > anyIf(ret, y = 2026), groupArrayIf(ret, y != 2026)) + 1 AS rank_best,
       count() AS junes_compared,
       min(y) AS first_year,
       anyIf(sessions, y = 2026) AS sessions_2026
FROM (
    SELECT toYear(toTimeZone(window_start, 'America/New_York')) AS y,
           uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions,
           (argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100 AS ret
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY')
      AND window_start >= toDateTime('2003-01-01 00:00:00')
      AND window_start < toDateTime('2026-07-01 00:00:00')
      AND toMonth(toTimeZone(window_start, 'America/New_York')) = 6
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY y
    HAVING sessions >= 17
)

Il -1.2% di SPY si posiziona al 15 dei 23 mesi di giugno dal 2004 (il rango 1 è il migliore) — a metà classifica, leggermente sotto la media. Un giugno ordinario, e l'ordinarietà è un dato rilevante: il movimento dell'indice non presenta caratteristiche eccezionali rispetto ai due decenni di giugno analizzati. Ciò che è risultato rilevante è stata la rotazione sottostante — il pannello della breadth riportato sotto. Base: variazione tra apertura e chiusura durante l'orario regolare di ogni giugno solare, calcolo identico per ogni anno, limite superiore fissato alla fine del mese corrente in modo che il set di confronto non cresca silenziosamente.

Session per session

QuerySPY, tutte le 21 sessioni di giugno: close e variazione close-over-close
L'esatto SQL dietro ogni numero
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
    round(argMaxIf(toFloat64(close), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199), 2) AS spy_close,
    round((argMaxIf(toFloat64(close), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) / any(prev) - 1) * 100, 1) AS change_pct
FROM global_markets.delayed_stocks_minute_aggs
INNER JOIN (
    SELECT d, lagInFrame(c) OVER (ORDER BY d ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev
    FROM (
        SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, argMaxIf(toFloat64(close), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) AS c
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY' AND window_start >= toDateTime('2026-05-29 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
        GROUP BY d
    )
) AS p ON toDate(toTimeZone(window_start, 'America/New_York')) = p.d
WHERE ticker = 'SPY' AND window_start >= toDateTime('2026-06-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
GROUP BY et_date
ORDER BY et_date

Il calo più marcato della singola sessione del mese si è verificato precocemente — -2.6% in 2026-06-05 — e il grafico mostra l'andamento del mese: un declino costante fino a metà giugno, un supporto vicino a $716.58 e un parziale recupero nelle ultime sessioni verso il cambio di trimestre. Per il dettaglio della settimana finale di questo recupero, consultare il riepilogo settimanale.

Breadth: più titoli in calo che in rialzo

QueryAdvancers vs decliners per giugno (close vs ultimo close di maggio), liquidity filter incluso
L'esatto SQL dietro ogni numero
SELECT
    countIf(chg > 0 AND NOT dropped) AS advancers,
    countIf(chg < 0 AND NOT dropped) AS decliners,
    countIf(chg = 0 AND NOT dropped) AS unchanged,
    countIf(dropped) AS dropped_by_liquidity_filter
FROM (
    SELECT ticker,
        argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-06-01') AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199)
      - argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-05-29') AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) AS chg,
        sumIf(toFloat64(close) * toFloat64(volume), toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-06-01')) < 5e6 AS dropped
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= toDateTime('2026-05-29 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
    GROUP BY ticker
    HAVING countIf(toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-05-29') AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) > 0
       AND countIf(toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-06-01') AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) > 0
)

4608 ticker sono scesi nel mese rispetto a 4240 che sono saliti — breadth negativa in un mese in cui due dei quattro ETF di indice hanno guadagnato. Il peso degli indici e la breadth basata su conteggio paritario rispondono a domande diverse; giugno è un mese in cui i due dati sono discordanti. Il filtro di liquidità ha escluso 2896 ticker con un volume di giugno inferiore a 5 milioni di dollari, conteggiati qui invece di essere nascosti. Il dato giornaliero concorda con il dato dei ticker: 12 delle 21 sessioni del mese hanno chiuso SPY in calo rispetto a 9 in rialzo.

QuerySessioni SPY up vs down nel mese, un singolo dato
L'esatto SQL dietro ogni numero
SELECT countIf(day_ret > 0) AS up_sessions,
       countIf(day_ret < 0) AS down_sessions,
       countIf(day_ret = 0) AS flat_sessions,
       count() AS sessions_total
FROM (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           round((argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100, 2) AS day_ret
    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-01 00:00:00')
      AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
    GROUP BY d
)

I leader del mercato

QueryDollar volume in regular-hours a giugno, intero tape (un simbolo escluso in attesa di verifica)
L'esatto SQL dietro ogni numero
SELECT ticker,
    round(sum(toFloat64(close) * toFloat64(volume)) / 1e9, 1) AS dollar_bn,
    round(100 * sum(toFloat64(close) * toFloat64(volume)) / max(sum(toFloat64(close) * toFloat64(volume))) OVER (), 1) AS pct_of_leader
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= toDateTime('2026-06-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
  AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
  AND ticker NOT IN ('SPCX')
GROUP BY ticker
ORDER BY dollar_bn DESC
LIMIT 8

MU ha dominato l'intero mese con $995.7 miliardi — SPY, al secondo posto, ha registrato 77.5% di tale valore. NVDA ha generato $523 miliardi, posizionandosi al quarto posto; il suo mese ha la sua analisi dettagliata tick-by-tick. Il settore dei semiconductor domina la lista, con quattro dei otto titoli presenti. Base: orario regolare dal 1 al 30 giugno; un listing di giugno con simbolo riutilizzato è escluso in attesa della verifica dell'entità, e il suo primo mese ha il proprio post dedicato.

Il tape delle opzioni: giugno rispetto a maggio

QueryGiugno: volume contratti options su intero tape e quota same-day-expiry (un scan)
L'esatto SQL dietro ogni numero
SELECT round(sum(toFloat64(volume)) / 1e6, 1) AS contracts_mm,
       round(100.0 * sumIf(toFloat64(volume), toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6))) = toDate(toTimeZone(window_start, 'America/New_York'))) / sum(toFloat64(volume)), 1) AS zero_dte_pct,
       uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions
FROM global_markets.options_minute_aggs
WHERE window_start >= toDateTime('2026-06-01 00:00:00')
  AND window_start < toDateTime('2026-07-01 00:00:00')
QueryMaggio, ricalcolato identicamente per contrasto (un scan)
L'esatto SQL dietro ogni numero
SELECT round(sum(toFloat64(volume)) / 1e6, 1) AS contracts_mm,
       round(100.0 * sumIf(toFloat64(volume), toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6))) = toDate(toTimeZone(window_start, 'America/New_York'))) / sum(toFloat64(volume)), 1) AS zero_dte_pct,
       uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions
FROM global_markets.options_minute_aggs
WHERE window_start >= toDateTime('2026-05-01 00:00:00')
  AND window_start < toDateTime('2026-06-01 00:00:00')

Il volume totale di options volume di giugno è stato di 1477.9 milioni di contratti, con il 34.3% scambiato su scadenze in giornata — rispetto ai 1394.6 milioni e al 30.3% di maggio. Volume maggiore E una quota maggiore in giornata: la quota 0DTE di giugno è la più alta del semestre; l'evoluzione da gennaio in poi è disponibile nel riepilogo H1. Un terzo del volume di opzioni di giugno è scaduto il giorno stesso dello scambio.

QuerySPY median quoted spread: campione di giugno vs maggio (secondi mercoledì)
L'esatto SQL dietro ogni numero
SELECT toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS session,
       round(quantileDeterministicIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, toUInt64(toUnixTimestamp64Micro(sip_timestamp)), bid_price > 0 AND ask_price >= bid_price), 3) AS med_spread_bps,
       round(count() / 1e6, 2) AS quote_updates_m,
       countIf(NOT (bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price)) AS invalid_dropped
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'SPY'
  AND ((sip_timestamp >= toDateTime64('2026-05-13 13:30:00', 9) AND sip_timestamp < toDateTime64('2026-05-13 20:00:00', 9))
    OR (sip_timestamp >= toDateTime64('2026-06-10 13:30:00', 9) AND sip_timestamp < toDateTime64('2026-06-10 20:00:00', 9)))
GROUP BY session
ORDER BY session ASC

Il costo per operare sul titolo principale del mercato ha seguito la stessa direzione: lo spread mediano quotato di SPY sul campione di sessioni di giugno (0.409 bps, 10 giugno) è più ampio rispetto a quello di maggio (0.27 bps, 13 maggio). Basis, dettagli: sessioni campionarie singole etichettate — il secondo mercoledì di ogni mese — non mediane dell'intero mese; le quotazioni non valide sono incluse nel panel.

Tassi: la curva si è mossa appena

QueryTreasury yields a giugno: 10-year, 2-year e 2s10s spread
L'esatto SQL dietro ogni numero
SELECT toString(date) AS d,
    round(yield_10_year, 2) AS y10,
    round(yield_2_year, 2) AS y2,
    round((yield_10_year - yield_2_year) * 100, 0) AS spread_2s10s_bp
FROM global_markets.treasury_yields
WHERE date >= toDate('2026-06-01') AND date <= toDate('2026-06-30')
  AND isNotNull(yield_10_year) AND isNotNull(yield_2_year)
ORDER BY date

Il dieci anni è terminato a giugno al 4.44% con lo spread 2s10s al 30 punti base — un mese tranquillo per i tassi rispetto a un semestre più movimentato (il riepilogo H1 analizza l'andamento della curva a sei mesi).

Il calendario: forte volume a fine trimestre, un giorno di scadenze mancante

QueryCalendar corporate di giugno — dividends, splits, listings, filings (gap index 30 giugno incluso)
L'esatto SQL dietro ogni numero
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date >= toDate('2026-06-01') AND ex_dividend_date <= toDate('2026-06-30')) AS ex_div_events,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date >= toDate('2026-06-01') AND execution_date <= toDate('2026-06-30')) AS splits,
    (SELECT count() FROM global_markets.stocks_ipos WHERE listing_date >= toDate('2026-06-01') AND listing_date <= toDate('2026-06-30')) AS ipos,
    (SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date >= toDate('2026-06-01') AND filing_date <= toDate('2026-06-30')) AS june_filings,
    (SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = toDate('2026-06-30')) AS filings_jun30,
    (SELECT count() FROM global_markets.stocks_news WHERE published_utc >= toDateTime('2026-06-01 00:00:00') AND published_utc < toDateTime('2026-07-01 00:00:00')) AS news_articles

Giugno ha registrato 6651 eventi ex-dividend, 164 split e 35 nuove quotazioni — tra queste la principale debuttante del mese, analizzata nel dettaglio in l'analisi del primo mese di SpaceX. Un dato sulle scadenze: l'indice SEC indica 68388 documenti depositati a giugno, ma il 30 giugno ne riporta solo 31 — l'indice relativo all'ultimo giorno del mese è materialmente incompleto (i giorni adiacenti ne contano migliaia), pertanto il totale di giugno è sottostimato in attesa del backfill del feed — parte di un pattern di fine mese del 2026 con la sua nota diagnostica.

La corsa ai dividendi

QueryEventi ex-dividend per giorno a giugno
L'esatto SQL dietro ogni numero
SELECT toString(ex_dividend_date) AS d, count() AS ex_div_events
FROM global_markets.stocks_dividends
WHERE ex_dividend_date >= toDate('2026-06-01') AND ex_dividend_date <= toDate('2026-06-30')
GROUP BY d
ORDER BY d

Il flusso dei dividendi si concentra all'inizio del mese: giugno è iniziato con 807 eventi ex-dividend in un solo giorno. Il grafico mostra il ritmo tipico del mese: un volume giornaliero nell'ordine delle centinaia, con picchi in corrispondenza della fine del mese. L'impatto reale di una data ex-dividend sul prezzo è approfondito in la spiegazione sugli ex-dividend.

Le posizioni short: entrambi i dati di giugno sono disponibili

QueryShort-interest settlements registrati: 29 maggio, 15 giugno e 30 giugno
L'esatto SQL dietro ogni numero
SELECT toString(settlement_date) AS settlement, count() AS tickers
FROM global_markets.stocks_short_interest
WHERE settlement_date >= toDate('2026-05-20')
GROUP BY settlement
ORDER BY settlement

Il settlement dello short interest avviene due volte al mese con un ritardo nella pubblicazione. Entrambi i dati di giugno sono ora disponibili: il settlement 2026-06-30 include i ticker 22207, dopo il file del 15 giugno con 22178 e quello del 29 maggio con 21987. Il volume short giornaliero è un dataset differente; la nota per il mese di giugno riguarda il file troncato del 29 giugno, riportato nel riepilogo settimanale e nel approfondimento del 29 giugno.

Il riepilogo della sessione

Query21 sessioni, verificate dal tape (incluso dato chiusura Juneteenth)
L'esatto SQL dietro ogni numero
SELECT
    (SELECT uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) 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-01 00:00:00')) AS june_sessions,
    (SELECT count() FROM global_markets.delayed_stocks_minute_aggs
     WHERE ticker = 'SPY' AND window_start >= toDateTime('2026-06-19 00:00:00') AND window_start < toDateTime('2026-06-20 00:00:00')) AS juneteenth_spy_bars,
    (SELECT countIf((toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) 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-01 00:00:00')) AS regular_bars_june

Giugno ha registrato 21 sessioni — Juneteenth (19 giugno) mostra 0 barre SPY, e le 8190 barre regolari corrispondono esattamente a ventuno sessioni complete da 390 minuti.

Note sui dati

Note complete sui dati
  • Lo short interest include il settlement del 30 giugno — entrambi i dati del mese sono registrati e riportati sopra.
  • Il giorno di riferimento per i filing del 30 giugno è materialmente incompleto (una manciata di filing amministrativi rispetto a migliaia nei giorni limitrofi); i totali di giugno sono sottostimati fino al completamento del feed. Ogni fine mese del 2026 il cui ultimo giorno di calendario è un giorno lavorativo presenta la stessa caratteristica — la nota diagnostica contiene le prove; il recap Q2 contiene la caveat su scala trimestrale.
  • Il file FINRA short-volume del 29 giugno è troncato su tutto il mercato — prove nel recap settimanale e nel deep-dive del 29 giugno.
  • Esclusione del volume-leader: un listing di giugno scambia sotto un simbolo riutilizzato ed è escluso dalla classifica in attesa della verifica dell'entità; il relativo post contiene le prove della verifica.
  • La breadth confronta l'ultima chiusura di giugno di ogni ticker con la sua ultima chiusura di maggio; i ticker privi di entrambe le chiusure sono esclusi per costruzione e le esclusioni del filtro di liquidità sono conteggiate nel panel.

Metodologia

  • Il periodo va dal 1 al 30 giugno 2026 — 21 sessioni, verificate tramite le barre osservate (il pannello delle ricevute sopra). I rendimenti mensili sono calcolati dall'apertura alla chiusura dell'ultima sessione in orario regolare all'interno del periodo.
  • Gli timestamp sono memorizzati in UTC e filtrati con limiti UTC grezzi; giugno 2026 è interamente in EDT, quindi l'orario regolare è 13:30–20:00 UTC. Il volume in dollari è il prodotto tra il prezzo di chiusura al minuto e il volume al minuto durante l'orario regolare.
  • I confronti con il mese precedente sono ricalcolati in tempo reale nella stessa query della riga di giugno — non vengono mai letti da un valore memorizzato. Il blocco storico di ogni giugno esegue la stessa operazione sull'intero tape al minuto (orario regolare Eastern-wall-clock — la convenzione pluriennale sicura per il DST — con il limite superiore fissato alla fine di questo mese e un limite minimo di sessioni mostrato per ogni anno); la verifica della profondità si trova nella metodologia del recap H1.
  • La generazione avviene tramite il percorso di sola lettura protetto; la pagina pubblica non interroga mai i dati in tempo reale. Stato del warehouse al 5 luglio 2026.

Questa è la prima edizione del recap mensile standard — l'edizione di luglio rimanderà a questa pagina. Per l'ultima settimana del mese nel dettaglio sessione per sessione, consultare il recap della settimana del 29 giugno; per il trimestre concluso questo mese, consultare il recap del Q2.