Un'analisi del motivo per cui gli Expert Advisor falliscono
Introduzione
Gli Expert Advisor (EA) possono ottenere buoni risultati nell’arco di mesi o anche di pochi anni, ma ricorrono sempre periodi in cui le loro prestazioni diventano scadenti. Gli EA generano raramente un livello di profitto costante per un periodo di tempo prolungato, ad esempio dieci anni. Quando sappiamo che un EA ha attraversato periodi di scarso rendimento, è lecito chiedersi come ci si possa aspettare che funzioni sempre bene in futuro?
In questa analisi sorgono due domande: Quali cambiamenti si verificano nei dati delle serie temporali che influiscono fortemente sulle prestazioni dell'EA? Esiste un indicatore tecnico in grado di prevedere quando un EA registrerà prestazioni scarse e quando buone? Un indicatore del genere sarebbe estremamente prezioso!
Trigger di Incrocio di Medie Mobili
Per studiare questi problemi, vengono utilizzati dati del mercato forex di 15 minuti su un periodo di sedici anni insieme a una strategia di prova, l’Incrocio di Medie Mobili. Il trigger MAC (Incrocio di Medie Mobili), consiste nella generazione di un segnale d’acquisto quando la Media Mobile Semplice (SMA) veloce incrocia al rialzo la SMA lenta. Un segnale di vendita viene generato quando la SMA veloce incrocia al ribasso la SMA lenta. La strategia MAC dovrebbe fornire un buon banco di prova per lo studio. I parametri chiave di input per la strategia MAC sono i periodi attribuiti alle SMA, veloce e lenta. Il periodo della SMA veloce è in genere compreso tra 1 e 4 in questi studi e il periodo della SMA lenta è compreso tra 10 e 150. Si assume che entrambi i valori siano costanti durante il periodo di test.
La figura 1 mostra il comportamento di rendimento del profitto del trigger SMA Crossover per la coppia di valute EURUSD da gennaio 2006 a dicembre 2021. Per i periodi ottimizzati delle SMA veloce e lenta di 2 e 80, l'EA ha un ritorno positivo in alcuni intervalli e uno negativo per altri. Nel periodo 1/2008 – 6/2013 la strategia registra una crescita costante degli utili. La Figura 2 mostra l’andamento del rendimento del trigger SMA Crossover per la coppia valutaria GBPUSD nello stesso intervallo temporale. I periodi ottimizzati delle SMA sono di 1 e 80. Il grafico di GBPUSD mostra solo brevi periodi di rendimento positivo.
Figura 1. EURUSD SMA Cross Trigger Profit (0.1 Lot)
Figura 2. GBPUSD SMA Cross Trigger Profit (0.1 Lot)
Dati gli andamenti nel tempo mostrati nelle Figure 1 e 2, possiamo esaminare il comportamento di indicatori tecnici comuni per determinare se esiste una relazione tra il comportamento dell'indicatore tecnico nel tempo e i rendimenti generati dal pattern di incrocio delle medie mobili, nel tempo.
Comportamento degli indicatori tecnici tradizionali
È possibile esaminare diversi indicatori tecnici standard per vedere se il loro comportamento è diverso in intervalli temporali di rendimento positivo e negativo. La figura 3 mostra l'indicatore ATR (Average True Range) mensile su un periodo di sedici anni per EURUSD. L'indicatore ATR fornisce una misura della volatilità della coppia valutaria. Mostra un comportamento dipendente dall’intervallo temporale definito. Non c’è invece corrispondenza con l’andamento dei profitti nel tempo (Figura 1). È interessante notare che la figura 3 mostra l'estrema volatilità nel periodo della crisi economica alla fine del 2008 e di nuovo all'inizio del 2020. Suggerisce inoltre che utilizzare soglie assolute di variazione dei prezzi per attivare la logica non è saggio e che dovrebbe essere considerato un valore ATR smoothed. Un altro indicatore tecnico comune è il Bollinger Bands. Questo indicatore dovrebbe essere influenzato sia dalla volatilità che dalla forza del trend. Sorprendentemente, il suo comportamento mensile a lungo termine, come mostrato nella Figura 4, è quasi identico a quello dell'indicatore ATR. Come l'indicatore ATR, non ha un andamento corrispondente agli intervalli temporali di rendimento positivo e negativo su EURUSD (Figura 1). Risultati simili si vedono su GBPUSD. La volatilità a lungo termine non tiene conto dell'andamento nel tempo che osserviamo nelle figure 1 e 2.
Figura 3. EURUSD ATR, Media Mensile
Figura 4. EURUSD Bollinger Band Spread, Media Mensile
Funzione di autocorrelazione come indicatore
A differenza degli indicatori ATR e Bollinger Bands, l'AutoCorrelation Function (ACF) non dipende dalla volatilità. L'ACF è uno strumento utile per trovare pattern nei dati delle serie temporali. L'ACF misura la correlazione di elementi in una serie temporale, in cui alcuni elementi sono intervallati da un lasso di tempo. Quando nei dati è presente un trend, l'ACF, per piccoli ritardi, avrà valori positivi. In questa analisi, l'elemento Yi della serie storica è definito come il (Prezzo di chiusura - Prezzo di apertura) della barra i.
Per una serie temporale di N elementi Yi , i =1...N, l'ACF è definito come:
La funzione di autocorrelazione per una serie di dati di prezzo è molto diversa dall'autocorrelazione di una serie di dati di variazione dei prezzi da barra a barra. Ad esempio, per una serie di numeri {1,2,3..14} l'ACF è 0,786. Per una serie di differenze tra elementi consecutivi di quell'array, l'ACF sarà vicino allo zero (assumendo un piccolo rumore nei valori per evitare la divisione per zero).
Il calcolo dell'ACF è implementato nel seguente frammento di codice:
double GetAtCorrVal(double &ClsOpn[],int CorrPer, int LagPer,int joff ) { double corr; double AIn[],BIn[]; double XMean,XNum,XDen; int jj; ArrayResize(AIn,CorrPer); ArrayResize(BIn,CorrPer); XMean = 0.; XNum = 0.; XDen = 0.; corr = 0.; if(CorrPer<2) { Print("No AutoCorr Processing Allowed "); return(corr); } // mean for(jj=0;jj<CorrPer;jj++) { XMean +=ClsOpn[jj+joff]; } XMean = XMean/CorrPer; // variances for(jj=0;jj<CorrPer;jj++) { if(jj<(CorrPer-LagPer)) XNum += (ClsOpn[jj+joff]-XMean)*(ClsOpn[jj+LagPer+joff]-XMean); XDen += (ClsOpn[jj+joff]-XMean)*(ClsOpn[jj+joff]-XMean); } if(XDen==0.) { corr = 0.; } else corr = XNum/XDen; return(corr); } //----------------------------------------------------------------
La figura 5 mostra la media mensile dell'ACF in un periodo di sedici anni per i dati di EURUSD, con un periodo di smoothing di sei mesi. La Figura 1 mostra un rendimento positivo tra il 2008 e la fine del 2012, mentre la Figura 5 mostra anche un valore ACF leggermente più alto in questo intervallo temporale, suggerendo una possibile relazione tra l’andamento dei profitti della strategia MAC e il valore dell'ACF.
Figura 5. EURUSD AutoCorrelation Function Monthly Average
Nei dati di GBUUSD mostrati nella Figura 6, è possibile notare una debole correlazione tra l’andamento dei profitti (esibito nella Figura 2) e il valore ACF.
Figura 6. GBPUSD AutoCorrelation Function Monthly Average
La funzione di correlazione automatica può essere utilizzata come indicatore (AutoCorr.mq5) ma, come si vede in Figura 7, non è un buon indicatore per identificare il trend.
Figura 7. ACF Indicator, Lag=1
Comportamento nel tempo dell’ACF e strategia di Incrocio delle SMA
Ulteriori informazioni possono essere trovate osservando l’andamento nel tempo dell'ACF appena prima del punto incui avviene l’incrocio delle SMA (Trigger ACF) e anche, subito dopo il punto l’incrocio, mentre l’operazione è ancora aperta (Trade ACF). I due tipi di ACF, Trade ACF e Trigger ACF hanno proprietà distinte. Le figure 8 e 9 mostrano l'ACF commerciale per i dati EURUSD e GBPUSD. Utilizzando il Tester di strategia, il valore ACF può essere tracciato separatamente per le operazioni in profitto e in perdita, in funzione del tempo. Entrambi i grafici mostrano una separazione variabile nel tempo dell'ACF tra operazioni in profitto e perdita. L’intervallo in profitto 1/2008-6/2013 della figura 1 (EURUSD) corrisponde grosso modo a un intervallo della figura 8 in cui anche la separazione dell'ACF è ampia. A partire dal 1/2018, c'è poca separazione tra i valori ACF per le operazioni di profitti e perdite. Nella Figura 1, questo corrisponde a un intervallo di rendimenti piatti.
Figura 8. Trade AutoCorrelation for EURUSD for SMA Cross Triggers
Figura 9. Trade AutoCorrelation for GBPUSD for SMA Cross Triggers
Le Figure 10 e 11 mostrano il Trigger ACF per i dati di EURUSD e GBPUSD. Lo scopo di questi due grafici è indagare se il valore Trigger ACF può essere utilizzato come filtro in un Expert Advisor per migliorare la redditività della strategia Incrocio delle SMA. Rispetto ai dati Trade ACF, i dati trigger ACF mostrano una minore separazione tra rendimenti positivi e negativi. Questo ridimensiona il suo valore come filtro trigger. Tuttavia, il valore dell'ACF è sostanzialmente piatto nel tempo, indicando che una soglia costante dell'ACF potrebbe essere utilizzata come filtro per l’indicazione operativa. Le curve profitto/perdita rimbalzano in gran parte l'una sull'altra, il che significa che ci sono intervalli temporali in cui le operazioni non sarebbero profittevoli.
Figura 10. Trigger AutoCorrelation for EURUSD for SMA Cross Triggers
Figura 11. Trigger AutoCorrelation for GBPUSD for SMA Cross Triggers
Filtro ACF per il Trigger dell’incrocio delle SMA
Nonostante le piccole differenze ACF tra le operazioni con rendimenti positivi e negativi (Figure 10 e 11), se al trigger dell’incrocio delle SMA viene aggiunto una soglia di autocorrelazione, la performance dell'expert advisor migliora negli intervalli con scarso rendimento. Le figure 12 e 13 mostrano l’andamento dei profitti dell'EA con un filtro ACF aggiuntivo per i dati di EURUSD e GBPUSD. Viene utilizzata l'intero periodo di sedici anni. Confrontando le figure 1 e 2 con le figure 12 e 13, l’andamento dei rendimenti per i dati EURUSD e GBPUSD è notevolmente migliorato dopo l’applicazione di una soglia di autocorrelazione.
Figura 12. EURUSD Crossover Trigger With ACF Filter
Figura 13. GBPUSD Crossover Trigger With ACF Filter
La Figura 14 mostra una tabella dei risultati delle prestazioni del Tester di strategia. Si osserva un miglioramento significativo sia per i dati EURUSD che per quelli GBPUSD. In entrambi i casi, il profitto totale aumenta di circa il 50% quando il filtro ACF è abilitato e anche il profitto per trade (PO) viene notevolmente migliorato.
Trigger Type | # Trades | Profit $ (0.1 Lot) | Profit/Loss (PF) | Prof/Trade (PO) |
EURUSD SMA Cross | 3160 | 5830. | 1.10 | 1.85 |
EURUSD SMA Cross + ACF | 1548 | 8511. | 1.33 | 5.50 |
GBPUSD SMA Cross | 3672 | 5352. | 1.07 | 1.46 |
GBPUSD SMA Cross + ACF | 3096 | 8317. | 1.13 | 2.69 |
Figura 14. Test Performance Table for EURUSD and GBPUSD Data
Dipendenza dell’ACF dal periodo della SMA lenta per la strategia di incrocio delle SMA
È anche interessante esaminare la dipendenza della funzione di autocorrelazione media dalla scelta del periodo della SMA lenta per le operazioni vincenti e perdenti. Questo è mostrato per i dati di EURUSD M15 nella Figura 15. Nessuna soglia di correlazione viene utilizzata come parte della strategia di apertura dell’operazione. Indipendentemente dal valore dell’ACF, il periodo ottimale per la strategia di Incrocio delle SMA è stato fissato a 80. La Figura 15 mostra che la più grande separazione del valore medio dell'ACF, tra operazioni vincenti e perdenti, si verifica per periodi della SMA lenta compresi tra 65 e 80. Ulteriori analisi potrebbero portare all'utilizzo delle informazioni dell’ACF per determinare il periodo ottimale della SMA lenta in base al valore di autocorrelazione misurato al momento dell'apertura dell'operazione.
Figura 15. Average ACF versus SMA Slow Period for EURUSD
Conclusione
La funzione di autocorrelazione è uno strumento prezioso per migliorare le prestazioni degli Expert Advisor. Migliora l’efficacia del trigger nel test, filtrando gli intervalli in cui le performance sono deludenti.
In generale, i coefficienti di correlazione, inclusa la funzione di autocorrelazione, rappresentano un’interessante area di ricerca per migliorare l'efficienza del trading. Sono immuni agli effetti della volatilità e sono sensibili ai pattern di prezzo, inclusi il trend e l'inversione del trend.
Tradotto dall’inglese da MetaQuotes Ltd.
Articolo originale: https://www.mql5.com/en/articles/3299
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Accetti la politica del sito e le condizioni d’uso