
Un periodo di warmup nel backtest è un blocco di storico che viene fatto scorrere attraverso la tua strategia prima che si apra la finestra di valutazione. Permette a medie mobili, RSI, MACD e altri indicatori di riempirsi con un numero sufficiente di barre per produrre valori validi. Il trading è disattivato durante il warmup, e nessuna di quelle barre conta ai fini della performance. Dimensionalo in base all'indicatore più lento della tua catena, non in base al numero più grande presente nelle tue impostazioni. Assicurati che i dati esistano prima della tua prima data di test, senza buchi.
Questa guida mostra come dimensionare il warmup per gli indicatori più comuni, cosa si rompe quando è troppo corto, e come tenere le barre di warmup fuori dai tuoi risultati. Copre anche il motivo per cui la qualità dello storico precedente alla data di inizio conta tanto quanto i dati all'interno del test.
TL;DR
- Il warmup è lo storico pre-inizio che inizializza gli indicatori. Durante questo periodo non vengono piazzati trade né misurati risultati.
- Il warmup non è la stessa cosa della suddivisione in-sample/out-of-sample. Il warmup prepara lo stato, mentre quelle suddivisioni decidono cosa puoi imparare.
- Una media mobile semplice richiede il proprio periodo in barre. Gli indicatori ricorsivi e concatenati ne richiedono di più: MACD(12,26,9) richiede 34 input, e ADX(14) richiede almeno 28 candele.
- Un warmup troppo corto produce valori NaN che possono sembrare "nessun segnale" e distorcono silenziosamente i tuoi trade.
- Lo storico precedente alla data di inizio deve essere pulito e continuo. Barre mancanti in quel tratto corrompono ogni indicatore successivo.
Indice
- Cos'è un periodo di warmup e perché ogni backtest ne ha bisogno
- Warmup, finestra di valutazione e out-of-sample: tre cose diverse
- Come dimensionare il warmup per ogni indicatore
- Convertire le barre in tempo di calendario sui dati a minuti
- Cosa va storto quando il warmup è troppo corto
- Tenere le barre di warmup fuori dai numeri di performance
- I dati prima della data di inizio devono essere solidi
- Promo: storico pronto prima della tua prima barra
- Il nostro punto di vista
- Una procedura breve da riutilizzare
- FAQ
- Fonti
Cos'è un periodo di warmup e perché ogni backtest ne ha bisogno
Gli indicatori sono funzioni delle barre passate. Una media mobile semplice a 50 periodi non è definita sulla barra 10, perché le 50 barre su cui calcola la media non esistono ancora. Se il tuo backtest inizia dalla prima barra del tuo file di dati, la tua strategia trascorre il primo tratto a prendere decisioni su valori mancanti o privi di significato.
La soluzione è far girare prima la strategia su uno storico precedente. Gli indicatori assorbono quelle barre e raggiungono uno stato pronto. Solo a quel punto inizia la finestra di valutazione, e la strategia è autorizzata a piazzare ordini. La documentazione dello Strategy Tester di MetaTrader 5 descrive lo stesso concetto: il tester carica un buffer di storico pre-inizio in modo che gli indicatori possano calcolare fin dall'inizio stesso del test richiesto.
Da questo derivano tre conseguenze:
- Il warmup consuma dati. Ti servono dati storici prima della data di inizio prevista, non solo dopo.
- Il warmup è silenzioso. Niente genera errori quando è troppo corto. I numeri peggiorano e basta.
- Il warmup è una proprietà della strategia. Una strategia con una media mobile a 200 barre ne ha bisogno di più di una con un RSI a 10 barre, e una strategia che usa entrambi ha bisogno del valore più grande.
Warmup, finestra di valutazione e out-of-sample: tre cose diverse
I trader spesso confondono questi concetti, quindi separiamoli prima di impostare qualsiasi cosa.
| Segmento | Scopo | Vengono piazzati trade? | I risultati contano? |
|---|---|---|---|
| Warmup | Riempie indicatori e stato | No | No |
| In-sample (sviluppo) | Progettare e calibrare le regole | Sì | Sì, solo per lo sviluppo |
| Out-of-sample (OOS) | Un controllo finale su dati non visti | Sì | Sì, come stima onesta |
Il warmup precede qualunque segmento tu stia per eseguire. Te ne serve uno prima dell'esecuzione in-sample, e un altro prima dell'esecuzione out-of-sample se quel segmento viene testato separatamente. Altrimenti le prime barre OOS vengono valutate con indicatori che sono stati azzerati, e l'errore da avvio a freddo finisce proprio nel tuo test più importante.
Un'altra sottigliezza: la data di inizio richiesta non è sempre la data di inizio effettiva. MetaTrader 5 afferma che quando lo storico disponibile è insufficiente, il tester sposta automaticamente la data di inizio effettiva in avanti fino al punto più vicino che soddisfa i suoi requisiti, e registra la modifica nel log del tester. Se confronti due esecuzioni che credi coprano lo stesso periodo, controlla il log. Potrebbero non coincidere.
Come dimensionare il warmup per ogni indicatore
La regola è semplice: individua il numero di barre di cui ciascun indicatore ha bisogno prima che il suo output sia valido, poi prendi il valore più grande tra tutti quelli della strategia. La difficoltà è che il "numero di barre" non corrisponde sempre al periodo visibile.
Indicatori semplici: il periodo stesso
Il maintainer della libreria open-source Stock.Indicators spiega che una media mobile semplice non può essere calcolata finché non esiste un periodo completo di dati. SMA(200) richiede 200 barre. Un massimo o minimo mobile su N barre richiede N barre.
Indicatori ricorsivi: più del periodo
Le medie esponenziali, e tutto ciò che si basa su di esse, conservano memoria dell'intero passato. Lo stesso maintainer osserva che gli indicatori ricorsivi possono produrre valori inizialmente meno accurati che convergono nel tempo. Emettono un numero fin da subito, ma non è ancora affidabile.
Per ADX, quella discussione raccomanda almeno 2×N+100 quotazioni storiche prima di fidarsi dell'output, e preferibilmente 2×N+250 per una precisione migliore. Il suo esempio rimuove le righe di warmup prima di valutare i risultati. Per ADX(14), questo significa 128 barre come soglia minima e 278 come scelta più sicura.
Indicatori concatenati: somma la catena di dipendenze
Un indicatore concatenato alimenta un calcolo con l'output di un altro, e il warmup è la lunghezza della catena. La documentazione MACD di Wickra definisce il warmup del MACD come il periodo lento più il periodo del segnale meno uno. Per la classica configurazione 12/26/9, sono 34 input prima che compaia l'output completo. La documentazione ADX di Wickra riporta 2×periodo per ADX, quindi 28 candele per ADX(14). Il calcolo prima inizializza il directional movement e lo smoothing del true range, poi inizializza l'ADX stesso.
Ecco un riferimento rapido costruito a partire da queste fonti:
| Indicatore | Barre minime prima del primo output valido | Buffer pratico più sicuro |
|---|---|---|
| SMA(N) | N | N |
| MACD(12,26,9) | 34 | Più volte il periodo lento, così le EMA si assestano |
| ADX(14) | 28 | 2×N+100 (128), preferibilmente 2×N+250 (278) |
Il buffer più sicuro per il MACD è un nostro suggerimento pratico per lo smoothing ricorsivo, non un dato pubblicato. Tratta i valori minimi come soglie di sicurezza.
Una strategia con più indicatori
Prendiamo una strategia che usa SMA(200) sul trend, MACD(12,26,9) per il timing e ADX(14) come filtro. Le soglie minime sono 200, 34 e 28 barre, quindi la strategia ha bisogno di almeno 200. Ma l'ADX si assesta solo intorno alle 128-278 barre, un valore comunque inferiore a 200. Un warmup di 250 barre copre le soglie minime della strategia e il buffer raccomandato per l'ADX. Se aggiungi una EMA a 200 periodi, che è ricorsiva, vorresti un buffer ben superiore a 200 affinché i suoi valori iniziali siano convergiti.

