Strasmore Research
Formazione Matt ConnorDi Matt Connor

Perché le quotazioni sono ritardate di 15 minuti

Perché le quotazioni azionarie arrivano con 15 minuti di ritardo? Licenze dei dati di borsa e costo reale di un quarto d’ora di prezzi obsoleti.

Le quotazioni azionarie sono ritardate di 15 minuti sulla maggior parte dei siti gratuiti per motivi di licenza. L’infrastruttura non è lenta: il prezzo esce dal matching engine di una borsa e raggiunge lo schermo in una frazione di secondo. I 15 minuti sono una clausola contrattuale, prevista dagli accordi che stabiliscono chi può mostrare i prezzi in tempo reale e quanto deve pagare per farlo.

Da dove proviene il prezzo di un’azione prima di arrivare a te

Una singola azione statunitense è scambiata contemporaneamente su più di una dozzina di sedi pubbliche, oltre a un lungo elenco di negoziazioni over-the-counter che comunica separatamente i propri prints. Ogni sede pubblica le proprie quotazioni e i propri scambi. I piani di settore consolidano tutte queste informazioni in un unico tape: un piano riguarda i titoli quotati al NYSE e un altro quelli quotati al Nasdaq. I processori che li gestiscono sono i SIP, abbreviazione di securities information processors. Il tape consolidato produce il national best bid and offer, cioè la migliore coppia di prezzi disponibile in quel momento, in qualunque sede, come spiegato nel dettaglio nella nostra guida a che cos’è il NBBO.

Le Borse vendono anche propri direct feed, più rapidi e dettagliati rispetto al tape consolidato, e concessi in licenza separatamente.

Perché le quotazioni azionarie sono ritardate di 15 minuti: la risposta sta nelle licenze

I market data rappresentano una fonte di ricavi per le borse. Ogni distributore di prezzi — broker, sito web, terminale o app per smartphone — sottoscrive accordi con le borse e con i piani di distribuzione dei dati di mercato. Questi accordi dividono gli stessi numeri in due prodotti. I dati in tempo reale sono soggetti a commissioni e vengono rendicontati ogni mese per singolo utente. I dati ritardati, quando hanno almeno 15 minuti, non rientrano più nella categoria dei dati in tempo reale. Un distributore può quindi offrirli gratuitamente senza conteggiare gli utenti.

I piani tariffari prevedono diversi addebiti: una commissione di accesso per il collegamento, una commissione mensile per ogni utente che può visualizzare un prezzo in tempo reale e commissioni non-display per le macchine che utilizzano i prezzi senza la supervisione di una persona. Le tariffe sono pubblicate e cambiano nella maggior parte degli anni. Per questo la struttura conta più degli importi dell’anno in corso. Per i prezzi in tempo reale qualcuno paga una commissione mensile per ogni utente. Nessuno paga per un prezzo vecchio di un quarto d’ora.

Questa è l’intera spiegazione del motivo per cui la versione gratuita è gratuita. Il volume è l’altra componente del costo di distribuzione dei prezzi in tempo reale: il flusso dei dati di mercato trasmette continuamente aggiornamenti delle quotazioni durante la seduta. Le opzioni rappresentano il caso estremo, come mostra la dimensione del flusso delle quotazioni sulle opzioni.

Quanto vale davvero un ritardo di 15 minuti

Un ritardo conta nella misura in cui il prezzo si muove durante quel lasso di tempo. Questo effetto è misurabile. Il grafico seguente prende ogni barra a un minuto delle sessioni regolari di SPY, il fondo che replica l’S&P 500, fino a giugno 2026, e la confronta con la barra di 15 minuti successiva. I dati sono raggruppati in base all’ora in cui si è verificata la barra iniziale.

QueryMovimento di SPY in 15 minuti, per ora di sessione (giugno 2026)
L'esatto SQL dietro ogni numero
WITH regular_bars AS
(
    SELECT
        toTimeZone(window_start, 'America/New_York')                      AS et,
        toTimeZone(window_start, 'America/New_York') + INTERVAL 15 MINUTE AS et_later,
        toFloat64(close)                                                  AS px
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND close > 0
      AND window_start >= '2026-06-01 00:00:00'
      AND window_start <  '2026-07-01 00:00:00'
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
)
SELECT
    formatDateTime(toStartOfHour(a.et), '%H:%i')                                                       AS et_time,
    round(quantileDeterministic(0.5)(abs(b.px / a.px - 1) * 100, toUInt64(toUnixTimestamp(a.et))), 3)   AS median_gap_pct,
    round(quantileDeterministic(0.95)(abs(b.px / a.px - 1) * 100, toUInt64(toUnixTimestamp(a.et))), 3)  AS p95_gap_pct,
    count()                                                                                            AS sample_count
