Dati tick forex per il backtest: fonti, controlli di qualità e insidie Ottobre 31, 2026 – Posted in: Arbitrage Software, Forex trading
Dati tick forex per il backtest: fonti, controlli di qualità e insidie
Un backtest può essere onesto solo quanto i prezzi che gli fornisci. Per lo scalping, l’arbitraggio e qualsiasi strategia che vive in pochi pip, le barre a un minuto non bastano: ti serve la sequenza reale delle quotazioni bid e ask. Questa guida spiega da dove provengono i dati tick forex, perché due dataset sulla stessa coppia non coincidono mai, quali controlli di qualità eseguire prima di fidarti di un risultato e come trasformare i tick grezzi in un test che somigli al trading reale.
- Che cosa sono i dati tick forex
- Dati tick e dati a barre: cosa nasconde l’interpolazione
- Da dove provengono i dati tick forex
- Il feed del tuo broker e un feed di riferimento
- Timestamp, fusi orari e ora legale
- Controlli di qualità prima di fidarti di un dataset
- Passo dopo passo: preparare i dati tick per un backtest
- Spread variabile: il costo che uno spread fisso nasconde
- Quanto l’ipotesi sui dati cambia il risultato
- I tick sono necessari, non sufficienti: il tempo di esecuzione
- Archiviazione, formati e gestione
- Errori comuni
- Domande frequenti
Che cosa sono i dati tick forex
Risposta breve: i dati tick forex sono la registrazione di ogni variazione di quotazione di una coppia di valute: un timestamp (di solito in millisecondi), il prezzo bid, il prezzo ask e talvolta il volume quotato su ciascun lato. A differenza dei dati a barre, che conservano solo apertura, massimo, minimo e chiusura di ogni periodo, i dati tick preservano l’ordine, la tempistica e lo spread di ogni aggiornamento di prezzo, ed è proprio su questo che una strategia di breve termine opera davvero.
Una riga tipica ha questo aspetto:
Contiene l’orario, il bid, l’ask e il volume disponibile sul bid e sull’ask (in milioni, se la fonte lo fornisce). Lo spread su questo tick è di 0.7 pip. Un secondo dopo potrebbero esserci altre cinque righe, oppure nessuna.
C’è una cosa da capire prima di tutto: il mercato forex spot non ha un registro centrale delle transazioni. Azioni e futures hanno una borsa che pubblica la sequenza ufficiale degli scambi. Il forex invece si negozia over the counter tra molte banche, ECN e broker, e ognuno di essi trasmette le proprie quotazioni. Quindi ogni dataset di tick forex è la visione del mercato di una singola sede di negoziazione o di un singolo aggregatore. Due fonti possono differire di una frazione di pip e di decine di millisecondi nello stesso istante, ed entrambe possono essere corrette per la propria sede.
Questo fatto guida gran parte della guida. “Questi dati tick sono accurati?” è la domanda sbagliata. Le domande utili sono: accurati per quale sede di esecuzione, registrati come e puliti come?
Tick di quotazione e tick di transazione
La maggior parte dei dataset forex è composta da tick di quotazione: variazioni del miglior bid o del miglior ask. Non sono transazioni. Una quotazione può cambiare dieci volte senza un solo scambio, e una grossa operazione può non modificare affatto il top of book. Alcuni dati FX basati su futures o negoziati in borsa contengono tick di transazione (ultimo prezzo e quantità), ma per il backtest del forex spot ti servono le quotazioni bid e ask, perché è contro di esse che i tuoi ordini verranno eseguiti: acquisti all’ask, vendite al bid.
Dati tick e dati a barre: cosa nasconde l’interpolazione
Molti strumenti di backtest che dichiarano di testare “ogni tick” in realtà non usano affatto tick registrati. Prendono barre a un minuto e generano tick sintetici all’interno di ciascuna barra, tipicamente un percorso regolare dall’apertura al massimo e al minimo e poi alla chiusura. Il risultato sembra un dato tick, ma non contiene alcuna informazione che la barra non avesse già.

