
Tratta i gap festivi come regimi strutturali, guidati dal calendario, e modellali esplicitamente con regressori esogeni. Non ricorrere a un riempimento naive per default. Esegui l'imputazione solo quando la tua pipeline ha davvero bisogno di una serie continua, che si tratti di un modello state-space che si blocca con timestamp mancanti o di un sistema di portafoglio che si aspetta valorizzazioni giornaliere.
Il flusso di lavoro predefinito che regge su tutte le asset class: contrassegna ogni festività usando un calendario di borsa, calcola una metrica di dimensione del gap per ogni chiusura, e indirizza i gap grandi o multi-giorno verso la conservazione piuttosto che verso lo smoothing. I gap piccoli, guidati dalla liquidità, possono generalmente accettare un riempimento basato su modello. I gap grandi, guidati da notizie, dovrebbero rimanere visibili al tuo modello come discontinuità, perché appiattirli distrugge esattamente il segnale che stai cercando di catturare.
- Contrassegna le festività con un calendario di borsa appropriato, non con una maschera generica del weekend.
- Imposta una soglia di dimensione del gap per classe di strumento prima di decidere se riempire o segnalare.
- Usa dummy per eventi più imputazione state-space in stile Kalman per i task che richiedono continuità.
- Preserva le discontinuità grezze in qualsiasi backtest che testa la logica di esecuzione o di rischio.
Pro Tip: Esegui il test della soglia di dimensione del gap sia rispetto alla probabilità di riempimento sia rispetto alla volatilità post-gap. Gap di dimensione relativa simile su equity e FX possono comportarsi diversamente, quindi le soglie dovrebbero essere specifiche per classe di asset.
Punti Chiave
I gap festivi dovrebbero essere contrassegnati con un calendario di borsa e modellati come regressori esogeni, con l'imputazione riservata ai task che richiedono davvero una serie continua.
| Punto | Dettagli |
|---|---|
| Classifica prima di gestire | Separa chiusure di borsa, disallineamenti tra listing incrociati e spostamenti di osservanza, perché ciascuno richiede una soluzione diversa. |
| Usa l'ampiezza del gap come regola | I gap piccoli si riempiono rapidamente e possono essere "fadati"; i gap grandi, guidati da notizie, si comportano come movimenti breakaway e vanno preservati. |
| Abbina il metodo al task a valle | Preserva le discontinuità per backtest di esecuzione e rischio; imputa solo per modelli che richiedono continuità. |
| Valida su più regimi festivi | Il walk-forward testing su più anni cattura overfitting che una singola divisione in-sample non individua. |
| Parti da dati puliti e taggati per calendario | I dataset a barre di 1 minuto di Backtestmarket includono timestamp normalizzati che semplificano l'allineamento al calendario di borsa per tutto questo flusso di lavoro. |
Indice
- Gap Festivi nei Dati di Mercato: Una Tassonomia per Quant
- Cosa Succede a Prezzi e Volumi Attorno alle Festività
- Come Rilevare e Misurare un Gap Festivo?
- Metodi per Gestire e Imputare i Gap Festivi
- Modellare le Festività Direttamente nelle Previsioni delle Serie Temporali
- Backtesting Attorno alle Festività Senza Illudersi
- Una Pipeline Pratica da Copiare nel Documento del Tuo Team
- Un Mini Caso di Studio: Scelta dell'Imputazione ed Esiti del Backtest
- Metadati Festivi Più Puliti Iniziano da Dati Sorgente Più Puliti
- Domande Frequenti
- Fonti
Gap Festivi nei Dati di Mercato: Una Tassonomia per Quant
Non tutti i gap nel tuo feed derivano dalla stessa causa, e trattarli come un'unica categoria è dove la maggior parte delle pipeline di preprocessing sbaglia. Quattro tipi ricorrono frequentemente nei dataset intraday e giornalieri.
Le chiusure per festività di borsa sono il caso più semplice: un singolo mercato chiude per un giorno (il Ringraziamento al NYSE, la Golden Week alla borsa di Shanghai), e il tuo feed mostra un buco calendariale netto senza confusione sui timestamp.
I gap da disallineamento tra listing incrociati sono più disordinati. Quando una piazza che tratta un titolo è chiusa mentre uno strumento correlato o cross-listed continua a scambiare altrove, la price discovery sul nome chiuso ritarda. La riapertura mostra spesso un salto che riflette diverse sessioni di informazioni accumulate, non le notizie di un singolo giorno.
I gap overnight, di weekend e multi-giorno si accumulano quando una festività cade accanto a un weekend, producendo una chiusura di tre o quattro giorni. I mercati FX, che scambiano quasi continuamente, trattano questi casi diversamente dalle equity, che hanno già chiusure di weekend incorporate.
Le festività con osservanza spostata sono la trappola silenziosa. Quando una festività cade in un weekend, molte borse la osservano nel giorno feriale più vicino, e quella data osservata può differire per paese, per anno e persino per suddivisione. Sbagliare la data osservata fa sì che il tuo "flag di festività" semplicemente non colga la chiusura reale, o peggio, contrassegni un normale giorno di trading come un gap.
Queste distinzioni contano perché puntano a soluzioni diverse: l'assottigliamento della liquidità richiede una gestione attenta al volume, mentre i disallineamenti tra mercati richiedono un modello attento al ritardo (lag-aware) piuttosto che un riempimento nello stesso giorno.
Cosa Succede a Prezzi e Volumi Attorno alle Festività
Le chiusure festive non si comportano come dati mancanti casuali. Le chiusure multi-giorno producono un trading post-festivo misurabilmente diverso rispetto a una sessione ordinaria. Le ricerche sui gap di trading legati alle festività mostrano che le chiusure possono ritardare la trasmissione dei prezzi tra mercati cross-listed, producendo gap che riflettono un vero repricing piuttosto che rumore da un order book sottile.
Tre fatti stilizzati ricorrono con abbastanza costanza da costruirci intorno delle regole di rischio. Primo, la sessione pre-festiva porta spesso un modesto drift positivo sulle equity, un pattern riportato in molteplici studi stagionali sulle serie temporali finanziarie. Secondo, la prima sessione di trading dopo una chiusura multi-giorno tende a girare più "calda" in termini di volatilità realizzata rispetto a una sessione media, in gran parte perché diversi giorni di informazioni vengono prezzati tutti in una volta. Terzo, e più utile operativamente, la probabilità di gap-fill decade in modo non lineare rispetto alla dimensione del gap.
| Dimensione del gap (relativa) | Comportamento di riempimento approssimativo | Implicazione pratica |
|---|---|---|
| Gap piccoli per equity e FX, sotto le soglie comunemente riconosciute per il comportamento di riempimento | Alta probabilità di riempimento, mean-reverting | Sicuro da "fadare" o riempire |
| Medio | Misto, dipendente dalla liquidità | Richiede contesto di volume prima di decidere |
| Grande (multi-giorno, guidato da notizie) | Bassa probabilità di riempimento, spesso breakaway | Da trattare come rischio direzionale, non come reversione |
Quel decadimento non è graduale. Il lavoro empirico su overnight and weekend gap risk documenta un calo marcato della probabilità di riempimento una volta che i gap superano soglie di ampiezza specifiche, con i gap piccoli che si chiudono rapidamente attraverso l'ordinaria liquidità mean-reverting e i gap più grandi che si comportano come movimenti breakaway che si estendono piuttosto che invertirsi. Nel FX in particolare, i gap di weekend sotto circa 30 pip tendono a chiudersi entro le prime ore della nuova sessione, mentre i gap oltre quella soglia più spesso segnano l'inizio di un movimento direzionale piuttosto che un rimbalzo verso la chiusura di venerdì. Quel comportamento di soglia è il fatto stilizzato più actionable in tutto questo argomento: ti dice esattamente dove tracciare il confine tra un trade di fade e un evento di rischio.
Come Rilevare e Misurare un Gap Festivo?
Il rilevamento sembra banale finché la tua pipeline non confonde una vera festività con un'interruzione dei dati, un'operazione societaria o un timestamp errato. Costruisci il controllo a strati, piuttosto che affidarti a un solo segnale.
Il rilevamento basato su calendario viene per primo. Costruisci un oggetto calendario di borsa piuttosto che hardcodare le date, poiché le festività osservate si spostano di anno in anno. La classe pandas.tseries.holiday.Holiday ti permette di definire festività ricorrenti e osservate programmaticamente e calcolare le date esatte delle festività tra due limiti calendariali qualsiasi, il che elimina la manutenzione manuale che rompe la maggior parte dei calendari fatti in casa.
Il rilevamento delle discontinuità nei timestamp viene secondo, come cross-check. Confronta il numero atteso di barre con quello effettivo per ogni giorno di trading; una discrepanza segnala o una festività che il tuo calendario ha mancato o un problema del feed dati.
Il rilevamento dei salti di prezzo viene terzo, misurando l'effettivo delta close-to-next-open. Questo cattura gap che il tuo calendario non aveva anticipato, come una chiusura di mercato non programmata o una chiusura anticipata che non hai codificato.
Segui questa checklist prima di fidarti di qualsiasi flag di gap:
- Allinea tutti i timestamp al fuso orario locale della borsa, non a quello del tuo server.
- Conferma l'identificatore ufficiale della borsa per evitare di confondere piazze con nomi simili.
- Controlla le regole di mezza giornata, poiché una sessione accorciata può sembrare un gap parziale se non ne tieni conto.
- Escludi le operazioni societarie (frazionamenti, dividendi speciali) che possono produrre un salto di prezzo che imita un gap festivo.
- Imposta una soglia di ampiezza per classe di strumento (per esempio, una variazione percentuale relativa per le equity, un conteggio di pip per le coppie FX) prima di classificare un gap come rilevante.
Metodi per Gestire e Imputare i Gap Festivi
Il metodo giusto dipende interamente da cosa alimenterà il gap. Un backtest che testa la logica di esecuzione richiede un trattamento diverso rispetto a un modello previsionale che necessita di una serie di input continua, e usare la stessa soluzione per entrambi è il modo in cui i quant finiscono con backtest che sembrano ottimi ma falliscono in produzione.
L'etichettatura e la segnalazione dovrebbero essere il tuo default per qualsiasi cosa tocchi rischio o esecuzione. Aggiungi una colonna indicatore binaria per la festività e lascia intatta la serie dei prezzi. Questo preserva la vera discontinuità per qualsiasi logica a valle a cui importi il comportamento reale del mercato, e non costa nulla in termini computazionali.
I riempimenti naive (carry-forward o backward fill) sono rapidi ma pericolosi. Portare avanti l'ultimo prezzo sopprime artificialmente la volatilità misurata attorno alla festività, il che distorce qualsiasi metrica di rischio calcolata su quella finestra. Va bene per una dashboard che ha solo bisogno di un valore in ogni cella. È una passività in tutto ciò che stima la varianza.
L'interpolazione (lineare o spline) attenua la transizione ma inventa informazioni che non hai. Uno studio che confronta strategie di interpolazione per gap indotti da festività nei titoli tecnologici NASDAQ ha rilevato che l'interpolazione basata su modello ha migliorato l'accuratezza predittiva rispetto ai riempimenti naive per alcuni task previsionali, sebbene l'esito dipendesse molto da quale metodo veniva scelto e da come era strutturato il gap. Questo è l'avvertimento chiave: l'interpolazione non è un upgrade gratuito rispetto al carry-forward, è un insieme diverso di ipotesi che può aiutare o danneggiare a seconda della serie.
L'imputazione basata su modello (filtri di Kalman, modelli state-space, SARIMAX con termini esogeni, processi gaussiani) è la scelta più difendibile quando la continuità è davvero necessaria. Questi approcci usano le dinamiche sottostanti della serie piuttosto che una regola meccanica, quindi tendono a produrre stime di incertezza più realistiche attorno al valore imputato. Il costo è la complessità di ingegnerizzazione e il rischio di overfitting del modello di imputazione stesso se non si presta attenzione alla validazione.
Le dummy esogene per festività saltano del tutto l'imputazione lasciando che il modello apprenda direttamente l'effetto della festività, il che è spesso la soluzione più pulita per i task previsionali (trattata più approfonditamente nella sezione successiva).
Una regola decisionale approssimativa: preserva le discontinuità per i backtest di regole di trading, sistemi di risk management, e qualsiasi cosa misuri la volatilità realizzata. Imputa solo quando un'architettura di modello richiede input continuo o quando stai normalizzando su un universo cross-sezionale che non può tollerare gap irregolari.
Pro Tip: Quando imputi i prezzi, non imputare mai silenziosamente anche il volume insieme a essi. Mantieni un flag "sintetico" sul campo del volume, perché le strategie sensibili alla liquidità e i modelli di slippage devono sapere che il volume di una barra è un placeholder, non un riempimento reale.
Modellare le Festività Direttamente nelle Previsioni delle Serie Temporali
Piuttosto che rattoppare i gap a posteriori, l'approccio più robusto per i task previsionali è fornire al modello le informazioni sulle festività in anticipo. Poiché le date future delle festività sono note con anni di anticipo, costituiscono feature esogene ideali, e i framework di forecasting le integrano sempre più nativamente. Le indicazioni sull'aggiunta di indicatori festivi come variabili esogene mostrano che, poiché le festività future sono note con certezza, a differenza del meteo o dei dati macro, esse migliorano sia l'accuratezza che l'interpretabilità quando aggiunte come feature piuttosto che gestite come artefatti di dati mancanti.
Tre pattern pratici coprono la maggior parte dei casi d'uso. Le dummy per eventi con termini di interazione permettono di modellare non solo "è questa una festività" ma "è questo il giorno prima di una chiusura di tre giorni", poiché il drift pre-festivo e la volatilità post-festiva si comportano diversamente rispetto alla festività stessa. La stagionalità di Fourier combinata con indicatori festivi cattura il ciclo annuale fluido lasciando che gli eventi festivi discreti si sovrappongano come correzioni nette. I modelli state-space con termini di intervento trattano la festività come una rottura strutturale nel processo sottostante piuttosto che un semplice shift additivo, il che tende a reggere meglio su più anni di dati.
Quando costruisci il DataFrame esogeno futuro per il forecasting, le colonne delle festività per l'orizzonte previsionale devono essere popolate con la stessa logica usata storicamente, generata dallo stesso oggetto calendario piuttosto che hardcodata, altrimenti il tuo modello andrà silenziosamente fuori sincrono l'anno successivo.
| Obiettivo | Trattamento raccomandato | Perché |
|---|---|---|
| Esecuzione a breve termine / sistemi di rischio | Preserva la discontinuità, solo flag | Il comportamento reale del mercato deve rimanere visibile alla logica di riempimento e stop |
| Forecasting a lungo orizzonte | Regressori esogeni per festività + imputazione basata su modello | Le date future note migliorano sia il fit che l'interpretabilità |
| Normalizzazione cross-sezionale | Imputazione basata su modello | I gap irregolari rompono l'allineamento del panel tra strumenti |
Backtesting Attorno alle Festività Senza Illudersi
I periodi festivi sono dove i backtest ti ingannano silenziosamente. Tre modalità di fallimento ricorrono continuamente.
Il look-ahead bias si insinua quando imputi un valore festivo usando informazioni che non erano disponibili al momento, più comunemente utilizzando una finestra di smoothing che include barre future. Lo slippage di esecuzione viene sottostimato quando un backtest assume tassi di riempimento normali durante la liquidità sottile dell'apertura post-festiva, che è esattamente il momento in cui gli spread si allargano di più. La survivorship asimmetrica si verifica quando le festività vengono scartate in modo incoerente tra strumenti o piazze, distorcendo qualsiasi confronto cross-sezionale.
Una checklist praticabile prima di fidarsi di un backtest che copre periodi festivi:
- Allinea ogni strumento alla stessa logica di calendario festivo, non una mescolata o approssimativa.
- Modella ipotesi di riempimento e latenza che riflettano l'effettiva liquidità sottile delle aperture post-festive, non le tue ipotesi da giorno medio.
- Valida out-of-sample su più regimi festivi distinti (anni diversi, spostamenti di osservanza diversi), non solo un calendario fortunato.
- Esegui una validazione walk-forward piuttosto che una singola divisione in-sample/out-of-sample, poiché gli effetti festivi possono cambiare di anno in anno.
Il comportamento di soglia della sezione empirica si trasferisce direttamente nei controlli di rischio. Poiché la probabilità di riempimento per un gap crolla bruscamente superata una certa ampiezza, piuttosto che diminuire gradualmente, una regola basata su soglia (sospendere nuove posizioni, allargare gli stop, o ridurre la size una volta che un gap supera quella linea) cattura la maggior parte del rischio pratico con un singolo parametro semplice. Backtestare quella soglia su più anni di regimi festivi, piuttosto che ottimizzarla su un solo dataset, è ciò che separa un vero controllo di rischio da una regola sovra-adattata (curve-fit).
Una Pipeline Pratica da Copiare nel Documento del Tuo Team
La maggior parte dei team non ha bisogno di un framework innovativo qui. Ha bisogno di un processo in cinque passaggi che possa effettivamente eseguire in modo coerente.
- Ingestione con un calendario di borsa appropriato collegato a ogni strumento, costruito con
pandas.tseries.holidayo la libreriapython-holidayspiuttosto che con liste di date mantenute a mano. - Misurazione dell'ampiezza di ogni gap relativa a un baseline di volatilità mobile, non a una soglia di prezzo assoluta, poiché un movimento dell'1% significa cose diverse per un ETF obbligazionario tranquillo e per una small-cap volatile.
- Decisione usando una banda di soglia per classe di asset: qualcosa come sotto l'1% per le equity o sotto i 30 pip per le principali coppie FX viene indirizzato a un bucket idoneo al riempimento, mentre tutto ciò che è sopra viene indirizzato solo al flag.
- Gestione di conseguenza: imputazione basata su modello per il bucket idoneo al riempimento se la continuità è richiesta a valle, dummy esogene per qualsiasi cosa alimenti un modello previsionale, e conservazione grezza per qualsiasi cosa tocchi esecuzione o rischio.
- Validazione su un holdout che includa specificamente almeno due regimi festivi distinti, non solo una divisione temporale casuale.
Un Mini Caso di Studio: Scelta dell'Imputazione ed Esiti del Backtest
Usando dati FX intraday a barre di 1 minuto che coprono diversi anni, con una strategia di mean-reversion identica applicata a tre varianti di preprocessing, solo la gestione dei gap festivi cambiava tra le esecuzioni: solo flag (discontinuità preservata), riempimento naive carry-forward, e imputazione basata su modello con filtro di Kalman. Stesso seed, stessa divisione in-sample/out-of-sample, stessa asset class in tutto.
| Metodo di preprocessing | Sharpe relativo | Comportamento del drawdown | Note sul tasso di successo |
|---|---|---|---|
| Solo flag (nessun riempimento) | Baseline | Riflette la vera volatilità post-festiva | Conteggio di segnali più conservativo |
| Riempimento naive carry-forward | Più basso | Sottostimato, poiché la volatilità viene appiattita | Segnali falsi gonfiati vicino alle festività |
| Imputazione con filtro di Kalman | Il più alto dei tre | Più vicino al baseline solo-flag | Meno entrate spurie rispetto al riempimento naive |
Il riempimento naive sottostimava costantemente il rischio di drawdown perché sopprimeva esattamente i picchi di volatilità che contano di più per il dimensionamento degli stop. L'approccio con filtro di Kalman seguiva più da vicino il baseline solo-flag sulle metriche di rischio, fornendo comunque la serie continua di cui alcuni modelli a valle hanno bisogno. Riprodurre questo test richiede solo dati puliti a barre di 1 minuto, un seed casuale fisso, e un calendario festivo coerente applicato in modo identico su tutte e tre le esecuzioni, che è esattamente dove la maggior parte dei dataset fatti in casa introduce incoerenze silenziose.
Il punto di vista di un praticante sui compromessi operativi
In produzione, preferirei distribuire un modello leggermente meno accurato piuttosto che uno che appiattisce silenziosamente una vera discontinuità. I team che imputano aggressivamente per comodità tendono a scoprire il costo esattamente nella settimana in cui possono permetterselo di meno: una settimana festiva con liquidità sottile e movimenti eccessivi. Una buona governance del calendario festivo, tracciata e versionata come qualsiasi altro metadato, è un lavoro poco glamour, ma è più economico dell'alternativa.
Metadati Festivi Più Puliti Iniziano da Dati Sorgente Più Puliti
Nessuno dei metodi sopra conta molto se il dataset sottostante non riesce a dirti, in modo pulito, quando un mercato era effettivamente chiuso. I dataset storici a barre di 1 minuto di Backtestmarket, che coprono forex, metalli, indici azionari, obbligazioni e materie prime dal 2014, arrivano con timestamp già normalizzati a fusi orari coerenti e pronti per l'importazione diretta in MT4 e MT5, quindi il passaggio di allineamento al calendario descritto in precedenza non si trasforma in una settimana di pulizia manuale.