Convertire le barre in tempo di calendario sui dati a minuti
Il warmup si conta in barre, ma i dati si caricano per data, e le due misure divergono al cambiare del timeframe. Su barre a 1 minuto, un warmup di 250 barre corrisponde a circa quattro ore di negoziazione. Su barre giornaliere, corrisponde a circa un anno di giorni di trading. Se la tua strategia calcola una media a 200 giorni su dati a minuti, il warmup equivale a 200 sessioni di barre a minuti. In un mercato forex aperto 24 ore su 24, questo corrisponde approssimativamente a 288.000 barre su una settimana di cinque giorni, una cifra che dovresti verificare rispetto al calendario di sessione del tuo specifico strumento.
MetaTrader 5 costruisce un buffer minimo fisso pre-inizio. Secondo la sua documentazione, per i timeframe D1 e inferiori carica dati a partire dall'inizio dell'anno solare precedente. Per W1 e MN1 richiede almeno 100 barre settimanali e 100 barre mensili rispettivamente. Un test che inizia a metà 2024 su barre a minuti attinge quindi a dati storici a partire dall'inizio del 2023. Questo è comodo, ma aiuta solo se quei dati precedenti esistono davvero nel tuo terminale e sono accurati.

Cosa va storto quando il warmup è troppo corto
Il fallimento evidente è un indicatore che restituisce NaN. Quello meno evidente è cosa fa il tuo codice con quel valore.
La documentazione di QuantWave avverte che gli output del warmup possono essere NaN anziché null. Un passaggio di pulizia che rimuove solo i valori null lascerà le righe di warmup non valide all'interno del tuo backtest. Nota anche che confronti come NaN < 30 restituiscono false. Una regola di ingresso "RSI sotto 30" leggerà quindi un NaN come "nessun segnale" e sembrerà un periodo perfettamente ordinario di quiete. Niente va in crash, e la strategia sembra funzionare.
Il danno si manifesta in questi modi:
- Trade fantasma iniziali. Regole che confrontano un indicatore con un prezzo (per esempio, chiusura sopra una media mobile non ancora formata) possono scattare su valori spazzatura.
- Equity iniziale distorta. Le prime settimane di risultati provengono da un modello costruito a metà, il che falsa drawdown e conteggio dei trade.
- Confronti non riproducibili. Due esecuzioni che iniziano dalla stessa data ma con warmup di lunghezza diversa producono trade diversi, trasformando i test sui parametri in rumore.
- Statistiche gonfiate o sgonfiate sui test brevi. Su un test di poche centinaia di barre, un warmup di 200 barre rappresenta la maggior parte dei dati. L'effetto è massimo proprio dove i trader sono più tentati di tagliare gli angoli.
Tenere le barre di warmup fuori dai numeri di performance
L'obiettivo è che le barre di warmup alimentino lo stato senza produrre trade o statistiche. Esistono tre approcci comuni, combinabili tra loro.
- Salta le prime N barre nella strategia. Molti framework espongono un'impostazione che fa iniziare l'esecuzione della strategia dalla barra N invece che dalla barra zero. Un warmup di 200 barre su un dataset di 500 barre lascia 300 barre da valutare. In codice personalizzato, esci anticipatamente dal tuo gestore delle barre finché il conteggio non raggiunge N.
- Verifica la prontezza, non solo il conteggio. Testa che ogni indicatore segnali di essere pronto, e aumenta il lookback se uno di essi non lo è.
- Taglia mantenendo l'allineamento. Se lavori con dataframe, rimuovi le righe di warmup iniziali su tutte le colonne contemporaneamente. QuantWave raccomanda un taglio che preservi l'allineamento piuttosto che eliminare righe colonna per colonna, cosa che sfaserebbe una serie rispetto a un'altra. Rimuovi esplicitamente le righe NaN, non solo quelle null.
Alcuni controlli pratici prima di fidarti di un'esecuzione:
- Stampa il primo timestamp in cui la strategia è autorizzata a fare trading e conferma che sia successivo al primo timestamp caricato.
- Conferma che il numero di barre valutate sia uguale al totale delle barre meno le barre di warmup.
- Confronta l'orario del primo trade con la prima data in cui i tuoi indicatori hanno valori validi.
- Se testi per segmenti (in-sample, poi OOS), riavvia il warmup per ogni segmento partendo da storico reale, non da zeri.
I dati prima della data di inizio devono essere solidi
La maggior parte dei consigli sul warmup si ferma al conteggio delle barre. La parte che morde nella pratica è la qualità delle barre. Un indicatore vale quanto lo storico che digerisce. Un'ora mancante, un timestamp duplicato o uno spike anomalo nella zona di warmup non influisce solo su quel momento. Si propaga in avanti attraverso ogni indicatore ricorsivo, perché lo smoothing esponenziale non dimentica mai del tutto. Questo è un modo silenzioso per ottenere risultati diversi dalla stessa strategia su due file di dati diversi.
Quindi verifica la zona di warmup con la stessa cura con cui verifichi la zona di test:
- Cerca buchi e slittamenti di timestamp, specialmente intorno ai cambi dell'ora legale e ai rollover di sessione.
- Controlla che le barre siano continue attraverso il confine tra warmup e valutazione.
- Assicurati che lo storico pre-inizio provenga dalla stessa fonte e dallo stesso metodo di aggiustamento del resto della serie.
Trattiamo la procedura di verifica più nel dettaglio nelle nostre guide su come verificare i dati di backtesting MT5 per buchi e timestamp e preparare i dati MQL4 anno per anno. Se la tua strategia opera su timeframe brevi, l'accuratezza del backtesting su barre a minuti spiega come le barre sottostanti influenzano i fill e i risultati.
Promo: storico pronto prima della tua prima barra
Il warmup implica che ti serva più storico del periodo che vuoi valutare. BacktestMarket fornisce dati storici intraday a barre pulite su base minuto fin dal 2014 per forex, metalli, obbligazioni e indici azionari. Vengono consegnati come dataset completi, pronti per l'importazione in MT4 e MT5, così gli anni precedenti alla tua data di inizio sono già disponibili. I nostri ingegneri raccolgono i dati e rispondono direttamente alle richieste di supporto. Puoi esplorare i set di dati storici o i dati forex. Il Piano Annuale costa 119 € all'anno.

