Come Funziona il Dati Storici nel Forex
Cos’è il Dati Storici nel forex?
I dati storici nel forex sono un registro di osservazioni passate sui prezzi delle valute e sui relativi campi di mercato nel tempo. Vengono utilizzati per descrivere ciò che è accaduto in precedenza e per supportare analisi come il confronto tra periodi temporali o il test su come un determinato metodo si sarebbe comportato.
Un modello mentale utile è: hai una sequenza di valori con timestamp, e vuoi riprodurre come le decisioni si sarebbero tradotte su quei valori. I dati storici non sono quindi “una previsione”. Sono un insieme di dati di input per comprendere il comportamento passato o per verificare la sensibilità di un metodo rispetto ad alcune assunzioni.
Come vengono prodotti e cosa contengono
I dataset storici sono tipicamente costruiti a partire da feed grezzi (osservazioni di mercato in tempo reale) che vengono acquisiti e successivamente archiviati. A seconda della fonte dati e del livello di dettaglio, i dati storici possono includere:
- Bid e ask (prezzi a due lati)
- Prezzo medio (mid price) (un valore derivato, spesso calcolato da bid/ask)
- Apertura, massimo, minimo, chiusura (OHLC) per intervalli di tempo fissi (ad esempio, barre da un minuto)
- Volume o conteggio dei tick (disponibilità variabile)
- Timestamp e convenzioni di fuso orario
Due distinzioni sono importanti per la correttezza:
- Granularità temporale: i dati a tick (timestamp molto fini) differiscono dai dati a barre (valori riassunti per intervallo).
- Prezzi vs. esecuzioni: i prezzi di mercato mostrano ciò che è stato quotato; le esecuzioni mostrano ciò che un’operazione avrebbe effettivamente ottenuto dopo regole come tipo d’ordine, slippage e spread.
Il flusso di lavoro di base: input → output di simulazione
Un flusso di lavoro comune basato su “dati storici” per analisi o backtesting segue una sequenza semplice:
- Scegliere il dataset: selezionare un simbolo (coppia valutaria), un intervallo temporale e una granularità (tick o barre).
- Definire cosa si vuole calcolare: ad esempio, i rendimenti nel tempo, i drawdown in una curva di equity simulata o i conteggi di vincite/perdite in base a determinate regole.
- Specificare un modello di esecuzione: poiché si dispone solo di quotazioni passate, ogni simulazione basata su operazioni deve decidere come vengono eseguiti gli ordini. Le categorie di assunzioni comuni includono:
- Utilizzo del prezzo medio rispetto a bid/ask all’ingresso e all’uscita
- Applicazione di uno spread (fisso o variabile nel tempo)
- Modellizzazione dello slippage (differenza tra prezzo desiderato e prezzo effettivo)
- Aggiunta di costi di transazione (commissioni/tariffe)
- Eseguire il mapping: scorrere nel tempo, applicare la logica decisionale alla sequenza storica e generare operazioni o segnali simulati.
- Output dei risultati: gli output sono il risultato esclusivo delle assunzioni e del mapping scelti—ad esempio, una serie temporale di posizioni simulate, statistiche aggregate o misure di errore rispetto a un benchmark.
Punto chiave: i dati storici forniscono la linea temporale e i valori; il modello di esecuzione fornisce il ponte verso “cosa avresti effettivamente negoziato”. Se questo ponte è vago o irrealistico, gli output possono risultare fuorvianti.
Evidenza tramite esempio (con assunzioni esplicite)
Consideriamo uno scenario semplice con dati a barre.
- Dataset: barre OHLC per una coppia valutaria con intervallo di 1 minuto.
- Assunzione A: entri all’apertura della barra quando una condizione viene rilevata all’inizio della barra.
- Assunzione B: esci alla chiusura della barra successiva.
- Assunzione C: gli spread sono ignorati (o assunti nulli) e non ci sono costi.
Utilizzando queste assunzioni, è possibile calcolare una sequenza di rendimenti simulati delle posizioni dai valori OHLC. Se si modifica solo l’Assunzione A, entrando alla chiusura della barra invece che all’apertura, i risultati simulati cambieranno—anche se il dataset storico rimane lo stesso.
Questo illustra un controllo generale: provare a modificare un’assunzione alla volta (gestione dello spread, tempistica di esecuzione, costi) per verificare se le conclusioni sono robuste o fragili.
Limiti materiali e modalità di errore
I dati storici possono essere utili, ma diversi problemi possono influenzarne l’affidabilità:
1) Qualità dei dati e informazioni mancanti
I registri storici possono presentare lacune, timestamp duplicati, fusi orari incoerenti o diversi stati di mercato nel campione. Se l’analisi richiede continuità, i dati mancanti possono distorcere la linea temporale calcolata.
2) Effetti di sopravvivenza e selezione
Se si selezionano periodi che “sembrano rilevanti” dopo aver visto i risultati, si può accidentalmente creare un dataset che introduce un bias nei risultati. Anche senza “barare” intenzionalmente, ripetere un pattern che appare solo in un certo regime può creare un’illusione di stabilità.
3) Il divario tra quotazione ed esecuzione (spread, slippage e costi)
Poiché le quotazioni storiche non equivalgono automaticamente a esecuzioni effettive, un modello di esecuzione è essenziale. Nella pratica, spread e slippage possono variare, e i costi possono essere significativi.
Se si assumono esecuzioni ottimali ma quelle reali sono peggiori, i risultati simulati possono sovrastimare le prestazioni.
4) Non stazionarietà delle relazioni
Le condizioni di mercato nel forex possono cambiare nel tempo. Le relazioni statistiche che appaiono nel passato potrebbero non persistere in futuro. I dati storici possono mostrare modelli di correlazione, ma non possono garantire che questi durino.
5) Overfitting al rumore
Quando un metodo viene regolato ripetutamente su un dataset storico, può catturare il rumore invece di una proprietà generale. Il risultato potrebbe apparire forte in-sample ma essere inaffidabile su nuovi dati.
Come verificare i fatti in modo indipendente (senza implicare risultati)
È possibile verificare i meccanismi fondamentali dell’analisi basata su dati storici attraverso autocontrollo:
- Confermare le definizioni: Cosa rappresentano esattamente “apertura”, “massimo”, “minimo”, “chiusura” o “tick” nel tuo dataset (e quale timestamp viene utilizzato)?
- Verificare le trasformazioni: Se il prezzo medio o altri campi derivati sono forniti, controlla come sono stati calcolati da bid/ask (se applicabile).
- Sottoporre a stress il modello di esecuzione: Ripeti i calcoli con assunzioni alternative, chiaramente dichiarate, riguardo spread e costi.
- Confrontare le granularità: Verifica se le conclusioni differiscono tra dati basati su tick e dati basati su barre.
- Utilizzare la valutazione fuori campione: Suddividi la linea temporale in periodi separati e confronta il comportamento tra di essi, ricordando che ciò dipende comunque dalle assunzioni.
Un approccio di verifica ti aiuta a distinguere ciò che i dati storici supportano effettivamente (valori passati e riproduzione sotto assunzioni esplicite) da ciò che non possono garantire (comportamento futuro).