Ecco perché è importante. Prendi una barra EUR/USD a un minuto: apertura 1.08500, massimo 1.08540, minimo 1.08480, chiusura 1.08520. È aperta una posizione long con take-profit a 1.08530 e stop-loss a 1.08485. Entrambi i livelli sono all’interno della barra. L’operazione ha vinto o perso?
- Se è arrivato prima il minimo, lo stop è stato colpito a 1.08485 e l’operazione ha perso 1.5 pip.
- Se è arrivato prima il massimo, il take-profit è stato colpito a 1.08530 e l’operazione ha guadagnato 3 pip.
La barra non può dirtelo. Il generatore sceglie un ordine (spesso in base a una regola fissa, come “una barra rialzista va prima al minimo”) e il backtest riporta con sicurezza un risultato che in parte è un lancio di moneta. Per una strategia swing con un target di 100 pip questo conta raramente. Per una strategia i cui target e stop si trovano a pochi pip dall’ingresso, decide una larga parte delle operazioni.
L’interpolazione cancella anche tre cose che i tick registrati conservano:
| Di cosa ha bisogno la strategia | Tick registrati | Tick generati dalle barre |
|---|---|---|
| Ordine di massimo e minimo all’interno di un minuto | Esatto | Indovinato con una regola |
| Salti di prezzo (un movimento di 1.5 pip in una sola quotazione) | Presenti | Smussati in piccoli passi |
| Spread su ogni quotazione | Presente (bid e ask) | Di solito un unico spread fisso o un valore per barra |
| Tempistica tra le quotazioni (secondi tranquilli e secondi intensi) | Presente | Distribuita uniformemente o inventata |
| Attività delle quotazioni attorno a notizie e rollover | Presente | Persa |
I salti sono il punto critico per l’arbitraggio di latenza: il segnale è il salto. Un percorso sintetico che va da 1.08500 a 1.08515 in quindici piccoli passi non produce alcun segnale, quindi una strategia che opererebbe dal vivo sembra morta nel test, oppure una strategia che compra sui ritracciamenti sembra migliore di quanto sia.
Da dove provengono i dati tick forex
Esistono cinque fonti realistiche. Differiscono per costo, profondità e, soprattutto, per quanto corrispondono ai prezzi su cui opererai realmente.
| Fonte | Cosa ottieni | Punti di forza | Limiti |
|---|---|---|---|
| La tua registrazione (tramite l’API del broker o una sessione FIX) | Ogni quotazione ricevuta dal tuo conto, con il tuo orario locale di ricezione | Corrispondenza esatta con la tua sede di esecuzione; controlli tu timestamp e formato | Inizia solo quando inizi a registrare; richiede una macchina stabile; buchi se la connessione cade |
| Download dello storico del broker | Bid/ask storici dal feed del broker stesso | Vicino alla tua sede; spesso anni di storico | Qualità variabile; alcuni broker diradano o filtrano i tick vecchi; i timestamp possono essere nell’ora del server |
| Archivi pubblici gratuiti (offerti da alcuni broker ECN e aggregatori, ad es. Dukascopy, TrueFX, HistData.com) | Tick bid/ask per le coppie principali, spesso fino agli anni 2000 | Gratuiti, storico lungo, ottimi per ricerca e test di robustezza | La visione di una sede o di un aggregatore, non la tua; spread e frequenza delle quotazioni differiscono dal tuo broker; verifica la convenzione di fuso orario di ciascuna fonte |
| Fornitori di dati commerciali | Storico tick multi-sede pulito e normalizzato | Metodologia documentata, formati coerenti, supporto | Costosi; comunque non è il feed del tuo broker |
| Feed di riferimento / veloci (ad es. lo storico tick di BJF Feed dai nodi di Londra, Tokyo e New York) | Un flusso di prezzi di riferimento veloce e indipendente | Necessario per testare strategie che confrontano un feed lento con uno veloce | Va abbinato ai tick del broker per i test di arbitraggio |
La regola pratica: usa lo storico pulito più lungo che riesci a ottenere per la ricerca e i dati più vicini alla tua sede per la decisione finale. Una strategia che funziona solo su un archivio gratuito e fallisce sui tick registrati del tuo broker non funziona. Una strategia che regge su entrambi, con costi realistici, ha superato un test significativo.
Se prevedi di far girare una strategia per mesi, inizia a registrare oggi i tick del tuo broker, anche prima che la strategia sia finita. Tre mesi del tuo feed valgono di più per la verifica finale di dieci anni del feed di qualcun altro.
Il feed del tuo broker e un feed di riferimento
Poiché ogni sede trasmette le proprie quotazioni, lo stesso istante appare leggermente diverso da luoghi diversi. Le differenze hanno una struttura:
- Scarto di prezzo. I prezzi medi di solito coincidono entro una frazione di pip nelle ore liquide e si allontanano nei mercati sottili, al rollover e attorno alle notizie.
- Scarto temporale. Un broker che aggrega i prezzi dai fornitori di liquidità, applica il proprio markup ed esegue controlli di rischio mostrerà spesso un movimento più tardi rispetto a un feed di riferimento veloce. Il ritardo può essere di pochi millisecondi o di diverse centinaia.
- Frequenza delle quotazioni. Alcuni feed inviano ogni variazione, altri la limitano (per esempio, al massimo un aggiornamento ogni 100 ms per simbolo). Un feed limitato ha meno tick e salti più ampi.
- Profilo dello spread. Un feed ECN grezzo e un feed retail con markup possono differire di un pip intero nello spread medio e di molto di più al rollover.

