Vai al contenuto
Percorso formativo Argento Metodo ripetibile

Dati point-in-time

Dati storici ricostruiti secondo ciò che era realmente disponibile a ogni decisione: timestamp di disponibilità, vintage, universo, corporate action e delisting senza conoscenza retrospettiva.

A chi serve — A chi costruisce un backtest, usa dati fondamentali o macro, ricostruisce un indice o confronta segnali storici. Il punto non è sapere oggi che cosa accadde allora, ma sapere che cosa era consultabile nel preciso momento della decisione.

I dati point-in-time conservano la storia così come poteva essere osservata in ciascun istante. Per ogni valore non basta la data a cui il dato si riferisce: occorre registrare quando fu pubblicato, quando divenne disponibile al sistema, quale versione era allora valida e fino a quando rimase tale. Un database aggiornato e corretto oggi può descrivere perfettamente il passato e, nello stesso tempo, essere inadatto a simulare una decisione passata.

In parole semplici — Una fotografia restaurata oggi non è la fotografia che il trader vedeva ieri. Il backtest deve ricevere solo l'immagine disponibile allora, comprese imperfezioni, ritardi e successive revisioni.

Dati point-in-time: che cosa era conoscibileIl valore finale e la data economica non bastano a definire la disponibilità. Esempi di campi da versionare; le convenzioni cambiano per fonte e classe di attivo.Dati point-in-time: che cosa era conoscibileIl valore finale e la data economica non bastano a definire la disponibilitàEsempi di campi da versionare; le convenzioni cambiano per fonte e classe di attivo.Prezzi e tradeTimestamp di evento, ricezione,correzione e qualità dellasede.Corporate actionAnnuncio, ex-date, pagamento erettifica non coincidono.Universo storicoIngressi, uscite, fusioni edelisting restano nel campione.Fondamentali e macroRelease iniziale, lag operativoe revisioni successive sonodistinti.Calendari e timezoneSessioni, festività e daylightsaving cambiano gliallineamenti.Versioni e hashSnapshot, trasformazioni ecodice identificano il dataseteffettivamente usato.Cyclepedia · schema didattico condizionato, non previsione né promessa
Data osservata, pubblicazione, disponibilità e revisione sono eventi distinti. Il cursore del backtest può leggere soltanto ciò che è già arrivato.

Le quattro date da non confondere

Campo temporale Domanda Errore se manca
Periodo di osservazione A quale trimestre, barra o evento si riferisce il valore? attribuire il dato al momento sbagliato
Timestamp di pubblicazione Quando la fonte lo ha diffuso? usare un risultato prima dell'annuncio
Timestamp di disponibilità Quando il dato è entrato davvero nella pipeline, nel fuso e nel calendario corretti? ignorare latenza, chiusure o ritardi del vendor
Vintage o versione Quale valore era noto prima di una rettifica? usare oggi la revisione finale nel passato

Il timestamp di disponibilità è quello operativo. Un comunicato pubblicato alle 16:05 di New York non può generare un ordine alla chiusura delle 16:00. Se il sistema acquisisce il file alle 16:08, la prima decisione ammissibile deve rispettare anche quella latenza. Per dati giornalieri senza orario affidabile è prudente definire una convenzione esplicita, per esempio “utilizzabile dalla seduta successiva”, e documentarla.

I dati macro illustrano bene il problema del revision vintage. Produzione, occupazione e crescita possono essere corretti molte volte. La serie più recente risponde a “qual è oggi la migliore stima del passato”; un test point-in-time risponde a “quale stima era pubblica in quella data”. Sono domande diverse.


Universo, identificatori e appartenenza

Un elenco odierno di titoli, fondi o contratti non può essere proiettato all'indietro. L'universo deve essere una tabella temporale con intervalli di validità:

Entità Informazione point-in-time necessaria
Titolo identificatore permanente, date di quotazione e cessazione, venue, valuta
Indice data di annuncio e data effettiva di ogni ingresso o uscita
Fondo nascita, fusione, liquidazione, cambio di mandato e serie commissionale
Future contratto specifico, scadenza, calendario e regola di roll dichiarata
Dato societario periodo contabile, filing originale, rettifiche e timestamp di diffusione

