
La precisione dei prezzi nel backtesting indica quanto fedelmente il tuo test riproduce i prezzi a cui una strategia avrebbe potuto effettivamente operare. Riguarda due aspetti: come il motore simula il movimento dei prezzi all'interno di ogni barra, e quanto sono accurati i prezzi storici memorizzati. Se sbagli anche solo uno dei due, una curva di equity apparentemente profittevole può essere un artefatto dei dati o della simulazione, non del tuo vantaggio reale.
TL;DR
- La precisione ha due livelli: la modalità di simulazione (solo barra, 1 minuto, o tick reali) e la qualità dello storico dei prezzi sottostante.
- Gli ordini stop e limit richiedono una simulazione più fine rispetto agli ordini a mercato, perché i riempimenti dipendono dal percorso seguito dal prezzo all'interno della barra.
- Convalida i dati prima di ottimizzare: controlla timestamp, duplicati, logica OHLC e gap, e non colmare mai ciecamente le barre mancanti.
- Modella esplicitamente spread, commissioni e slippage. Esegui ogni test con e senza costi.
- Metti alla prova il risultato: varia parametri, costi e periodi. Un ampio plateau è una prova migliore di un singolo picco isolato.
Indice
- Cosa significa precisione dei prezzi in un backtest
- Scegliere il giusto livello di precisione per la tua strategia
- Controlla i dati prima di ottimizzare qualsiasi cosa
- Modella onestamente costi e riempimenti
- Metti alla prova il risultato con l'analisi di sensibilità
- Dove backtest e trading live si separano
- Il nostro punto di vista
- Inizia con dati puliti
- FAQ
- Fonti
Cosa significa precisione dei prezzi in un backtest
Un backtest non osserva un mercato. Riproduce numeri memorizzati e decide, barra dopo barra o tick dopo tick, quali ordini sarebbero stati eseguiti e a quale prezzo. La "precisione" è la risoluzione di questa riproduzione.
La documentazione di StrategyQuant mostra la scala di modalità più chiara. Nelle sue impostazioni dati, la modalità Selected Timeframe utilizza solo il timeframe principale e crea quattro tick per barra (open, high, low, close). La modalità 1 Minute costruisce quattro tick ogni minuto a partire dai dati al minuto. Le due modalità Real Tick utilizzano tick registrati, con uno spread personalizzato oppure il vero bid e ask. La stessa documentazione afferma che la modalità basata solo sulla barra è generalmente sufficiente per gli ordini a mercato, mentre la simulazione a tick è più adatta per gli ordini stop e limit.