Il nostro punto di vista
Costruiamo dataset per chi fa backtesting, e il reclamo più comune che riceviamo sui risultati non riguarda la strategia. Riguarda il fatto che due esecuzioni non coincidono e nessuno sa dire perché. Il warmup è uno dei primi punti da controllare, e i dati sottostanti sono il secondo.
Il nostro standard è la verifica barra per barra e gli aggiustamenti documentati. Una zona di warmup piena di buchi vanifica lo scopo stesso del warmup. Un buffer di 250 barre fatto di minuti corrotti è peggio di un buffer più corto fatto di dati puliti, perché l'errore si nasconde dentro i tuoi indicatori.
Per questo consegniamo dataset completi in un unico download, pronti per MT4 e MT5, a partire dal 2014. Decidi tu dove inizia la finestra di valutazione, e lo storico che la precede è già nello stesso formato e nello stesso standard. Scegli il tuo warmup in base all'indicatore più lento, avvia il test dopo di esso, e mantieni un unico storico continuo e documentato sotto a tutto questo.
Inizia
Una procedura breve da riutilizzare
- Elenca ogni indicatore e i suoi parametri.
- Annota il numero minimo di barre valide per ogni indicatore, inclusa la sua catena di dipendenze.
- Per gli indicatori ricorsivi, aggiungi un buffer di convergenza, come 2×N+100 per l'ADX dove la fonte lo raccomanda.
- Prendi il valore più grande e arrotonda per eccesso con generosità.
- Converti le barre in tempo di calendario in base al tuo timeframe e al calendario dello strumento.
- Conferma che esistano dati così indietro nel tempo, senza buchi.
- Esegui il test, poi controlla il log per la data di inizio effettiva e il timestamp del primo trade.
- Ripeti la procedura per ogni segmento testato separatamente.
FAQ
Quanto dovrebbe durare un periodo di warmup nel backtest?
Dovrebbe durare almeno quanto necessario all'indicatore più lento per diventare valido, e più a lungo per gli indicatori ricorsivi. Una media mobile a 200 barre richiede 200 barre, mentre per ADX(14) si raccomanda di avere almeno 2×14+100 quotazioni. Arrotonda per eccesso e conferma la data di inizio effettiva nel log del tuo tester.
Il periodo di warmup è la stessa cosa dei dati out-of-sample?
No. Le barre di warmup servono solo a inizializzare gli indicatori, e non vengono piazzati né misurati trade. I dati out-of-sample vengono tenuti da parte durante lo sviluppo, poi usati per un test finale su quanto la strategia generalizzi. Ogni segmento che testi ha comunque bisogno del proprio warmup davanti a sé.
Cosa succede se salto il warmup?
Gli indicatori restituiscono valori NaN o immaturi all'inizio, e le tue regole potrebbero trattarli come reali. I confronti con NaN restituiscono false, quindi un segnale mancante può sembrare un mercato calmo. I trade e le statistiche iniziali finiscono per basarsi su input non validi.
MetaTrader gestisce il warmup al posto mio?
In parte. Il tester MT5 carica un buffer di storico pre-inizio, a partire dall'inizio dell'anno solare precedente per i timeframe D1 e inferiori. Se quello storico manca, può spostare in avanti la tua data di inizio. Devi comunque verificare i dati e leggere il log.
Fonti
- Come il Tester scarica i dati storici, guida MetaTrader 5
- Warmup e convergenza, discussione Stock.Indicators
- MacdIndicator, documentazione Wickra
- ADX, documentazione Wickra
- Python, documentazione QuantWave
Consigliati
- Proteggi il Tuo Backtest: Audit in 5 Passi per Gestire le Barre Mancanti
- Sei Metodi di Aggregazione delle Barre che i Quant Possono Calibrare per i Backtest ML
- Quando le Barre a 1 Minuto vs 5 Minuti Traggono in Inganno i Quant: Esegui un Signature Plot
- 3 Modi per Rimuovere le Barre del Weekend dai Dati Forex per il Backtesting
Risorse correlate
Esplora gli Expert Advisor di BacktestMarket per mettere in pratica le idee di questo articolo.
