Come funziona il backtesting degli EA nel forex?
Risposta diretta
Il backtesting degli EA nel forex è il processo di riproduzione di dati di mercato storici attraverso le regole di trading di un expert advisor per vedere quali operazioni avrebbe effettuato sotto specifiche assunzioni. Da solo, non dimostra le prestazioni future; è un metodo strutturato per valutare se la logica dell’EA e le regole di rischio si sono comportate in modo coerente nel periodo storico scelto.
Meccanica: definizione e sequenza tipica
Un EA (expert advisor) è un sistema di trading automatizzato che segue regole programmate per entrate, uscite, dimensionamento del rischio e gestione degli ordini. Nel backtesting, queste regole vengono applicate passo dopo passo ai dati storici dei prezzi.
Un modo semplice per comprendere il flusso di lavoro è:
-
Scegliere gli input del backtest
- Serie storica dei prezzi: barre OHLC e/o dati a tick (a seconda della piattaforma e delle impostazioni).
- Parametri dell’EA: i valori che controllano la logica della strategia e la gestione del rischio.
- Assunzioni di esecuzione: come vengono eseguiti gli ordini, incluso il momento all’interno della barra in cui viene rilevato un segnale.
- Modello di costo di trading: spread, commissioni e possibili assunzioni di slippage.
- Vincoli del conto: saldo iniziale, limiti di leva (se modellati), regole di margine (se modellate) e se l’EA può operare in tutte le condizioni.
-
Ricreare le decisioni del passato Ad ogni passo temporale simulato, il backtester calcola gli indicatori e le variabili di stato su cui si baserebbe l’EA, quindi verifica le condizioni delle regole dell’EA.
-
Simulare il ciclo di vita dell’ordine Se le condizioni di entrata sono soddisfatte, il backtester genera un ordine e decide come verrebbe eseguito utilizzando il modello di esecuzione scelto. Simula anche le uscite (take-profit/stop-loss fissi, uscite basate sul tempo o uscite basate su regole).
-
Calcolare gli output Gli output del backtest riassumono tipicamente i risultati delle operazioni (ad esempio, numero di operazioni, conteggi di vincite/perdite), i drawdown, il comportamento della curva di equity e metriche sensibili ai costi. Anche quando queste metriche sono calcolate correttamente, possono riflettere più le assunzioni che il vero “vantaggio” sottostante.
Input e output: cosa controllare
Input (elementi che possono cambiare il risultato)
Il backtesting è molto sensibile a ciò che gli si fornisce e a come si modella il “trading reale”. Gli input rilevanti includono:
- Qualità e granularità dei dati: le cronologie basate su barre possono nascondere il timing dei movimenti di prezzo rispetto ai dati a livello di tick.
- Allineamento temporale: se i segnali vengono valutati alla chiusura della barra o in tempo intrabar.
- Costi: spread e commissioni, e se vengono applicati in modo coerente durante il test.
- Realismo dell’esecuzione: gestione dello slippage, esecuzioni parziali e se si assume che gli ordini vengano eseguiti a un prezzo specifico.
- Restrizioni di trading: filtri per sessione di trading, limiti massimi di spread o qualsiasi logica “non operare” contenuta nell’EA.
Output (ciò che il backtester riporta)
Gli output sono riassunti del comportamento simulato, come:
- Cronologia operazione per operazione (entrate, uscite, prezzi degli ordini utilizzati dal modello).
- Riassunti aggregati delle prestazioni (totali di profitto/perdita, metriche medie per operazione).
- Comportamento del rischio (massimo drawdown da picco a minimo nella simulazione).
Un punto chiave: gli output sono attendibili solo quanto le assunzioni utilizzate per generarli.
Esempio o evidenza: una guida in stile checklist
Considera un EA che entra quando una regola diventa vera ed esce utilizzando distanze predefinite di stop-loss e take-profit. Nel backtesting, puoi verificare autonomamente il flusso logico controllando tre elementi per alcuni periodi campione:
-
Tempistica della valutazione del segnale Conferma se la regola si attiverebbe nello stesso momento previsto dalla logica del tuo EA (ad esempio, alla chiusura della barra). Se il backtest utilizza una convenzione temporale diversa, le entrate e uscite simulate cambiano.
-
Calcolo del prezzo di esecuzione dell’ordine Verifica quale prezzo il modello utilizza per l’invio e l’esecuzione dell’ordine. Se il modello assume esecuzioni al prezzo medio mentre nel trading reale si utilizzano bid/ask più spread, i risultati possono divergere.
-
Raggiungibilità di stop-loss e take-profit Con i dati a barre, “il prezzo ha raggiunto il livello?” può essere ambiguo perché una barra mostra solo i range massimo/minimo. I backtest devono assumere una sequenza intrabar, e quell’assunzione può cambiare materialmente i risultati.
Questo tipo di verifica mirata non richiede di dimostrare la redditività; aiuta a determinare se il backtest implementa le regole e le interazioni di mercato in modo coerente e verificabile.
Limitazioni e modi di fallimento (cosa può andare storto)
Almeno una limitazione rilevante è che il backtesting spesso non ricrea l’esecuzione reale. I modi comuni di fallimento includono:
-
Overfitting I parametri dell’EA possono essere ottimizzati su anomalie storiche. L’overfitting può far apparire i risultati forti nel periodo di backtest ma comportarsi diversamente altrove.
-
Differenze tra dati e modellizzazione Differenze tra tick e barre, effetti di liquidità mancanti o assunzioni semplificate di spread/slippage possono rendere irrealistici i risultati simulati degli ordini.
-
Assunzioni di esecuzione troppo ottimistiche Se si assume che gli ordini vengano eseguiti a prezzi ideali senza slippage significativo o se la sequenza intrabar è gestita in modo irrealistico, le prestazioni simulate possono essere sopravvalutate.
-
Mercati non stazionari e cambiamenti di regime Le relazioni nel forex possono cambiare nel tempo a causa di condizioni macroeconomiche, variazioni di volatilità e cambiamenti nel comportamento di trading. Il comportamento storico non garantisce somiglianza futura.
-
Vincoli operativi non modellati Alcuni EA si comportano diversamente in condizioni reali (ad esempio, problemi di connessione, sospensioni del trading o comportamenti di esecuzione specifici del broker). Se il backtest non modella questi aspetti, il confronto diventa meno affidabile.
Verifica e prossima domanda
Per verificare autonomamente un’affermazione sul backtesting di un EA, concentrati sul fatto che tu possa riprodurre la stessa sequenza di operazioni sotto le stesse assunzioni, e se i risultati persistono in diversi segmenti storici.
Una domanda pratica successiva da porsi è: Quale modello specifico di esecuzione e temporizzazione utilizza il backtester per il rilevamento degli ingressi e l’esecuzione degli ordini (chiusura della barra vs intrabar, gestione dello spread e assunzioni di slippage)? Cambiare questi dettagli può cambiare la curva di equity simulata anche se le regole dell’EA rimangono invariate.