Per la maggior parte delle strategie, ciò significa che dovresti testare sul feed su cui opererai. Per l’arbitraggio di latenza significa qualcosa di più forte: il vantaggio della strategia è la differenza tra due feed, quindi ti servono entrambi i flussi, registrati con timestamp dello stesso orologio. Testare una strategia di arbitraggio sui tick di un solo fornitore non ha senso. Descriviamo come confrontare i feed tick per tick nel nostro articolo sul confronto dei tick nell’arbitraggio forex e nell’HFT, e perché il lato di riferimento deve essere veloce nella guida ai feed di dati veloci per l’arbitraggio.
Timestamp, fusi orari e ora legale
I problemi di timestamp causano più errori silenziosi nei backtest dei prezzi sbagliati. Quattro cose da verificare:
1. In quale fuso orario sono i dati?
Le convenzioni comuni sono UTC/GMT, l’ora della costa orientale degli Stati Uniti (con o senza ora legale) e l’“ora del server” del broker, che molti broker impostano su GMT+2 d’inverno e GMT+3 d’estate in modo che la giornata di trading chiuda alle 17:00 ora di New York. Se la tua strategia dice “opera all’apertura di Londra alle 08:00”, uno scarto di un’ora significa che opera in un regime di mercato diverso.
2. L’ora legale è applicata, e quale?
Europa e Stati Uniti cambiano l’ora in date diverse. Per circa tre settimane a marzo e una settimana tra fine ottobre e inizio novembre, la differenza tra Londra e New York è di quattro ore invece di cinque. Un dataset convertito con la regola sbagliata sposta di un’ora la logica basata sulle sessioni durante quelle settimane. L’errore è piccolo, stagionale e molto difficile da notare in una curva di equity.
3. Dove è stato preso il timestamp?
Un tick può riportare l’orario in cui la sede ha generato la quotazione, l’orario in cui è uscita dal server della sede o l’orario in cui la tua macchina l’ha ricevuta. Per una strategia trend la differenza non conta. Per le strategie sensibili alla latenza è tutta la questione: due feed possono essere confrontati solo se entrambi sono marcati con lo stesso orologio, idealmente il tuo orario di ricezione sincronizzato con NTP o PTP.
4. Risoluzione e ordinamento
I timestamp con risoluzione al secondo non bastano per il lavoro di breve termine: decine di quotazioni possono condividere lo stesso secondo e il loro ordine al suo interno può andare perso dopo l’ordinamento. Usa una risoluzione al millisecondo (o più fine) e conserva l’ordine originale del file come criterio di spareggio.
Controlli di qualità prima di fidarti di un dataset
I dati tick grezzi contengono sempre errori. L’obiettivo non è la perfezione, ma sapere cosa c’è nei dati e rimuovere ciò che distorcerebbe il test. Questi sono i controlli che eseguiamo su ogni nuovo dataset prima di usarlo in un’ottimizzazione:
| Controllo | Cosa cercare | Azione tipica |
|---|---|---|
| Tempo monotono | Timestamp che tornano indietro | Riordina solo se la causa è nota; altrimenti segnala il file |
| Duplicati | Righe identiche (stesso orario, bid, ask) | Rimuovi i duplicati esatti; mantieni i prezzi ripetuti con orari diversi |
| Spread incrociato o nullo | Ask ≤ bid | Rimuovi; casi frequenti indicano una fonte difettosa o feed uniti |
| Spread anomalo | Spread superiore, per esempio, a 10× la mediana oraria al di fuori di eventi noti | Segnala; mantieni se coincide con rollover o notizie, rimuovi se isolato |
| Picchi di prezzo | Un salto del prezzo medio pari a molte volte la volatilità recente che si inverte in pochi tick | Rimuovi i picchi isolati; non filtrare mai i veri movimenti da notizie |
| Buchi | Nessun tick per più di 60 secondi nelle ore liquide | Mappa i buchi; escludi quei periodi dal test o contrassegna le operazioni al loro interno |
| Quotazioni ferme | Lo stesso bid/ask ripetuto per minuti mentre le altre fonti si muovono | Trattale come un buco |
| Tick del fine settimana e dei giorni festivi | Quotazioni tra la chiusura del venerdì e l’apertura della domenica | Rimuovi, oppure verifica il fuso orario se lì compare un’ora intera |
| Densità dei tick | Tick per ora confrontati con la stessa ora in altri giorni | Un calo improvviso suggerisce una limitazione del feed o un problema di registrazione |
| Scala dei prezzi e cifre decimali | Quotazioni a 4 e a 5 cifre, coppie JPY con 3 decimali | Normalizza prima di unire le fonti |
Una regola semplice e robusta per i picchi: calcola la deviazione assoluta mediana mobile (MAD) delle variazioni del prezzo medio sugli ultimi 200 tick; segnala ogni tick la cui variazione supera circa 15× la MAD e si inverte in gran parte entro i tre tick successivi. Un vero movimento da notizia non si inverte in tre tick; una quotazione errata di solito sì. Regola le soglie per ogni coppia e guarda cosa rimuovi, perché un filtro troppo zelante cancella esattamente i movimenti di cui ha bisogno una strategia di arbitraggio o di notizie.
Passo dopo passo: preparare i dati tick per un backtest

