Come Funziona il Backtesting nel Forex: Definizione, Input, Output e Limiti
Definizione e scopo del backtesting
Il backtesting (nel forex) consiste nell’applicare una procedura predefinita, basata su regole, a dati di mercato passati per verificare come si sarebbe comportata. In altre parole, traduci un’idea di trading in condizioni esplicite e poi simuli cosa sarebbe accaduto se quelle condizioni fossero state applicate in momenti storici.
Un punto chiave è che il backtesting non è uno strumento di previsione di default. Produce una valutazione di un insieme specifico di ipotesi: i dati storici utilizzati, il modo in cui gestisci i costi di trading e l’esecuzione, e il modello con cui definisci quando le decisioni possono essere prese.
Il modello semplice: input, processo, output
Un modo utile per comprendere il backtesting è considerarlo come un ciclo con input e output chiari.
Input che devi specificare
- Ruleset (definizione delle decisioni): La logica esatta per aprire, modificare e chiudere operazioni. È importante che sia “basato su regole”, perché servono condizioni non ambigue (ad esempio, basate su valori di indicatori calcolati dai dati passati o su livelli di prezzo).
- Dati storici: La serie storica dei prezzi utilizzata per la simulazione. Dovresti anche chiarire cosa rappresentano i timestamp e se il dataset è completo per il periodo testato.
- Ipotesi sui costi di transazione: Componenti tipici includono spread e commissioni, oltre a un modello di slippage (la differenza tra il prezzo di esecuzione simulato e quello effettivo). Se questi elementi vengono ignorati o semplificati, la valutazione può apparire migliore di quanto consentirebbe un’esecuzione realistica.
- Modello di esecuzione e tempistiche: Come vengono eseguite le operazioni (logica di mercato vs limite), quando si assume che gli ordini siano piazzati rispetto alle barre/tick dei prezzi, e se si assume un’esecuzione istantanea.
- Gestione della posizione e del rischio (se utilizzata): Se la tua procedura include dimensionamento o limiti di esposizione, devi specificare l’algoritmo usato per determinare la dimensione delle posizioni e gestire le uscite.
- Progettazione del test: La finestra temporale(e) e come separi i dati in periodi di addestramento e valutazione, se prevedi di confrontare configurazioni diverse.
Il processo
Il backtesting segue generalmente questa sequenza:
- Calcola i valori necessari dai dati disponibili fino al momento della decisione.
- Applica il ruleset per decidere se aprire o chiudere un’operazione.
- Converte la decisione simulata in un’esecuzione utilizzando il tuo modello di esecuzione.
- Aggiorna lo stato del conto usando il profitto e la perdita realizzati, più i costi.
- Ripeti per ogni passo nella cronologia temporale storica.
Output che di solito esamini
A seconda dell’obiettivo, gli output possono includere:
- Risultati a livello di operazione (profitto/perdita per operazione, distribuzioni della durata delle posizioni).
- Curva dell’equity o evoluzione del saldo del conto nel tempo.
- Misure di rischio (ampiezza del drawdown, variabilità dei rendimenti).
- Statistiche riassuntive (medie, conteggi di operazioni vincenti/perdenti) e coerenza attraverso diversi periodi.
Puoi considerare questi output come descrizione di ciò che è accaduto all’interno della simulazione, non di ciò che deve accadere in futuro.
Evidenza attraverso esempio: cosa richiede “un test corretto”
Considera un esempio semplificato di una configurazione di backtest. Supponi di avere:
- Un ruleset che decide “entrata” e “uscita” basandosi solo su informazioni al momento o prima della chiusura della barra.
- Un modello di costi con spread e una stima dello slippage.
- Una regola di esecuzione che esegue a un prezzo definito rispetto alla barra di decisione.
Per mantenere il test significativo, devi anche rendere esplicite le seguenti ipotesi:
- Se le decisioni sono prese alla chiusura della barra, devi assumere che l’esecuzione avvenga al prossimo prezzo negoziabile disponibile (o a un’approssimazione realistica coerente con la granularità dei tuoi dati).
- Se viene usato lo slippage, devi definire il metodo con cui viene applicato (importo costante, basato su distribuzione o legato a condizioni specifiche).
Un errore comune è usare informazioni che non sarebbero state disponibili al momento della decisione. Questo è spesso descritto come look-ahead bias. Ad esempio, se il tuo ruleset usa involontariamente barre future per calcolare condizioni per la barra corrente, il tuo backtest può sovrastimare le prestazioni.
Limitazioni, rischi e modi di fallimento
I risultati del backtesting possono fuorviare perché il mercato reale ha incertezze e la simulazione contiene semplificazioni.
Limitazioni significative
- Le relazioni storiche possono cambiare: Modelli che appaiono in un periodo potrebbero non ripetersi, specialmente se la struttura di mercato o il comportamento dei partecipanti cambiano.
- Realismo dell’esecuzione: Molti backtest assumono esecuzioni ideali. Nel forex, i costi di transazione e le tempistiche di esecuzione possono influenzare materialmente i risultati.
- Qualità e completezza dei dati: Dati mancanti o timestamp non allineati possono distorcere segnali e tempistiche di trading.
- Overfitting: Se regoli le regole così strettamente da adattarle al rumore passato, puoi ottenere risultati attraenti che non si generalizzano.
Modi comuni di fallimento
- Ipotesi di costo irrealistiche (ignorare spread e slippage).
- Tempistiche inconsistenti (entrare e uscire nella stessa barra in un modo che non sarebbe possibile).
- Modifica delle regole dopo aver visto i risultati (aggiustare le regole in base ai risultati del test senza un periodo di valutazione separato).
- Troppo pochi regimi di mercato testati (un ruleset che ha funzionato solo in un certo tipo di volatilità o ambiente di tendenza).
Verifica: come puoi controllare autonomamente la definizione
Per verificare di aver compreso correttamente il backtesting nel forex, concentrati sul fatto che tu possa spiegare ogni ipotesi richiesta e dove entra nella simulazione:
- Dichiara il ruleset: Puoi descrivere la logica esatta delle decisioni senza lasciare passaggi ambigui?
- Dichiara la cronologia dei dati: Sai quali parti dei dati vengono usate per calcolare le decisioni?
- Dichiara esecuzione e costi: Puoi spiegare come un’operazione simulata diventa un prezzo di esecuzione e come vengono sottratti i costi?
- Dichiara la struttura del test: Sai descrivere come valuti senza riutilizzare gli stessi dati per l’ottimizzazione?
- Dichiara almeno una limitazione: Puoi citare un modo di fallimento rilevante per le tue ipotesi (ad esempio, look-ahead bias, overfitting o realismo dei costi)?
Se riesci a fare questi cinque controlli, hai una comprensione verificabile autonomamente del meccanismo del backtesting. Inoltre, eviti di considerare i risultati come prova predittiva.
Prossima domanda da esplorare
Se vuoi approfondire la tua comprensione, il passo successivo più produttivo è confrontare diverse configurazioni di backtest modificando un’ipotesi alla volta—soprattutto riguardo modellazione di esecuzione e costi—e osservare come cambiano i risultati. Questo ti aiuta a identificare quali parti della simulazione guidano la valutazione.