Considerazioni Avanzate sui Dati Storici nel Contesto del Forex
Dati storici: cosa significano (e cosa non significano)
I dati storici sono informazioni registrate nel passato su variabili di mercato come prezzi, scambi o indicatori derivati dai prezzi. Nella pratica, ciò che si definisce “dati storici” non è solo il prezzo grezzo; include anche le decisioni prese durante l’archiviazione e la preparazione di tali informazioni—come vengono gestiti i timestamp, cosa viene escluso e come vengono trattati i valori mancanti.
Un limite fondamentale è che le relazioni storiche descrivono il passato in condizioni specifiche. Non implicano che le stesse relazioni si manterranno in futuro, specialmente quando costi, esecuzione, liquidità o comportamento di mercato cambiano.
Meccanismi e dipendenze dietro l’analisi dei dati storici
Utilizzare dati storici in un contesto forex significa tipicamente: (1) scegliere un dataset, (2) definire un allineamento temporale, (3) calcolare eventuali serie derivate e (4) eseguire un test di una regola o modello su quella timeline. Le considerazioni avanzate si concentrano sulle dipendenze—fattori che possono silenziosamente alterare i risultati senza cambiare la logica apparente.
Origine dei dati, formattazione e allineamento dei timestamp
Diversi feed possono rappresentare lo “stesso” mercato con convenzioni temporali differenti (ora del server rispetto all’ora locale), diverse costruzioni delle barre (quando una barra apre/chiude) e diverso trattamento dei cambiamenti dell’ora legale. Anche se lo stesso cross valutario è presente, la sequenza esatta dei prezzi a determinati timestamp può differire.
Se si aggregano i tick in barre, è necessario specificare le proprie assunzioni: quale finestra temporale definisce una barra, se le barre sono costruite dai prezzi bid/ask o dal loro punto medio, e come si trattano i tick fuori ordine. Senza un allineamento chiaro, due analisi possono discostarsi pur affermando entrambe di usare “dati storici”.
Preprocessing: pulizia, dati mancanti e variazioni simili a corporate action
Anche nei mercati forex, i dati possono contenere lacune (interruzioni di copertura oraria, interruzioni del feed), stampe anomale o valori mancanti interni. Passaggi comuni di preprocessing—eliminazione di righe, riempimento in avanti, smoothing o rimozione di outlier—possono alterare sostanzialmente i risultati.
Una regola generale affidabile è documentare ogni trasformazione. Se si applica uno smoothing o si rimuovono outlier, la serie “storica” potrebbe non rappresentare più ciò che si è effettivamente verificato, ma una versione modificata.
Scelte di campionamento e caratteristiche derivate
Se si ricampiona (ad esempio da un timeframe più fine a uno più ampio), i risultati possono cambiare perché le regole basate sulle barre reagiscono a massimi/minimi diversi e a tempi di chiusura differenti. Analogamente, le caratteristiche derivate—medie mobili, stime di volatilità o momentum—dipendono dalle finestre di lookback e dal fatto che il calcolo utilizzi solo dati disponibili fino al momento della decisione.
Un semplice esempio di dipendenza: se una statistica mobile su 20 periodi viene calcolata usando il prezzo di chiusura della barra ma si assume che la decisione avvenga all’apertura della barra, si introduce informazione dal futuro (anche se solo all’interno della stessa definizione di barra).
Evidenze: come i test storici possono fuorviare, anche quando implementati correttamente
L’analisi dei dati storici spesso fallisce in modi prevedibili. Questi non sono “errori misteriosi”; sono problemi strutturali di disallineamento tra come i dati storici sono rappresentati e come decisioni ed esecuzioni si verificherebbero realmente.
Bias di look-ahead ed errori temporali
Il bias di look-ahead si verifica quando il test utilizza informazioni che non sarebbero state disponibili al momento della decisione. Questo può accadere quando:
- Si usano dati di chiusura barra per simulare un’entrata alla chiusura senza modellare che le entrate avvengono dopo che la chiusura è nota.
- Si calcolano indicatori sull’intera barra mentre la strategia conosce solo una parte della barra.
- Si fanno riferimenti accidentali a timestamp futuri nei calcoli mobili.
La considerazione avanzata è definire un “tempo di decisione” esplicito e verificare che ogni input utilizzato per una decisione provenga strettamente da istanti precedenti.
Disallineamento nell’esecuzione e costi di transazione
Anche senza rendimenti promettenti, è cruciale modellare costi realistici e vincoli di esecuzione quando si confronta la performance storica. Il disallineamento nell’esecuzione include spread, commissioni, slippage, riempimenti parziali e tempistiche degli ordini rispetto ai prezzi osservati.
Se il dataset storico fornisce solo prezzi medi (mid) ma la simulazione assume riempimenti al mid, i risultati possono essere sistematicamente ottimistici. Se si ignorano gli spread o si assume zero slippage, le stime di performance possono fuorviare.
Cambiamenti di regime e non stazionarietà
Il comportamento del forex può cambiare nel tempo a causa di eventi macroeconomici, condizioni di liquidità o variazioni nella struttura di volatilità. Un modello che si adatta a un periodo potrebbe fallire in un altro.
Una considerazione avanzata è trattare il “tempo” come un fattore: la performance deve essere valutata su più periodi non sovrapposti, cercando evidenze che i risultati crollino quando si passa a regimi diversi. Si tratta di verifica, non di previsione.
Overfitting ed effetti di selezione
Quando si ottimizzano ripetutamente parametri sullo stesso dataset storico, si può apprendere il rumore invece del segnale. Anche senza usare dati “futuri”, si può ancora overfittare attraverso selezioni iterative.
Una considerazione avanzata è separare il processo in dataset o fasi distinte (ad esempio, stima vs. valutazione) e mantenere il periodo di valutazione inalterato fino alla fine.
Limitazioni e rischi: almeno un modo di fallimento significativo
Un modo significativo di fallimento è l’“incoerenza del flusso di lavoro” (pipeline inconsistency): il flusso di dati storici usato nello sviluppo differisce da quello usato nella valutazione. Ad esempio, si potrebbe:
- Pulire i dati in modo diverso tra gli esperimenti,
- Cambiare la costruzione delle barre o la gestione dei fusi orari,
- Ricalcolare indicatori con definizioni di lookback diverse,
- O modificare le assunzioni sui costi.
Poiché questi passaggi non sono sempre visibili nella logica di alto livello della strategia, la stessa idea può sembrare funzionare in un caso e fallire in un altro. Il rischio non è solo di ottenere risultati scadenti; è la falsa sicurezza derivante da assunzioni nascoste.
Altre limitazioni includono segmenti di dati mancanti o incompleti, gestione non definita delle lacune e incertezza sul fatto che il dataset rappresenti quotazioni effettivamente negoziabili.
Verifica e prossime domande a cui puoi rispondere autonomamente
Per verificare affermazioni sull’analisi dei dati storici, concentrati sulla riproducibilità e sulle assunzioni trasparenti.
- Riproduci le trasformazioni dei dati: parti dal dataset originale, applica le stesse regole di allineamento dei timestamp e di pulizia, e conferma che le serie derivate corrispondano.
- Riproduci il modello temporale: specifica esplicitamente il tempo di decisione rispetto al tempo di disponibilità dei dati e verifica la presenza di opportunità di look-ahead.
- Sottoponi a stress test costi ed esecuzione: esegui verifiche di sensibilità per spread, commissioni e range di slippage coerenti con le tue assunzioni.
- Convalida su diverse finestre temporali: valuta su più periodi non sovrapposti ed evita di selezionare parametri usando lo stesso dataset di valutazione.
Successivamente, chiediti: Quali timestamp esatti definiscono ogni barra? Da dove provengono i valori mancanti e come vengono gestiti? Qual è la regola per il calcolo dell’indicatore rispetto al tempo di decisione? Rispondere a queste domande trasforma i “dati storici” da un input vago in un flusso di dati verificabile e testabile.