FROM regular_bars AS a
INNER JOIN regular_bars AS b ON b.et = a.et_later
GROUP BY et_time
ORDER BY et_time
Run this yourself

Le barre dell’ora di apertura, che inizia alle 9:30 ET, hanno registrato nei 15 minuti successivi un movimento mediano di 0.125%, con un 95° percentile di 0.556%. Nell’ora 15:00, la mediana era pari a 0.065%. Ogni intervallo aggrega 630 coppie di barre a un minuto sovrapposte. Si tratta quindi di valori tipici, non dell’effetto casuale di una sola giornata. La curva non è piatta: un ritardo fisso nasconde più informazioni in alcune ore rispetto ad altre.

Quanto viene nascosto dipende anche dal titolo. La misurazione è la stessa per sei ticker molto seguiti, nello stesso mese.

QueryGap di 15 minuti per sei ticker noti (giugno 2026)
L'esatto SQL dietro ogni numero
WITH regular_bars AS
(
    SELECT
        ticker,
        toTimeZone(window_start, 'America/New_York')                      AS et,
        toTimeZone(window_start, 'America/New_York') + INTERVAL 15 MINUTE AS et_later,
        toFloat64(close)                                                  AS px
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'KO', 'AAPL', 'MSFT', 'NVDA', 'AMD')
      AND close > 0
      AND window_start >= '2026-06-01 00:00:00'
      AND window_start <  '2026-07-01 00:00:00'
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
)
SELECT
    a.ticker                                                                                           AS ticker,
    round(quantileDeterministic(0.5)(abs(b.px / a.px - 1) * 100, toUInt64(toUnixTimestamp(a.et))), 3)   AS median_gap_pct,
    round(quantileDeterministic(0.99)(abs(b.px / a.px - 1) * 100, toUInt64(toUnixTimestamp(a.et))), 3)  AS p99_gap_pct
FROM regular_bars AS a
INNER JOIN regular_bars AS b ON b.ticker = a.ticker AND b.et = a.et_later
GROUP BY ticker
ORDER BY median_gap_pct DESC
Run this yourself

AMD ha registrato il divario tipico più ampio dei sei, pari a 0.361%, mentre SPY ha mostrato quello più contenuto, pari a 0.071%. La colonna del 99° percentile merita una seconda lettura: nell’1% peggiore delle finestre di 15 minuti di quel mese, AMD si è mosso di 2.532%.

Ecco la stessa analisi applicata a una sola giornata. Il grafico individua la sessione di giugno 2026 con il maggiore range intraday di SPY, poi traccia due linee: il prezzo live a ogni intervallo di dieci minuti e quello che una pagina con 15 minuti di ritardo mostrava in quel momento.

QueryPrezzo live rispetto alla vista con ritardo di 15 minuti, una sessione SPY
L'esatto SQL dietro ogni numero
WITH
    widest_session AS
    (
        SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND close > 0
          AND window_start >= '2026-06-01 00:00:00'
          AND window_start <  '2026-07-01 00:00:00'
          AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
               + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
          AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
               + toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
        GROUP BY d
        ORDER BY (max(toFloat64(high)) - min(toFloat64(low))) / min(toFloat64(low)) DESC
        LIMIT 1
    ),
    session_bars AS
    (
        SELECT
            toTimeZone(window_start, 'America/New_York')                      AS et,
            toTimeZone(window_start, 'America/New_York') - INTERVAL 15 MINUTE AS et_earlier,
            toFloat64(close)                                                  AS px
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND close > 0
          AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM widest_session)
          AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
               + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
          AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
               + toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
    )
SELECT
    formatDateTime(a.et, '%H:%i')  AS et_time,
    round(a.px, 2)                 AS live_price,
    round(b.px, 2)                 AS delayed_price,
    round(abs(a.px - b.px), 2)     AS gap_delta,
    formatDateTime(a.et, '%b %e')  AS session_label
FROM session_bars AS a
INNER JOIN session_bars AS b ON b.et = a.et_earlier
WHERE toMinute(a.et) % 10 = 0
ORDER BY a.et
Run this yourself

Il Jun 9, alle 09:50 ET, SPY quotava live 746.13, mentre la visualizzazione ritardata indicava 744.22, con una differenza di $1.91. Alle 15:50, i due valori erano rispettivamente 735.29 e 734.49. Le linee si sovrappongono quando il mercato è stabile e si separano quando il prezzo si muove. Un ritardo non costa nulla in un mercato fermo, ma pesa maggiormente proprio nei momenti che attirano l’attenzione degli investitori.