La ragione è semplice. Una barra oraria indica il massimo e il minimo, ma non quale dei due si sia verificato per primo. Se il tuo stop e il tuo target ricadono entrambi all'interno del range di quella barra, il motore deve indovinare l'ordine di accadimento. Una serie di 60 barre al minuto riduce questa incertezza a un singolo minuto.
La precisione riguarda anche i decimali
Esiste una versione più silenziosa del problema: l'arrotondamento. Una pull request di Freqtrade sulla precisione dei prezzi descrive il calcolo della precisione storica a partire dai dati stessi, in modo che i prezzi più vecchi non vengano più arrotondati con la precisione odierna. Gli autori notano che questo cambia i risultati del backtest su periodi lunghi, ma li rende più corretti. Se il tick size di uno strumento è cambiato nel corso degli anni, un test che applica l'arrotondamento odierno ai prezzi vecchi distorce le strategie con target di piccole dimensioni.
Perché la logica di riempimento conta quanto i dati
Le piattaforme differiscono anche nel modo in cui riempiono gli ordini di protezione. La nota di StrategyQuant su backtesting affidabile in JForex spiega che in JForex uno stop loss o un take profit viene riempito al prezzo del tick che lo ha attivato, mentre in MetaTrader viene riempito al livello impostato. La sua conclusione è che è necessaria la precisione dei tick reali per risultati JForex affidabili. La lezione vale in generale: conosci la regola di riempimento del tuo motore prima di fidarti di un numero che produce.
Scegliere il giusto livello di precisione per la tua strategia
Fai corrispondere la risoluzione a ciò da cui dipende la strategia.
| Tipo di strategia | Tipi di ordine | Punto di partenza ragionevole |
|---|---|---|
| Swing giornaliero o orario, ordini a mercato alla chiusura della barra | Mercato | Modalità solo barra su barre pulite |
| Intraday con stop e target all'interno delle barre | Stop, limit | Dati al minuto o simulazione a tick |
| Scalping, target stretti, sensibile allo spread | Stop, limit | Dati tick reali con spread reale |
Più precisione non è automaticamente meglio. EdgeVeris Journal sottolinea che la granularità dei dati non è certezza di esecuzione: un grafico a un secondo non dimostra che il motore di riempimento lo abbia utilizzato, e ricalcolare un indicatore a un minuto su barre a un secondo cambia la strategia stessa. Scegli i dati più fini che il tuo motore utilizzerà davvero, e mantieni coerente il timeframe del segnale.
Per un approfondimento sui compromessi, consulta il nostro confronto tra dati tick e dati al minuto, e il nostro test su quando le barre a 1 minuto e 5 minuti traggono in inganno.
Controlla i dati prima di ottimizzare qualsiasi cosa
Un motore preciso alimentato con prezzi errati produce assurdità precise. La convalida viene prima dell'ottimizzazione degli indicatori, e un report apparentemente profittevole può dipendere da una candela ripetuta, una chiusura mancante o una conversione del fuso orario silenziosa, come afferma questa guida alla convalida dei dati.
Una checklist pratica di acquisizione
- Timestamp. Rigorosamente crescenti, nessun duplicato. La metodologia di QuantProp afferma inoltre di non ordinare o eliminare mai silenziosamente una riga; registra ogni trasformazione accanto al nuovo snapshot.
- Limiti di prezzo. Finiti, strettamente positivi, senza valori NaN o null.
- Logica della barra. Il massimo almeno pari a open e close, il minimo non superiore a open e close, il massimo almeno pari al minimo. La checklist di OpenBacktesting elenca questi controlli insieme a volume, azioni societarie e verifiche sui fusi orari.
- Fuso orario. Normalizza a uno standard unico e sappi cosa rappresenta un timestamp (apertura o chiusura della barra).
- Provenienza. Registra fornitore, data e ora di acquisizione, numero di righe, e confronta la serie pulita con il file grezzo su alcune date.
Sii realistico su cosa dimostrano queste regole. Individuano candele contraddittorie, ma la stessa guida nota che non possono dimostrare che un fornitore abbia registrato i prezzi corretti: una candela plausibile può comunque appartenere al simbolo sbagliato, a una serie di rettifiche errata o a un intervallo sbagliato.
Gap e spread all'interno delle barre
Conta i gap intraday, segnala il più lungo ed escludi i weekend ovvi. L'audit della cache di Radius Red segnala i gap superiori a 15 minuti e riassume anche il range massimo-minimo di ogni barra, cercando range nulli o negativi e barre estremamente ampie. Un gruppo di barre ampie in un determinato intervallo di date spesso indica una copertura dati scarsa in quel periodo.
Non colmare mai le barre mancanti
Riempire un buco con candele piatte sembra ordinato ma è pericoloso. OpenBacktesting avverte che colmare un'interruzione non programmata crea barre sintetiche a volatilità zero, così un test ingenuo presume liquidità e riempie ordini limit che non avrebbero mai potuto essere eseguiti realmente. La guida alla convalida citata sopra consiglia di isolare, ricaricare o modellare esplicitamente il gap, e di registrare questa scelta nella configurazione del run.
Verifica anche il fornitore
Sonar Sciences propone tre controlli sul fornitore: controlli a campione rispetto a una fonte primaria, un censimento dei gap sull'intera storia, e il tracciamento delle revisioni quando lo storico cambia dopo la consegna. Se le tue conclusioni cambiano in modo significativo tra versioni diverse dei dati, considera questo un problema di validità della ricerca, non solo un problema tecnico.
Modella onestamente costi e riempimenti
La precisione dei prezzi è sprecata se ogni trade viene riempito a un prezzo che non avresti mai potuto ottenere. La documentazione di screamer afferma che commissioni, spread e slippage sono di solito la differenza tra una strategia che funziona sulla carta e una che funziona dal vivo. Raccomanda di eseguire ogni strategia con e senza costi: un ampio divario significa che il vantaggio è piccolo rispetto ai costi di trading.
Le regole fondamentali:
- Attraversa lo spread. Un acquisto viene riempito all'ask e una vendita al bid, mai al midpoint, come descritto nella documentazione di esecuzione di Tektii.
- Preferisci le quotazioni storiche a uno spread fisso. La guida di mattheus.ai nota che gli spread si allargano e si restringono in base alle condizioni, ed elenca cinque componenti di costo: commissioni e fee, spread, impatto di mercato, ritardo e costo opportunità.
- Rendi esplicita la tempistica. L'indicazione di screamer è di trattare un target come deciso alla chiusura di una barra ed eseguirlo almeno una barra dopo; agire sui prezzi precedenti della stessa barra significa usare prezzi già nel passato rispetto a quando il segnale era noto.
Con le barre al minuto è comunque possibile approssimare lo slippage in modo sensato. Trattiamo un approccio nella nostra formula di slippage con barre al minuto e tre stimatori nella modellazione dello spread per i backtest. Nel forex, decidi anche se il volume tick è accettabile per la tua logica, come discusso in volume tick contro volume reale nel forex.
Metti alla prova il risultato con l'analisi di sensibilità
Una volta che dati e costi sono corretti, chiediti se il risultato sopravvive a piccole variazioni. Adaptrade descrive l'idea: modifica leggermente input, prezzi o l'ambiente. Una strategia robusta reagisce in modo proporzionale e moderato, mentre una fragile reagisce in modo sproporzionato o fallisce.
Perturbazioni pratiche:
- Sposta i parametri su valori vicini e cerca un plateau piuttosto che un picco isolato. Pineify nota che un plateau suggerisce una minore dipendenza da un singolo input esatto, anche se nessuno dei due pattern dimostra validità economica.
- Aumenta le ipotesi su spread e commissioni.
- Cambia la barra di partenza e testa sotto-periodi e regimi diversi.
- Confronta con una seconda fonte di dati pulita.
Il documento sul backtesting di SBAI pone le stesse domande: è stato utilizzato il dataset disponibile più lungo, sono stati testati tutti i mercati disponibili nella classe di attivi, e quanto è sensibile il modello a variazioni di parametri, mercati e storico?
Per separare i dati di progettazione dall'evidenza, PapersWithBacktest raccomanda di distinguere i periodi in-sample da quelli out-of-sample, e avverte che suddivisioni casuali train/test possono causare fughe di informazioni nei dati finanziari ordinati temporalmente. Il walk-forward testing è la solita alternativa consapevole del tempo. La nostra guida a un flusso di lavoro IS, WFA, OOS in MT5 lo illustra passo per passo.
Dove backtest e trading live si separano
Il paper di Alex Vidovich sui difetti tra backtest e trading live documenta sei difetti in un sistema intraday: tre dai dati (inclusi prezzi rettificati per i dividendi che gli ordini live non vedono mai), due dal codice (inclusi timestamp UTC letti come orario di New York) e uno dalla configurazione. Il punto è che la deriva può nascondersi nelle statistiche riassuntive. Ogni difetto aveva un costo misurabile.
La documentazione di screamer elenca sette difetti comuni: look-ahead, riempimenti irrealistici, costi mancanti, tempistica fragile, fortuna, selezione e divergenza tra backtest e trading live. La maggior parte si riconduce alla precisione: il prezzo che hai assunto contro il prezzo che esisteva realmente.
Il nostro punto di vista
Raccogliamo e verifichiamo noi stessi i dati al minuto, e la lezione appresa da anni di supporto ai quant è coerente: la maggior parte delle controversie su una strategia sono in realtà controversie sui dati. Un backtest non può essere più preciso delle barre che legge.
Per questo ci concentriamo su uno storico di dati al minuto pulito e completo a partire dal 2014, fornito in un formato pronto per l'importazione in MT4 e MT5. Il nostro approccio è pensato attorno alla verifica barra per barra e a rettifiche documentate, così puoi dedicare il tuo tempo alla strategia invece che a riparare file.
Le barre al minuto sono un ottimo compromesso. Offrono alla logica di stop e target una risoluzione molto superiore rispetto alle barre orarie, mantengono i file gestibili e permettono di modellare esplicitamente spread e slippage. I nostri ingegneri rispondono direttamente alle domande sui dati, perché un gap o un dubbio sul fuso orario non dovrebbero mai bloccare la tua ricerca.
Inizia
Inizia con dati puliti
Se desideri uno storico completo e pronto all'importazione senza doverlo pulire tu stesso, sfoglia i nostri set di dati storici che coprono forex, metalli, obbligazioni e indici azionari. Il Piano Annuale costa 119 EUR all'anno.
Se stai ancora confrontando le fonti, la nostra panoramica sulle fonti di dati forex al minuto per MT4 e MT5 spiega cosa cercare.
FAQ
I dati tick sono sempre necessari per un backtest accurato?
No. La simulazione basata solo sulla barra è generalmente sufficiente per gli ordini a mercato, mentre gli ordini stop e limit beneficiano della simulazione a tick, secondo la documentazione di StrategyQuant. I dati al minuto sono un compromesso pratico per molti sistemi intraday.
Come faccio a sapere se i miei dati storici sono puliti?
Esegui controlli di acquisizione: timestamp ordinati e univoci, prezzi finiti e positivi, range OHLC coerenti e un conteggio dei gap. Poi confronta alcune date a campione con il file grezzo o con una seconda fonte. Questi controlli individuano contraddizioni, non errori di simbolo sbagliato, quindi i controlli a campione sono importanti.
Dovrei colmare le barre al minuto mancanti?
Non automaticamente. Candele sintetiche piatte creano uno storico degli indicatori falso e riempimenti che non avrebbero potuto verificarsi. Isola, ricarica o modella esplicitamente il gap, e registra la scelta effettuata.
Perché il mio backtest sembra migliore del trading live?
Le cause più comuni sono costi mancanti, riempimenti a prezzi non disponibili, look-ahead e differenze nei dati tra il test e i feed live. Esegui con e senza costi e confronta i due risultati.
Fonti
- StrategyQuant: Settings – Data
- Freqtrade pull request 11711
- StrategyQuant: Reliable backtesting in JForex
- EdgeVeris Journal: Data feeds and execution models
- Backtest Data Validation: Timestamps, Gaps and Warmup
- QuantProp: Trading Data Quality and Dataset Provenance
- OpenBacktesting: Backtesting Data Checklist
- Radius Red: Auditing a Data Cache
- Sonar Sciences: How to verify a data vendor's history
- Screamer: Backtesting best practices
- Tektii Docs: Backtest Execution and Costs
- mattheus.ai: How to Model Trading Costs in a Backtest
- Adaptrade: Stress Testing for Trading Strategy Robustness
- Pineify: Backtest Sensitivity Analysis
- SBAI: Backtesting
- PapersWithBacktest: How We Verify Track Records
- Alex Vidovich: Where Backtests and Live Trading Part Ways
Consigliati
- 99% Modeling Quality for Quants: MQL4 Data Prep Per Year Gap Audit
- Prevent Flipped Backtests: Index Data Accuracy QA for Nifty 50 1m
- How to Achieve 99% Modeling Quality in MT4 for Backtests
- Quants: Run This 7 Step Data Audit Before Backtesting on MT4/MT5
Risorse correlate
Esplora i pacchetti di dati storici di BacktestMarket per mettere in pratica le idee presentate in questo articolo.

