
Tratta le barre mancanti come gap espliciti: segnalale, indaga sul perché si sono verificate e non lasciare mai che un'imputazione su tutto il campione si infili in un backtest senza essere etichettata. Il default più sicuro è escludere dai risultati principali i segnali dipendenti dai gap ed eseguire qualsiasi versione "riempita" come caso di sensitività separato. Questo mantiene la tua valutazione riproducibile ed evita che un bias silenzioso si insinui nelle performance della strategia. Le sezioni seguenti trattano in ordine classificazione, rilevamento, visualizzazione e trattamento.
In breve:
- Escludi i segnali dipendenti dai gap o segmenta i backtest attorno ad essi per prevenire bias e mantenere l'integrità dei risultati, specialmente quando i gap sono causati da interruzioni del feed o festività.
- Categorizza le barre mancanti in base al meccanismo—MCAR, MAR o MNAR—poiché ciascuno richiede un approccio di gestione diverso, dalla semplice esclusione all'imputazione basata su modello.
- Esegui un audit della mancanza di dati misurando il totale dei dati mancanti, identificando i pattern e monitorando l'impatto sulle finestre di valutazione per valutare l'affidabilità dei dati prima dell'analisi.
- Visualizza i gap tramite grafici temporali e heat-map, e tieni separati i gap contigui perché le loro implicazioni di rischio possono superare il loro conteggio grezzo.
- Usa metodi di imputazione basati solo sul passato per i test di sensitività e documenta sempre chiaramente le scelte di imputazione per evitare look-ahead bias nel backtesting.
Indice
- Classificare le barre mancanti prima di intervenire
- Cosa causa realmente le barre mancanti nei feed di mercato
- Audit delle barre mancanti: cosa misurare e come
- Mostrare il gap o riempirlo per il grafico?
- Escludere, imputare o testare: scegliere un trattamento
- Evitare il look-ahead bias quando mancano delle barre
- Perché dati sorgente puliti riducono il rischio di barre mancanti
- Cosa insegnano davvero anni passati a inseguire i gap
- Ottenere dati che raramente ti mettono in questa situazione
- Fonti
- FAQ
Classificare le barre mancanti prima di intervenire
Non tutti i gap rappresentano lo stesso problema, e trattarli in modo identico è esattamente come gli errori silenziosi finiscono nell'equity curve di una strategia. La prima distinzione è tra mancanza implicita ed esplicita: implicita significa che il timestamp semplicemente non esiste nella tua tabella, mentre esplicita significa che la riga esiste ma il valore è NaN. Materializzare i gap impliciti in espliciti, presto, è la mossa che ti permette di contarli, tracciarli graficamente e ragionarci sopra invece di perderli in un indice silenziosamente accorciato.
La seconda distinzione proviene dalla letteratura sui dati mancanti e si applica in modo pulito ai feed di mercato:
- MCAR (missing completely at random): un tick isolato e raro, perso senza relazione con prezzo, volume o sessione, vicino a un lancio di moneta.
- MAR (missing at random, condizionato ai dati osservati): gap che si concentrano attorno a finestre note di bassa liquidità, come l'ultima ora prima di una festività.
- MNAR (missing not at random): gap legati al valore non osservato stesso, come un feed che perde barre durante picchi estremi di volatilità.
Una revisione PMC sulle tassonomie dei dati mancanti sottolinea che è il meccanismo a dover guidare il metodo: MCAR tollera la semplice esclusione, MAR spesso giustifica un'imputazione basata su modello condizionata alla variabile correlata, e MNAR resiste alla maggior parte delle soluzioni standard perché la mancanza stessa porta con sé un'informazione che non puoi recuperare.
Cosa causa realmente le barre mancanti nei feed di mercato
La maggior parte dei gap si riconduce a una manciata di cause, e identificare quale di queste stai osservando determina se devi correggere la pipeline o adattare la tua analisi. I periodi legittimi di assenza di trading, in cui uno strumento semplicemente non ha stampato perché non è stato scambiato nulla, sono normali e non andrebbero corretti allo stesso modo di un difetto. Come hanno sottolineato i professionisti in discussioni sul comportamento dei feed degli exchange, una serie continua non significa sempre una riga ogni minuto.
Le origini più comuni includono:
- Festività e chiusure di sessione degli exchange, che producono gap prevedibili e allineati al calendario.
- Interruzioni del feed, dove la connessione del provider si interrompe per un tratto su molti strumenti contemporaneamente.
- Errori del bar-builder, dove la logica di aggregazione gestisce male una condizione di confine e salta una barra.
- Transizioni di fuso orario e ora legale, che spostano i confini di sessione e possono creare o duplicare timestamp.
Per un triage rapido: controlla se il gap appare su molti strumenti allo stesso timestamp (indica un'interruzione del feed), se ricorre nelle stesse date di calendario ogni anno (indica festività), oppure se appare solo nella pipeline di un singolo strumento (indica un bug del bar-builder). Incrociare i log del provider con il tuo stesso indice di timestamp risolve la maggior parte di questi casi in pochi minuti.
Audit delle barre mancanti: cosa misurare e come
Un audit delle barre mancanti deve rispondere a tre domande: quanto manca, dove, e con quale pattern. Gap casuali di singola barra sparsi lungo un anno si comportano in modo molto diverso da un'interruzione di tre ore concentrata in un'unica sessione, anche quando la percentuale grezza appare identica.
Un workflow di audit funzionante:
- Rileva i gap impliciti scansionando l'indice dei timestamp alla ricerca di slot mancanti rispetto alla frequenza attesa, l'equivalente delle operazioni
has_gapsoscan_gapsdescritte nella vignette tsibble sulla mancanza implicita. - Materializza i gap in righe NA esplicite con un'operazione di tipo
fill_gaps, da eseguire prima di qualsiasi feature di lag, lead o rolling-window, in modo che gli errori non si propaghino silenziosamente a valle. - Riassumi le lunghezze dei gap contigui in una distribuzione, poiché una manciata di gap lunghi di solito conta più di molti gap isolati di singola barra.
- Riporta la mancanza di dati per strumento e per sessione, non solo come un singolo numero aggregato, poiché la ricerca sui dati finanziari avverte che la mancanza di dati è spesso sistematica piuttosto che distribuita casualmente.
- Monitora la percentuale di finestre di backtest toccate da un gap qualsiasi, così sai quanto del tuo periodo di valutazione è interessato prima di trarre conclusioni.
Ogni report di audit dovrebbe includere la mancanza di dati per strumento, la mancanza di dati per sessione, un istogramma delle lunghezze dei gap contigui e la quota di finestre di test interessate. Questi quattro numeri, esaminati insieme, di solito rivelano in pochi minuti se il risultato di una strategia è affidabile oppure è un artefatto di una settimana di dati scadenti.
Consiglio pratico: Automatizza la prima passata con un job pianificato che esegue la scansione dei gap e l'istogramma su ogni nuovo pull di dati, così il triage inizia prima ancora che un essere umano apra il file.
Mostrare il gap o riempirlo per il grafico?
Se preservare visivamente un gap oppure mascherarlo dipende interamente da cosa il grafico deve comunicare. Quando la continuità temporale è importante, ad esempio quando un lettore deve vedere esattamente quali minuti mancano, materializza il gap e rappresentalo con un dominio temporale esplicito in modo che lo slot vuoto rimanga visibile, l'approccio raccomandato nella vignette tsibble sulla mancanza implicita. L'imputazione solo per la visualizzazione ha senso in casi limitati, come una dashboard che effettua confronti categoriali in cui un valore riempito è chiaramente etichettato come stimato e non viene mai scambiato per un dato osservato.
Un insieme pratico di grafici diagnostici copre la maggior parte degli audit:
- Un grafico a barre della mancanza per colonna, che mostra la quota di barre mancanti per strumento o feed.
- Una heat-map di co-occorrenza dei NaN, che mostra quali strumenti o sessioni mancano insieme, il che di solito espone rapidamente le interruzioni a livello di feed.
- Un grafico temporale con ombreggiatura dei gap, così i revisori possono vedere esattamente dove e per quanto tempo dura ogni gap.
I gap contigui meritano una propria linea di analisi in qualsiasi audit, poiché uno studio sui dati finanziari mancanti rileva che la lunghezza del gap che si sovrappone alle finestre di esecuzione dovrebbe guidare la priorità di intervento più del conteggio grezzo delle barre mancanti. Due coppie strumento-giorno con lo stesso tasso di mancanza del 2% possono comportare rischi molto diversi a seconda che quel 2% sia distribuito uniformemente oppure concentrato in un unico blocco di tre ore.
Escludere, imputare o testare: scegliere un trattamento
Una volta che un gap è stato classificato e misurato, la scelta del trattamento si restringe rapidamente. Per i backtest principali, il default sicuro è escludere i segnali e i rendimenti che dipendono dall'intervallo non risolto, oppure segmentare interamente il test attorno al gap. Per l'analisi descrittiva, riporta sia la serie grezza sia qualsiasi versione imputata fianco a fianco, piuttosto che sceglierne una in silenzio.
Quando l'imputazione è giustificata, tre ricette coprono la maggior parte dei casi:
- Last-observation-carry-forward solo con dati passati, che non guarda mai oltre il gap e rimane sicura per la valutazione sequenziale.
- Modelli rolling-window addestrati solo su dati passati, utili quando un carry-forward piatto distorcerebbe feature sensibili alla volatilità.
- Approcci di imputazione multipla o consenso bayesiano che combinano posteriori basate solo sul passato e sull'intero campione per gestire il trade-off tra bias e varianza, un approccio dettagliato nella ricerca sull'imputazione di serie temporali e il look-ahead bias.
Ogni ricetta bilancia bias e varianza in modo diverso: il carry-forward ha bassa varianza ma può sottostimare la volatilità, mentre i metodi informati sull'intero campione riducono la varianza al costo di far trapelare informazioni future nel passato.
Il test di sensitività lega insieme la scelta. Esegui la strategia sulla serie grezza con i gap esclusi e di nuovo sulla versione imputata, poi confronta i set di metriche fianco a fianco invece di riportare solo la versione che performa meglio.

Consiglio pratico: Mantieni la serie originale intatta in archivio e genera copie imputate come artefatti derivati, così ogni test di sensitività può essere rieseguito da zero senza dover ri-derivare le assunzioni.
Evitare il look-ahead bias quando mancano delle barre
Il rischio maggiore con i dati imputati in un backtest è il look-ahead bias: riempire un gap usando informazioni successive al gap, anche indirettamente tramite un modello sull'intero campione, permette alla strategia di "vedere" dati che non avrebbe avuto in trading live. La ricerca sull'imputazione delle serie temporali mostra che i metodi di imputazione sull'intero campione, per quanto statisticamente attraenti, possono contaminare in questo modo la valutazione out-of-sample. L'imputazione solo con dati passati, o metodi che separano esplicitamente le posteriori basate solo sul passato da quelle sull'intero campione, evitano questa contaminazione.
Una checklist operativa prima che qualsiasi backtest tocchi dati imputati:
- Contrassegna ogni timestamp che è stato riempito, non solo quelli originariamente segnalati come mancanti.
- Ri-esegui il backtest segmentato attorno ai gap come base di riferimento, prima di introdurre qualsiasi riempimento.
- Tratta l'esecuzione imputata come un caso di sensitività, mai come il risultato principale.
- Documenta il metodo di imputazione e le sue assunzioni insieme ai risultati, così un lettore può valutare il trade-off.
Presentare i risultati su tutti e tre i trattamenti rende la sensitività visibile invece di nasconderla in una nota a piè di pagina.
| Trattamento | Rischio di look-ahead | Uso tipico |
|---|---|---|
| Grezzo, gap esclusi | Nessuno | Risultato principale del backtest |
| Imputato, solo passato | Basso | Caso di sensitività, strategie sequenziali |
| Imputato, intero campione | Alto | Solo analisi descrittiva, mai backtest principale |
Se la riga imputata sull'intero campione mostra una performance significativamente migliore rispetto alla riga grezza, quel gap merita di essere indagato prima di fidarsi della strategia.
Perché dati sorgente puliti riducono il rischio di barre mancanti
Gran parte del tempo dedicato al triage delle barre mancanti serve a stabilire se un gap è un legittimo periodo di assenza di trading oppure un difetto del feed, un lavoro che inizia prima di qualsiasi modellazione. BacktestMarket offre dati storici intraday a barre di un minuto puliti su forex, metalli, indici azionari, obbligazioni e materie prime dal 2014, con dataset mantenuti per l'importazione diretta in MT4 e MT5. Questa coerenza riduce la quantità di lavoro di classificazione dei gap che un analista deve svolgere prima che un dataset sia pronto per il backtest.
Il supporto in tempo reale da parte degli ingegneri che raccolgono i dati significa che un gap sospetto può essere verificato direttamente rispetto alla provenienza, invece di essere ipotizzato solo a partire dai log. La verifica barra per barra accurata e una cronologia documentata delle rettifiche, che la piattaforma dichiara come proprio standard, contano soprattutto nel momento in cui un analista decide se un gap sia un difetto dei dati oppure un fatto di mercato.
Cosa insegnano davvero anni passati a inseguire i gap
Il mio ordine quotidiano è sempre lo stesso: prima un grafico di continuità, poi un istogramma delle lunghezze dei gap, infine un controllo sullo strumento che pesa di più nel portafoglio. Un gap inferiore a poche barre raramente blocca un test; un gap che copre un'intera sessione quasi sempre sì. Segnalami qualsiasi caso insolito in cui ti imbatti: quelli strani di solito sono i più istruttivi.
— Start
Ottenere dati che raramente ti mettono in questa situazione
Dati sorgente più puliti significano meno gap da classificare fin dall'inizio, ed è proprio questo il punto di forza del catalogo a barre di un minuto di BacktestMarket: file pronti all'importazione per MT4 e MT5, supporto da parte degli ingegneri quando una serie sembra anomala, e copertura su forex, metalli, indici e obbligazioni dal 2014.
Il dataset Cac 40 (MX) Back Adjusted 1mo-back-adjusted-1mo) è un esempio concreto di una serie di futures rettificata all'indietro (back-adjusted) costruita per essere importata senza bisogno prima di un audit manuale dei gap. Esplora il catalogo completo dei Dati Storici oppure consulta il Piano Annuale a 119€ all'anno per un accesso continuativo, insieme agli strumenti Expert Advisor e Indicatori.
Fonti
- Gestire la mancanza implicita con tsibble
- Time-Series Imputation with Wasserstein Interpolation for Optimal Look-Ahead-Bias and Variance Tradeoff
- Missing Financial Data Article (LBS Research)
- Handling missing data in research - PMC - NIH
Per interventi pratici, consulta le guide su come correggere i dati mancanti in MT4, audit dei dati M1 con gestione degli outlier, gap festivi nei dati di mercato, e come importare dati storici in NinjaTrader.
FAQ
Quanta mancanza di dati è accettabile in un dataset?
Non esiste una soglia universale; l'accettabilità dipende dalle chiusure attese, dalla frequenza delle barre, dalla sovrapposizione con i tuoi segnali e dalle esigenze di riproducibilità, secondo la ricerca sui dati finanziari relativa alle barre mancanti. Riporta la mancanza di dati per strumento, sessione e lunghezza dei gap contigui, piuttosto che affidarti a una singola percentuale aggregata.
Quali sono alcune tecniche per gestire i dati mancanti?
Le tecniche più comuni includono esclusione o segmentazione attorno ai gap, carry-forward solo con dati passati, imputazione basata su modello rolling-window, e metodi di imputazione multipla o consenso bayesiano, come delineato nella ricerca sui trade-off dell'imputazione e in una revisione PMC dei metodi per i dati mancanti. La scelta corretta dipende dal meccanismo di mancanza e dal fatto che il risultato alimenti o meno un backtest.
Quale tecnica gestisce meglio i valori mancanti per il backtesting?
Per i backtest in particolare, escludere i segnali dipendenti dai gap o segmentare il test attorno al gap è l'approccio primario più sicuro, poiché l'imputazione sull'intero campione rischia di introdurre look-ahead bias. L'imputazione solo con dati passati è il fallback preferito quando un riempimento è inevitabile, secondo gli studi sull'imputazione delle serie temporali.
Come possono gli utenti gestire i dati mancanti nella pratica quotidiana?
Inizia con un grafico di continuità e un istogramma delle lunghezze dei gap per vedere dove e quanto grandi siano i gap, poi classifica ciascun gap come un legittimo periodo di assenza di trading oppure come un difetto del feed prima di scegliere una soluzione. Dati sorgente puliti e ben forniti, come i dataset mantenuti per l'importazione diretta in MT4 e MT5, riducono la frequenza con cui questo triage è necessario in generale.
Consigliati
- Audit prima di tutto per i dati di backtesting MT5: gap, timestamp, pronti per l'importazione
- Correggere i dati mancanti in MT4: una guida completa al recupero
- Come ottenere il 99% di qualità di modellazione in MT4 per i backtest
Risorse correlate
Esplora i pacchetti di dati storici di BacktestMarket per mettere in pratica le idee di questo articolo.