La regola di visualizzazione: cosa deve mostrarti un sito web

Il Regulation NMS prevede un obbligo di visualizzazione consolidata, stabilito dalla Rule 603(c). Un fornitore che mostra al pubblico i dati sulle quotazioni deve presentare informazioni consolidate: il national best bid and offer insieme all’ultima vendita consolidata, invece di spacciare la quotazione di una sola venue per il prezzo. I fornitori devono inoltre indicare che i dati differiti sono delayed. È da qui che deriva la nota in caratteri piccoli in fondo a ogni pagina finanziaria. Per chi legge una quotazione gratuita, ne conseguono due aspetti.

  • Una quotazione live gratuita proveniente da un solo exchange è un prezzo reale, ma non è il NBBO. Mostra il book di una venue, che può avere spread più ampio del migliore disponibile.
  • Una pagina con l’ultima transazione live, ma senza bid o ask, è del tutto normale. Last sale e quotazioni sono prodotti concessi in licenza separatamente, e last sale è il più economico.

Per capire cosa accade quando due venue si incontrano al vertice del book, vedi mercati locked e crossed.

Professional o non professional: il test che determina quanto paghi

Il costo dei dati in tempo reale per un privato dipende dalla classificazione. E la classificazione dipende dal tuo lavoro, non dal tuo patrimonio. Secondo la terminologia usata dalle borse, sei un abbonato non professional quando soddisfi tutte le condizioni seguenti.

  • Sei una persona fisica che utilizza i dati per scopi personali, non per conto di una società o di qualsiasi altra entità.
  • Non sei registrato o abilitato presso la SEC, la CFTC, un’autorità statale di vigilanza sui mercati mobiliari, una borsa o associazione di operatori, oppure un futures contract market.
  • Non svolgi attività di investment adviser o asset manager e non sei dipendente con mansioni che richiederebbero una di queste registrazioni.
  • Non utilizzi i dati per finalità professionali, nemmeno presso un datore di lavoro che rimborsa l’abbonamento.

Se non rispetti anche una sola di queste condizioni, le borse ti classificano come professional. Il canone viene addebitato da ciascuna borsa, per utente e per mese, a un multiplo della tariffa non professional. Un junior analyst di un fondo che dispone di un piccolo conto personale è professional. Un investitore in pensione con un portafoglio ampio, che opera esclusivamente con il proprio denaro, non lo è. I distributori sono tenuti a raccogliere la tua risposta e a comunicarla. Per questo ogni registrazione a un servizio di dati in tempo reale chiede informazioni sul datore di lavoro e sulle tue registrazioni.

Che cos’è una quotazione snapshot?

Uno snapshot è una singola rilevazione effettuata nel momento in cui la richiedi: l’ultimo prezzo oppure il bid e ask correnti, restituiti una volta sola e mai aggiornati. Uno stream è invece un abbonamento permanente, in cui ogni variazione viene trasmessa man mano che si verifica. Le licenze applicano prezzi diversi ai due servizi, spesso con un costo per query anziché per utente al mese. Per questo una API gratuita può offrire un endpoint per snapshot ritardati, ma non uno stream live. Se aggiorni uno snapshot ogni secondo, di fatto hai ricostruito uno stream, e gli accordi di licenza sono formulati per impedirlo.

Come capire se il prezzo visualizzato è ritardato

  • Il timestamp è l’unico indicatore affidabile. Una quotazione live riporta un orario entro uno o due secondi rispetto all’orologio ET corrente.
  • Anche il massimo della giornata e i volumi progressivi diventano obsoleti. Una pagina ritardata può quindi non mostrare un massimo raggiunto dal mercato dieci minuti prima.
  • Nei primi 15 minuti dall’apertura delle 9:30 ET, una pagina ritardata non contiene ancora dati della seduta corrente e mostra la chiusura precedente o un print del premarket.
  • Il test del congelamento, cioè osservare se il numero cambia, funziona solo sui titoli che si muovono.

Quest’ultimo metodo richiede dati a supporto.