Il ticker è un'etichetta, non un'identità stabile: può cambiare o essere riutilizzato. Per collegare prezzi, bilanci e corporate action servono identificatori persistenti e una mappa con validità temporale. Anche la classificazione settoriale o il paese di appartenenza possono cambiare; usare la classificazione attuale nel 2010 introduce informazione retrospettiva.


Corporate action e delisting

Split, dividendi, spin-off, fusioni, offerte, conversioni e cambi di simbolo richiedono più date: annuncio, ex-date, record date, pagamento ed efficacia. Una serie “adjusted close” ricalcolata oggi è comoda per i rendimenti, ma non sostituisce un registro causale degli eventi. Il fattore di aggiustamento deve essere applicato in modo coerente allo scopo: confrontare rendimenti totali non è la stessa cosa che simulare limiti, quantità e ordini osservabili prima dell'evento.

Il delisting non autorizza a eliminare l'ultima osservazione. Occorre conservare motivo, data, eventuale rendimento di delisting, distribuzione o valore di recupero e regola adottata quando il dato manca. Una perdita cancellata dal database rende il campione più sano di quanto fosse e si collega direttamente al survivorship bias.


Protocollo point-in-time

  1. Fissa il tempo decisionale. Definisci timezone, calendario, cutoff e frequenza di ogni strategia.
  2. Separa evento e disponibilità. Conserva event_time, published_at, available_at e ingested_at quando disponibili.
  3. Archivia i vintage. Non sovrascrivere una revisione: aggiungi una nuova versione con inizio e fine validità.
  4. Usa identità persistenti. Mappa ticker e descrizioni a identificatori stabili con intervalli temporali.
  5. Ricostruisci l'universo. Salva membership, eleggibilità, annunci ed effettività; non partire dai superstiti odierni.
  6. Tratta le corporate action come eventi. Conserva termini, date e fonti, poi genera gli aggiustamenti necessari.
  7. Mantieni fallimenti e assenze. Delisting, sospensioni, fondi chiusi e valori mancanti fanno parte della storia.
  8. Modella la latenza. Aggiungi ritardo di vendor, elaborazione e successiva finestra di negoziazione.
  9. Rendi ripetibile la query. Il comando “mostrami ciò che era noto alle 10:00 del giorno X” deve restituire sempre lo stesso snapshot.
  10. Congela il dataset del test. Registra versione, checksum, trasformazioni e codice insieme ai risultati out-of-sample.

Esempio illustrativo — Una società chiude il trimestre il 31 marzo, deposita i risultati il 7 maggio alle 17:20 e li rettifica il 20 giugno. Un segnale sulla crescita trimestrale non può usare quel numero il 31 marzo; per una strategia che opera solo in chiusura, il primo utilizzo può essere la seduta successiva al 7 maggio. Per decisioni fra l'8 maggio e il 19 giugno va usato il filing originale, non la rettifica di giugno. Date e orari sono scelti soltanto per mostrare il metodo.


Controlli rapidi

Controllo Evidenza da conservare
La fonte aveva già pubblicato il dato? timestamp e documento originale
Il sistema poteva averlo ricevuto? log di acquisizione o ritardo dichiarato
Il valore è stato rivisto? tabella dei vintage
Lo strumento esisteva ed era negoziabile? intervalli di listing e stato della venue
Apparteneva allora all'universo? membership con annuncio ed efficacia
Il rendimento include uscita o delisting? evento terminale e metodo di valorizzazione
L'aggiustamento usa solo eventi già noti? registro delle corporate action

Limiti

Una base point-in-time riduce il look-ahead bias, ma non certifica la strategia. Dati tardivi possono essere errati; una fonte può avere copertura selettiva; la pipeline può applicare trasformazioni future; l'universo può restare incompleto. Inoltre il point-in-time non modella automaticamente ordini, liquidità, capacità o costi di transazione nel backtest. Ogni risultato resta condizionato a fonti, convenzioni e disponibilità documentate.


Fonti

Collegamenti