Spread variabile: il costo che uno spread fisso nasconde
Molti test usano un unico valore di spread, per esempio 0.8 pip per EUR/USD. Gli spread reali si muovono tutto il giorno: stretti nella sovrapposizione Londra–New York, più ampi nella sessione asiatica, larghi diversi pip per qualche minuto attorno al rollover giornaliero e alle pubblicazioni importanti. Le cause sono trattate nella nostra guida sul perché gli spread forex si allargano.
Uno spread fisso è sbagliato in modo sistematico, perché le strategie non operano in momenti casuali. Una strategia breakout tende ad attivarsi quando la volatilità sale, che è esattamente quando gli spread si allargano. Una strategia mean-reversion che opera nella tranquilla sessione asiatica incontra spread superiori alla media giornaliera. Con tick bid/ask registrati, ogni operazione paga lo spread effettivamente quotato in quel momento.
Esempio pratico (numeri illustrativi). Una strategia di scalping effettua 400 operazioni complete al mese su EUR/USD con 1 lotto standard (circa $10 per pip).
Il valore di 1.1 pip è un esempio per mostrare il meccanismo, non un valore misurato per alcun broker. Misura nei dati tick lo spread medio che le operazioni della tua strategia incontrano davvero.
Quanto l’ipotesi sui dati cambia il risultato
Per mostrare l’effetto di ciascuna ipotesi, il grafico qui sotto prende un’ipotetica strategia di breve termine e cambia solo il modello dei dati e di esecuzione. I numeri sono illustrativi, costruiti per riflettere la direzione e l’entità approssimativa degli effetti che osserviamo abitualmente passando da test basati su barre a test basati su tick con esecuzione realistica. Non sono i risultati di una strategia specifica.