QueryFrequenza di variazione dell’ultimo prezzo, minuto per minuto (giugno 2026)
L'esatto SQL dietro ogni numero
WITH regular_bars AS
(
    SELECT
        ticker,
        toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
        toTimeZone(window_start, 'America/New_York')         AS et,
        toFloat64(close)                                     AS px
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'KO', 'AAPL', 'MSFT', 'NVDA', 'AMD')
      AND close > 0
      AND window_start >= '2026-06-01 00:00:00'
      AND window_start <  '2026-07-01 00:00:00'
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
),
stepped AS
(
    SELECT
        ticker,
        et,
        px,
        lagInFrame(px) OVER (PARTITION BY ticker, session_date ORDER BY et
                             ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_px
    FROM regular_bars
)
SELECT
    ticker,
    round(100 * countIf(px != prev_px) / count(), 1)                                                       AS minutes_price_moved_pct,
    round(quantileDeterministic(0.5)(abs(px / prev_px - 1) * 10000, toUInt64(toUnixTimestamp(et))), 1)      AS median_move_bps
FROM stepped
WHERE prev_px > 0
GROUP BY ticker
HAVING count() > 0
ORDER BY minutes_price_moved_pct DESC
Run this yourself

Fino a giugno 2026, AMD ha registrato un prezzo diverso da quello del minuto precedente nel 99.8% dei minuti della seduta regolare, con una variazione mediana minuto su minuto di 9.6 basis points; un basis point corrisponde a un centesimo di punto percentuale. KO è stato il titolo che ha aggiornato meno spesso il prezzo tra i sei, con una frequenza pari a 94.1%. Su titoli così attivi, un last price che non cambia per diversi minuti nel corso della seduta è un indizio attendibile del fatto che si stia visualizzando un dato ritardato o memorizzato nella cache. Su un titolo thinly traded, la stessa immobilità è normale. Per questo il timestamp resta il test più affidabile.

Quali quotazioni azionarie gratuite sono davvero in tempo reale

Due fonti forniscono in modo affidabile prezzi live ai privati, mentre un’etichetta comune merita un esame più attento.

  • Un conto di intermediazione finanziato. I broker detengono per i propri clienti l’autorizzazione prevista per i non professionisti e trasmettono le quotazioni live tramite l’app. È per questo che nel modulo di apertura del conto venivano richiesti i dati sul datore di lavoro.
  • Il sito dell’operatore di una borsa, per i titoli quotati su quella borsa. I dati sono in tempo reale e provengono da una sola sede di negoziazione: mostrano quindi un singolo book, non il NBBO consolidato.
  • Qualsiasi servizio che pubblicizzi quotazioni gratuite in tempo reale senza login e senza autocertificazione. Verifica il timestamp della quotazione prima di farvi affidamento.

Quando la destinazione è un programma anziché uno schermo, la classificazione cambia di nuovo: il consumo tramite macchina è soggetto a una licenza non display, disciplinata da un tariffario distinto da quello per singolo utente. I nostri approfondimenti su API gratuite per dati di mercato azionario e interrogare i dati di mercato con SQL illustrano questi livelli.

FAQ

Perché le quotazioni azionarie sono ritardate esattamente di 15 minuti?

Quindici minuti è il limite oltre il quale, in base agli accordi sulla diffusione dei dati di borsa, i prezzi azionari statunitensi non sono più considerati un prodotto real time soggetto a commissione. Un distributore può pubblicare dati vecchi di almeno quell’intervallo senza comunicare il numero di utenti.

Cosa rende qualcuno un abbonato professionale ai dati di mercato?

Rientrano in questa categoria la registrazione presso un’autorità di vigilanza sui mercati azionari o futures, l’impiego in un ruolo di investimento, l’acquisizione dei dati per conto di un’entità o qualsiasi uso commerciale dei prezzi. Il patrimonio netto e la dimensione del conto non hanno alcuna rilevanza.

Come posso capire se una quotazione azionaria è ritardata?

Confronta il timestamp della quotazione con l’ora corrente ET e verifica la presenza dell’etichetta di ritardo che i fornitori sono tenuti a mostrare. Su un titolo molto scambiato durante il normale orario di mercato, anche un prezzo che resta invariato per diversi minuti è un ulteriore indizio.

Le quotazioni real time gratuite coincidono con il NBBO?

Spesso no. La quotazione gratuita di una singola borsa mostra il book di quella venue. Il NBBO è il miglior bid e offer disponibili su tutte le venue, calcolati a partire dal consolidated tape.

Il ritardo di 15 minuti conta per i dati di fine giornata?

No. Una volta chiusa la seduta, la versione ritardata e quella real time del prezzo di chiusura o del volume giornaliero sono identiche. Il ritardo incide solo durante la seduta.


Ogni pannello qui include il codice SQL che lo ha prodotto, quindi qualsiasi numero riportato sopra può essere ricalcolato su un altro ticker o in un altro mese. Per misurare quanto valgono 15 minuti su un titolo che segui, formula la richiesta in inglese corrente sul terminale Strasmore.

#market data#quotes#sip#exchange fees#nbbo