Come si può fare il backtest dell’ATR in modo responsabile?
Cos’è l’ATR, prima di farne il backtest
L’Average True Range (ATR) è una statistica di volatilità basata sul true range, che riflette quanto il prezzo si muove tra periodi, inclusi i gap. L’ATR smussa questa misura del true range su un intervallo di tempo scelto. È meglio considerarlo come una scala (ad esempio, “dimensione tipica del movimento”) piuttosto che come un segnale autonomo di acquisto/vendita.
Un backtest responsabile inizia col chiarire cosa si sta testando: il calcolo stesso dell’ATR (correttezza della pipeline dei dati), il modo in cui l’ATR viene utilizzato all’interno di un insieme di regole (logica decisionale) e come le frizioni di trading influenzano i risultati effettivi. I valori storici dell’ATR sono calcolati a partire dalla serie storica dei prezzi; non sono previsioni.
Meccanica: definire dati, ipotesi e calcoli
Inizia specificando input e definizioni:
- Serie dei prezzi: Scegli i dati di prezzo da utilizzare (comunemente OHLC). Documenta i campi esatti.
- Definizione di true range: Utilizza il concetto standard di true range in modo che i gap siano inclusi tramite il riferimento alla “chiusura precedente”.
- Finestra e smoothing dell’ATR: Indica la lunghezza della finestra e il metodo di smoothing ipotizzato. Scelte diverse modificano i valori dell’ATR.
- Gestione del fuso orario e delle sessioni: Se il tuo dataset comprende sessioni con orari di trading diversi, definisci come tratti i confini.
Poi definisci l’ambiente del backtest:
- Generazione del segnale vs tempo di valutazione: Se una regola utilizza l’ATR, decidi se l’ATR al tempo t può essere usato per agire al tempo t o solo al t+1. Questo evita il look-ahead accidentale.
- Logica di posizione e dimensionamento: Anche se non specifichi una strategia, chiarisci cosa accade quando la tua regola richiede un’azione (ad esempio, se si assume l’ingresso all’apertura della prossima barra).
- Costi e modello di esecuzione: Includi almeno un modello generico di frizione (commissioni/tasse e uno spread o proxy di slippage). Utilizza ipotesi chiaramente dichiarate e applicate in modo coerente.
Un passaggio utile di verifica è riprodurre l’ATR dal tuo dataset in una piccola finestra di esempio. Se il valore di ATR calcolato non corrisponde a un’implementazione indipendente di cui ti fidi, correggi la pipeline prima di interpretare i risultati.
Evidenza e progettazione dell’esempio: controllo dei bias e verifiche fuori campione
Puoi rendere i backtest dell’ATR più credibili separando l’esplorazione all’interno del campione dalla valutazione fuori campione.
- Dividi i dati
- Crea un periodo cronologico di addestramento per le scelte dei parametri (ad esempio, lunghezza della finestra ATR o soglie delle regole).
- Mantieni un periodo successivo come set di test.
-
Test walk-forward Invece di una singola suddivisione statica, addestra ripetutamente sul passato e testa sul segmento successivo. Ciò riduce il rischio che la tua conclusione dipenda da una singola finestra temporale fortunata.
-
Controlla il bias di selezione Se provi molte varianti (diverse finestre, soglie o timeframe), il risultato migliore potrebbe essere un artefatto. Tieni traccia del numero di tentativi e preferisci configurazioni predefinite rispetto all’“ottimizzazione fino a quando funziona”.
-
Utilizza verifiche di robustezza attraverso diversi regimi Esegui la stessa configurazione testata in diverse condizioni di mercato, come periodi ad alta e bassa volatilità. Il comportamento legato all’ATR può cambiare quando la struttura della volatilità cambia.
Limitazione materiale / modalità di fallimento da prevedere: Se calcoli accidentalmente l’ATR utilizzando informazioni della barra su cui stai cercando di operare “in quel momento”, creerai un bias anticipatorio. Un’altra modalità di fallimento è che i costi di transazione realistici possono annullare le prestazioni apparenti.
Limitazioni e rischi: cosa possono e non possono dirti i backtest dell’ATR
- Scala di volatilità ≠ direzione: L’ATR misura l’ampiezza del movimento, non se il prezzo salirà o scenderà.
- Sensibilità ai costi: I backtest spesso sottostimano slippage, spread e ritardi di esecuzione. Con margini ridotti, questi fattori possono prevalere.
- Non stazionarietà: La dinamica dei prezzi cambia. Le relazioni storiche dell’ATR con i risultati non garantiscono somiglianza futura.
- Dipendenza dalle ipotesi: I risultati dipendono dalla finestra di calcolo scelta, dallo smoothing, dall’allineamento temporale e dalle ipotesi di esecuzione.
Verifica o prossima domanda: cosa controllare in modo indipendente
Per verificare in modo responsabile il tuo backtest, controlla i seguenti elementi prima di trarre conclusioni:
- Correttezza del calcolo dell’ATR su un piccolo campione ispezionabile manualmente.
- Allineamento temporale per confermare che non vengano utilizzate informazioni future.
- Riproducibilità: la versione del tuo dataset, i parametri e la logica del codice devono essere documentati in modo che un’altra persona possa rieseguire la stessa pipeline.
- Disciplina fuori campione: evita di riportare solo l’unico risultato migliore tra molti tentativi.
Se vuoi approfondire, considera come definisci la logica delle regole che utilizzano l’ATR (momento dell’azione, soglie e come modelli i costi). Anche in questo caso, tratta i risultati come condizionati dalle tue ipotesi, piuttosto che come previsione affidabile.