Ciò che conta è lo schema. Ogni ipotesi realistica toglie una parte del vantaggio, e l’ultimo passo, il tempo di esecuzione, spesso è quello che toglie di più alle strategie di breve termine. Se una strategia supera tutti e quattro i passi con un risultato positivo e un numero sensato di operazioni, vale un piccolo test dal vivo. Se sembra buona solo nella prima colonna, il vantaggio appartiene al modello dei dati, non al mercato.
I tick sono necessari, non sufficienti: il tempo di esecuzione
Anche un dataset di tick perfetto dà un test ottimistico se ogni ordine viene eseguito al prezzo del tick che lo ha generato. Dal vivo c’è sempre un ritardo tra la decisione e l’esecuzione: la tua piattaforma, la rete, l’elaborazione del broker. Durante quel ritardo il mercato va avanti. In una giornata tranquilla l’effetto è una frazione di pip; in un movimento veloce è la differenza tra un’operazione vincente e una perdente.
Il modello corretto avanza nel flusso dei tick della parte di richiesta del tuo tempo di esecuzione ed esegue al bid o all’ask quotato in quel momento successivo. Questo produce uno slippage realistico, positivo e negativo, senza dover indovinare un valore di slippage. Spieghiamo questo modello, le quattro componenti della latenza e un esempio pratico nell’articolo sul divario del tempo di esecuzione nei backtest di arbitraggio di latenza, e come misurare lo slippage sulle esecuzioni reali in lo slippage forex spiegato.
Questa è anche la risposta più comune alla domanda “perché i miei risultati dal vivo sono diversi dal backtest?” I dati erano corretti; il modello di esecuzione presupponeva un ritardo nullo. Una buona regola pratica è testare con il tempo di esecuzione misurato e di nuovo con un valore da 1.5 a 2 volte superiore. Una strategia che crolla con il valore più alto è fragile.
Archiviazione, formati e gestione
I dati tick sono voluminosi, e il formato che scegli influisce sia sullo spazio su disco sia sulla velocità con cui un ottimizzatore può riprodurli. Una stima approssimativa per una coppia principale attiva:
Stime di ordine di grandezza. I formati colonnari compressi di solito riducono i file tick di diverse volte ancora.
- Memorizza i prezzi come interi in punti (1.08512 → 108512). Evita gli arrotondamenti in virgola mobile quando confronti i prezzi e dimezza le dimensioni.
- Partiziona per simbolo e per giorno. Un file per simbolo al giorno rende semplici i controlli dei buchi, i ricaricamenti parziali e l’ottimizzazione in parallelo.
- Lascia intatti i file grezzi. Esegui la pulizia in un dataset separato e conserva il registro di pulizia, così potrai riprodurre qualsiasi risultato.
- Mantieni il CSV per lo scambio di dati. Un formato semplice con timestamp, bid e ask è quello che la maggior parte degli strumenti importa. SharpTrader Optimizer, per esempio, accetta i tuoi dati tick in CSV con timestamp, bid e ask.
Errori comuni
- Chiamare “dati tick” le barre interpolate. Verifica se il tuo strumento riproduce quotazioni registrate o le genera dalle barre.
- Testare sui prezzi medi. Un dataset solo sul prezzo medio ignora completamente lo spread; i costi devono derivare dal bid e dall’ask.
- Mescolare fonti in un unico test. Unire i file di due fornitori crea salti artificiali nel punto di giunzione e regimi di spread diversi nello stesso periodo.
- Ignorare il fuso orario e l’ora legale. I filtri di sessione e la logica del rollover giornaliero si spostano silenziosamente.
- Riempire i buchi con prezzi inventati. Una strategia può “operare” durante un’interruzione in cui non c’erano quotazioni reali. Escludi invece i buchi.
- Pulizia eccessiva. Cancellare ogni grande movimento elimina i picchi da notizie e i salti su cui alcune strategie sono costruite per operare.
- Esecuzioni a latenza zero. Esecuzioni perfette sul tick del segnale fanno sembrare redditizia quasi qualsiasi strategia di breve termine.
- Ottimizzare su tutti i dati. Senza un periodo out-of-sample e verifiche walk-forward, una grande griglia di parametri troverà una curva che si adatta al passato e a nient’altro.
I dati tick in SharpTrader Optimizer
Abbiamo costruito SharpTrader Optimizer attorno ai punti di questa guida. Riproduce tick bid/ask storici reali invece di barre interpolate, prende lo spread da ogni tick e ti permette di impostare il tempo di esecuzione degli ordini in millisecondi, così ogni esecuzione proviene dal flusso dei tick dopo quel ritardo. Puoi usare lo storico tick di BJF Feed registrato sui nodi di Londra, Tokyo e New York, oppure importare i tick del tuo broker in CSV. Le griglie di parametri girano su tutti i core della CPU, il che è importante quando un anno di una sola coppia corrisponde a decine di milioni di tick.
Se hai già una tua strategia, l’articolo su come testare il tuo bot in SharpTrader mostra l’intero flusso di lavoro, dal codice all’ottimizzazione a livello di tick.
Testa sui tick che la tua strategia incontrerà davvero
Tick bid/ask reali, spread variabile su ogni quotazione e il tempo di esecuzione del tuo broker in millisecondi: i tre input che decidono se una strategia di breve termine sopravvive al trading reale.
Scopri SharpTrader OptimizerLeggi: il divario del tempo di esecuzione
Scanner di arbitraggio gratuito + breve corso via email
Ricevi il link allo scanner gratuito e alcune email brevi e pratiche di Boris: cosa significa davvero un divario di prezzo dopo i costi, come testare una strategia prima di rischiare denaro reale e quali strumenti sono adatti al tuo mercato. Niente promesse esagerate. Le email sono in inglese.
Domande frequenti
Che cosa sono i dati tick forex?
I dati tick forex sono la registrazione di ogni variazione di quotazione di una coppia di valute, con un timestamp, il prezzo bid, il prezzo ask e talvolta il volume quotato. Conservano l’ordine esatto, la tempistica e lo spread degli aggiornamenti di prezzo, che i dati a barre perdono.
Dove posso trovare dati tick forex gratuiti?
Alcuni broker ECN e aggregatori pubblicano gratuitamente tick bid/ask storici per le coppie principali, e molti broker ti permettono di scaricare il proprio storico. Gli archivi gratuiti sono utili per la ricerca, ma mostrano i prezzi di una sola sede, quindi conferma il risultato finale sui tick registrati del tuo broker.
I dati tick sono migliori dei dati a 1 minuto per il backtest?
Per strategie con target e stop entro pochi pip, scalping, trading sulle notizie e arbitraggio, sì: le barre a un minuto nascondono l’ordine di massimo e minimo, i salti di prezzo e lo spread reale. Per strategie swing con stop ampi, dati puliti a un minuto con uno spread realistico spesso bastano.
Perché ottengo risultati di backtest diversi su due fonti di dati?
Il forex spot non ha un registro centrale delle transazioni, quindi ogni fonte è la visione di una sede diversa. Spread, frequenza delle quotazioni, fusi orari, gestione dell’ora legale e regole di pulizia sono tutti diversi. Confronta prezzi orari e spread tra i due dataset per trovare la causa e fidati della fonte più vicina alla tua sede di esecuzione.
Quanto spazio di archiviazione richiede un anno di dati tick forex?
Per una coppia principale attiva, all’incirca decine di milioni di tick all’anno: circa 2 GB come testo CSV o intorno a 0.6 GB in un formato binario compatto prima della compressione. Diverse coppie su diversi anni raggiungono rapidamente decine di gigabyte.
Perché il mio backtest su dati tick mostra esecuzioni perfette?
Perché il test esegue ogni ordine sul tick che ha generato il segnale. Gli ordini reali impiegano tempo per raggiungere il broker e nel frattempo il prezzo si muove. Modella il tempo di esecuzione avanzando nel flusso dei tick ed eseguendo al bid o all’ask successivo, e testa con un ritardo da 1.5 a 2 volte quello misurato.
Mi servono sia bid che ask, o basta il prezzo medio?
Ti servono entrambi. Gli acquisti vengono eseguiti all’ask e le vendite al bid, quindi lo spread è un costo reale su ogni operazione. Un dataset solo sul prezzo medio elimina quel costo e fa sembrare le strategie di breve termine migliori di quanto siano.
Questo articolo ha scopo educativo e non costituisce consulenza finanziaria. Esempi, grafici e cifre contrassegnati come illustrativi non sono misurazioni di alcun broker o strategia specifici; fonti di dati, convenzioni e costi differiscono tra i fornitori e cambiano nel tempo.