Questo conta di più esattamente nello scenario coperto da questa guida: riprodurre un backtest su più regimi festivi senza dover ridomandarsi se un gap nel feed sia una vera chiusura o un errore dei dati. I dataset portano l'integrità del volume necessaria per le decisioni di imputazione sensibili alla liquidità, così puoi applicare la logica di soglia della sezione pipeline senza indovinare la qualità del riempimento. Se stai costruendo il flusso di lavoro del caso di studio sopra sui tuoi strumenti, inizia sfogliando i dataset storici forex o il catalogo completo dei prodotti, e consulta la guida all'importazione in MetaTrader per portare una serie campione nella tua pipeline lo stesso giorno.
Domande Frequenti
Cosa conta esattamente come gap festivo nei dati di mercato?
È una discontinuità in una serie di prezzi causata da una chiusura di borsa, un disallineamento tra mercati cross-listed, o uno spostamento di osservanza multi-giorno, piuttosto che una routine pausa overnight o di weekend. La caratteristica distintiva è che la chiusura è guidata dal calendario e tipicamente nota in anticipo.
Devo sempre riempire i gap festivi prima di alimentare i dati in un modello?
No. Riempi solo quando l'architettura del tuo modello richiede una serie continua. Per la logica di esecuzione, i sistemi di rischio e la stima della volatilità, preservare la discontinuità e segnalarla con una colonna indicatore è di solito il default più sicuro.
Come scelgo una soglia di dimensione del gap per FX rispetto alle equity?
Basa la soglia di dimensione del gap su dati storici di probabilità di riempimento appropriati a ciascuna asset class, considerando i tipici movimenti in pip del FX e la volatilità delle equity.
Qual è il più grande errore di backtesting con i periodi festivi?
Assumere liquidità e tassi di riempimento normali durante le sessioni sottilmente scambiate subito dopo una chiusura multi-giorno. Le ipotesi di slippage valide in un martedì medio sottostimano regolarmente i costi di esecuzione reali il giorno dopo una festività.
La stagionalità negli acquisti festivi o nei dati retail influenza i dati dei mercati finanziari allo stesso modo?
Non direttamente. I pattern stagionali delle vendite retail sono un fenomeno lato domanda tracciato negli indicatori economici, mentre i gap festivi nei dati di mercato derivano da chiusure di borsa e meccaniche delle sessioni di trading. Entrambi sono guidati dal calendario, ma le cause e le soluzioni differiscono completamente.
Questo articolo è informazione di carattere generale, non un sostituto della consulenza di un professionista finanziario qualificato. Consulta un professionista finanziario qualificato riguardo alla tua situazione specifica prima di agire sulla base di quanto descritto qui.
Fonti
- Trading gap in holidays and price transmission
- Overnight and weekend gap risk across asset classes
- pandas.tseries.holiday.Holiday — pandas documentation
- Holiday and special dates — Nixtla forecasting guide
Consigliati
- Blog | BacktestMarket | BacktestMarket
- BacktestMarket — Professional Trading Data & Expert Advisors | BacktestMarket
- BacktestMarket — Professional Trading Data & Expert Advisors | BacktestMarket
- How to Import Data in MetaTrader (MT4 / MT5) | BacktestMarket | BacktestMarket
Risorse correlate
Esplora i dati storici Forex di BacktestMarket per mettere in pratica le idee di questo articolo.
