Come testare un trading robot prima di acquistarlo

11 gennaio 2022, 16:18
MetaQuotes
0
75

L'acquisto di un robot di trading su MQL5 Market ha un netto vantaggio rispetto a tutte le altre opzioni simili: un sistema automatizzato offerto può essere accuratamente testato direttamente nel terminale MetaTrader 5. Prima dell'acquisto, un Expert Advisor può e deve essere eseguito con attenzione in tutte le modalità sfavorevoli nel Strategy Tester integrato per avere una conoscenza completa del sistema, visto che ogni Expert Advisor offerto su MQL5 Market ha una versione demo.

Ricorda: non è solo l'importo pagato che rischi quando acquisti un robot di trading, ma anche potenziali perdite che possono sorgere a seguito dell'utilizzo di tale robot di trading per fare trading sul conto reale.

Diamogli un'occhiata usando come esempio un Expert Advisor gratuito di tre medie mobili che scaricheremo direttamente nel terminale MetaTrader 5. È un'implementazione di una strategia di trading classica basata su tre medie mobili.

Scaricare l'Expert Advisor da MQL5 Market direttamente nel terminale MetaTrader 5


Metodi di valutazione di Expert Advisor basati sui risultati dei test

Mentre non esiste un metodo generale che potrebbe darti una garanzia al 100% sulle prestazioni del robot di trading, ci sono metodi semplici che ti consentono di controllare i parametri principali di un particolare sistema di trading nel Tester strategico del terminale MetaTrader 5. I metodi chiave disponibili sono i seguenti: 

  • Stress Test in modalità ritardo casuale,
  • Test in un ambiente di trading diverso,
  • Test su un simbolo/intervallo di tempo diverso,
  • Backtesting su dati storici errati,
  • Backtesting per un lungo periodo storico (a seguito della pubblicazione dell'Expert Advisor nel mercato MQL5),
  • Forward Testing

Inoltre, si dovrebbe prestare attenzione a fattori potenzialmente sospetti, come ad esempio:

  • fattore di profitto troppo alto,
  • enorme valore di profitto sui dati storici,
  • un gran numero di parametri esterni in un sistema di trading,
  • regole intricate di gestione del denaro.

Anche se tutto quanto sopra è un compito abbastanza facile, la maggior parte dei neofiti, così come molti trader un po 'esperti non sono consapevoli di queste sfumature o non sempre abbastanza attenti. Notiamo ancora una volta che qualsiasi robot di trading scaricato da MQL5 Market può essere impostato per il test direttamente nella finestra Navigatore.

Avvio di Expert Advisor utilizzando il menu Navigator

Il pannello di Strategy Tester con l'Expert Advisor selezionato apparirà automaticamente dopo aver premuto "Test" nel menu di scelta rapida. Tutto è a portata di mano per testare l'Expert Advisor scaricato e siamo pronti per una revisione dettagliata dei metodi di valutazione sopra indicati.


Stress test in modalità ritardo casuale

Lo Strategy Tester è progettato principalmente per testare le regole di trading di un sistema. Ciò significa che lo Strategy Tester emula l'ambiente ideale per tutti i processi:

  • invio di richieste commerciali,
  • aggiornamento dello stato delle posizioni aperte e degli ordini in sospeso,
  • ottenere eventi commerciali,
  • Preparazione dello storico dei prezzi
  • calcolo degli indicatori e molte altre cose.

Tutto è finalizzato a testare e ottimizzare la strategia di trading entro il minor tempo possibile. Tuttavia, visto che il funzionamento di un trading robot in ambiente reale è ben lungi dall'essere ideale e istantaneo, lo Strategy Tester è stato migliorato con una modalità di test aggiuntiva che simula un ritardo casuale tra l'invio e l'esecuzione di un ordine commerciale.

Impostazione della modalità di ritardo casuale

Questa modalità di test rileva con precisione:

  • errori di gestione delle operazioni di trading,
  • adattare la strategia a determinate condizioni di trading.

Ottenere risultati commerciali marcatamente diversi dopo aver eseguito un singolo test dell'Expert Advisor in due modalità, ritardo standard e casuale, dovrebbe farti pensare. Innanzitutto, dai un'occhiata al registro di Strategy Tester poiché numerosi errori di trading che contiene dovrebbero essere una ragione sufficiente per cancellare tale Expert Advisor dalla tua lista. Nel nostro caso, non sono stati rilevati errori di questo tipo nel corso di stress test nella modalità di ritardo casuale che suggeriscono che l'Expert Advisor ha superato con successo la prima metà del test.

Ora, vediamo se c'è qualche differenza tra i risultati commerciali ottenuti utilizzando test singoli eseguiti in due modalità. Il numero significativamente ridotto di operazioni e il profitto ottenuto nella modalità di ritardo casuale suggeriscono che la strategia dipende fortemente dalla qualità della trasmissione e dell'esecuzione degli ordini commerciali e può guadagnare solo in determinate condizioni ideali. Lo sviluppatore potrebbe averlo fatto involontariamente, il che è molto spesso il caso. Ma un tale "difetto" può diventare disastroso per il tuo conto di trading.

Confronto dei risultati dei test in diverse modalità di esecuzione degli ordini commerciali

Nel nostro esempio, il passaggio a una modalità di esecuzione degli ordini commerciali diversa non ha influenzato il numero di operazioni e transazioni. I risultati del test sono solo un po 'diversi, il che può essere adeguatamente spiegato da piccole variazioni di prezzo presenti nelle transazioni a causa di riquotazioni. 

Conclusione: l'Expert Advisor delle Tre Medie Mobili ha superato questo test. Le prove di stress in modalità ritardo casuale non hanno avuto un effetto sostanziale sui risultati commerciali.


Test in un ambiente di trading diverso

Esegui un test del trading robot nelle condizioni specificate nella sua descrizione sul mercato MQL5. Quindi connettiti a un altro account broker ed esegui nuovamente il test. È in qualche modo simile al precedente stress test e consente di vedere come piccoli cambiamenti nei prezzi e nelle condizioni di trading (spread, livelli consentiti di StopLoss / TakeProfit, ecc.) possono influenzare i risultati commerciali.

Ad esempio, hai i risultati del test Expert Advisor per EURUSD sul conto del broker A. Esegui lo stesso test su EURUSD, solo questa volta sul conto del broker B. Se i risultati sono molto diversi, è una buona ragione per riconsiderare la necessità di tale trading robot.


Un altro simbolo/intervallo di tempo

La maggior parte dei robot di trading sono sviluppati in modo da fare trading su un particolare simbolo e alcuni di essi richiedono addirittura di essere utilizzati in un determinato lasso di tempo. Sembra essere abbastanza ragionevole in quanto ogni strumento si comporta a modo suo. Pertanto, il simbolo e l'intervallo di tempo sono, di regola, sempre specificati nella descrizione di un trading robot offerto sul mercato MQL5.

Scarica una versione demo di Expert Advisor e avviala con un simbolo e/o un punto diverso. Innanzitutto, è necessario assicurarsi che Expert Advisor non si arresti in modo anomalo con un errore critico o riempia il registro con messaggi di errore commerciale, utilizzato in condizioni di partenza inappropriate. In secondo luogo, controlla che una strategia di trading redditizia non sia diventata estremamente in perdita, a causa dei cambiamenti di cui sopra nelle impostazioni - questo può accadere dove si è verificato l'adattamento della curva.

Uno dei modi più semplici per organizzare questo tipo di test per l'Expert Advisor è ottimizzarlo su tutti i simboli selezionati in Market Watch. Eseguiamo l'ottimizzazione dell'Expert Advisor in quella modalità su un intervallo di tempo piuttosto lungo H1 con la generazione "Every tick" e otteniamo una risposta abbastanza rapida alla seconda domanda.

 Ottimizzazione su tutti i simboli selezionati in Market Watch

I risultati di tale ottimizzazione mostrano che la strategia ha il diritto di esistere, dimostrando un numero statisticamente sufficiente di operazioni su ciascun simbolo senza produrre risultati davvero negativi. Intendiamoci, abbiamo testato una strategia su tutti i 13 simboli in Market Watch con gli stessi parametri impostati per impostazione predefinita.

Risultati dell'ottimizzazione su tutti i simboli selezionati in Market Watch

Non possiamo certo aspettarci che ogni Expert Advisor funzioni altrettanto bene su qualsiasi simbolo e lasso di tempo. Eppure vale la pena controllarlo nello Strategy Tester usando questo metodo. Non solo rivelerà possibili errori di codice, ma può anche dare nuove idee.

Conclusione:il comportamento dell'Expert Advisor delle Tre Medie Mobili è stato normale quando testato su un simbolo/intervallo di tempo diverso. Durante il test non sono stati rilevati errori di codice evidenti.


Backtesting su dati storici errati

Abbiamo scoperto che l'Expert Advisor produce i migliori risultati quando lavora su GBPUSD. Ma cosa succede se questo non è un modello coerente e questo comportamento è dovuto all'intervallo di test selezionato dal 2012.01.01 al 2012.09.28 che per un puro colpo di fortuna si è rivelato favorevole? Per esaminare questa domanda, testiamo l'Expert Advisor con gli stessi parametri nel 2011, prendendo come intervallo 2011.01.01-2011.12.31. Eseguiamo il test e vediamo i risultati.

Backtesting su dati storici errati

L'Expert Advisor non è più redditizio ed è diventato subito molto meno wowable. Inoltre, le perdite subite nel 2011 superano significativamente i profitti dimostrati nello Strategy Tester nel corso del 2012.01.01-2012.09.28. Tuttavia, ora siamo consapevoli delle potenziali perdite, anche quando si fa trading su GBPUSD.

Conclusione: l'Expert Advisor delle Tre Medie Mobili richiede un ulteriore sviluppo per garantire una risposta automatica adeguata ai cambiamenti nel comportamento del mercato, altrimenti i parametri giusti per ogni intervallo devono essere trovati attraverso l'ottimizzazione.


Backtesting per un lungo periodo storico

Quando forniscono descrizioni, gli sviluppatori di robot di trading cercano di mostrare i loro prodotti al meglio e quindi forniscono report e grafici di test con parametri ottimali per un particolare intervallo. Poiché di solito è trascorso molto tempo dalla data di pubblicazione del trading robot fino alla data in cui ti interessi, possiamo eseguire un cosiddetto test in avanti.

Il forward testing è un test su un periodo storico che non è stato considerato quando si selezionano i parametri ottimali. Continueremo l'analisi di questo Expert Advisor su GBPUSD per un intervallo di test leggermente più lungo, compresi i dati storici dopo il 28 settembre 2012. La data di fine è fissata al 26.11.2012, aggiungendo così quasi due mesi in più. Quindi, a seguito del test eseguito nel periodo dal 2012.01.01 al 2012.11.26, otteniamo il nuovo grafico dei test:

Backtesting su un lungo periodo storico

Nel nostro caso, i risultati dimostrati dall'Expert Advisor delle Tre Medie Mobili nell'intervallo breve aggiuntivo (Forward) sono addirittura migliori di quelli raggiunti nei 10 mesi precedenti. Questo è comunque molto raro.

Conclusione: il test delle Tre Medie Mobili Expert Advisor su GBPUSD nel lungo periodo storico non ha mostrato alcun indebolimento dei parametri commerciali.


Forward Testing

Il forward testing viene utilizzato per valutare la stabilità del sistema di trading nel mutevole comportamento del mercato. L'ottimizzazione dei parametri nello Strategy Tester ci consente di ottenere i parametri a cui il robot di trading è al suo meglio sui dati storici entro un certo intervallo. Ma questo non garantisce che i parametri ottenuti saranno gli stessi più adatti anche se utilizzati per il trading nel prossimo futuro.

I trader che sviluppano sistemi di trading automatizzati spesso confondono concetti come l'ottimizzazione e l'adattamento della curva. La linea tra una discreta ottimizzazione e il montaggio in curva è molto sottile e difficile da trovare. È qui che i test in avanti si sono rivelati utili consentendo di valutare oggettivamente i parametri ottenuti.

Dopo l'ottimizzazione nel MetaTrader 5 Strategy Tester, è possibile scegliere di inoltrare il test dei parametri ottimali risultanti e impostare i limiti necessari. Eseguiamo test in avanti del nostro trading robot con le impostazioni come mostrato di seguito.

Impostazione della modalità di ottimizzazione in avanti

Forward è impostato su 1/4, il che significa che l'intervallo specificato 2012.01.01- 2012.11.26 sarà diviso in 4 parti. I primi 3/4 della cronologia saranno utilizzati per trovare i parametri ottimali e i migliori passaggi del 25% (set di parametri Expert Advisor) saranno testati in avanti sul restante 1/4 dei dati storici.

Specifica i parametri da ottimizzare - selezioneremo quelli che dovrebbero avere un impatto sulla logica di trading. Pertanto, non ottimizzeremo i parametri incaricati della gestione del denaro.

Parametri da ottimizzare

La combinazione di cui sopra del passaggio, così come i valori di avvio e arresto ha portato a quasi 5 milioni di passaggi. Nelle circostanze date, non è irragionevole utilizzare l'algoritmo genetico e coinvolgere MQL5 Cloud Network nell'ottimizzazione.

Quindi, diamo un'occhiata ai risultati dell'ottimizzazione, inclusi i passaggi in avanti che hanno richiesto un totale di 21 minuti e costano 0,26 crediti per oltre 4000 passaggi utilizzando gli agenti cloud. Un esempio di come vengono calcolati i costi può essere trovato nell'articolo MQL5 Cloud Network: Stai ancora calcolando?

Tabella dei risultati dei test a portare avanti

A prima vista, sembra che ci sia qualcosa di sbagliato in esso. Controlliamo i risultati e vediamo che i valori dei primi tre parametri ottimizzati sono gli stessi in tutte le passate. E solo gli ultimi due parametri Inp_Signal_ThreeEMA_StopLoss e Inp_Signal_ThreeEMA_TakeProfit hanno valori variabili.

Tabella dei risultati dei passaggi in avanti

Considerando quanto sopra, possiamo fare due ipotesi:

  • questi parametri, in particolare i valori StopLoss e TakeProfit, non hanno in effetti alcuna influenza sui risultati di trading;
  • l'algoritmo genetico non è riuscito a uscire dall'estremità locale che abbiamo colpito durante l'ottimizzazione.

Controlliamo entrambe le ipotesi ri-ottimizzando con le stesse impostazioni e parametri di input. Questa volta, il grafico dei risultati dei test in avanti sembra un po 'diverso.

Un altro grafico di ri-ottimizzazione sul periodo a termine

Come risultato dell'ottimizzazione ora possiamo vedere tre mainstream. Ciò significa che gli ultimi due parametri ottimizzati appaiono ancora incidentali al trading robot dato.

Conclusione: l'ottimizzazione delle Tre Medie Mobili Expert Advisor su GBPUSD ha dimostrato che la logica di trading dipende solo da tre parametri su sette.

Facciamo un ultimo tentativo e rimuoviamo i parametri non necessari dall'ottimizzazione. Ora abbiamo solo 1650 pass.

Set ridotto di parametri per l'ottimizzazione

Pertanto, la ricerca completa dei parametri avrebbe più senso, piuttosto che l'ottimizzazione genetica. MQL5 Cloud Network in questo caso ci fornirà più agenti e il tempo necessario per completare il processo sarà di conseguenza significativamente ridotto.

Utilizzo degli agenti MQL5 Cloud Network al completamento della ricerca dei parametri

L'attività è stata completata in 7 minuti con 2000 agenti cloud coinvolti e il grafico dei test in avanti sembra buono.

Grafico di ottimizzazione

La maggior parte dei passaggi nel periodo a termine si è rivelata redditizia, con il numero di punti al di sopra dei $ 10.000 iniziali molto maggiore rispetto alla zona in perdita. Sembra un po 'promettente, ma ciò non significa che i set di parametri risultanti si riveleranno redditizi anche in futuro.


Numero di parametri in un sistema di trading

Abbiamo avuto la possibilità di vedere che non tutti i parametri di strategia disponibili per la configurazione di un robot di trading sono ugualmente significativi e in grado di influenzare i risultati di trading. Nel nostro caso i valori Inp_Signal_ThreeEMA_StopLoss e Inp_Signal_ThreeEMA_TakeProfit non hanno avuto praticamente alcun impatto sulle prestazioni dell'Expert Advisor. Tuttavia, è più comune imbattersi in un trading robot che ha un gran numero di impostazioni dei parametri.

Numerosi parametri consentono di effettuare impostazioni molto accurate per un trading robot in modo da adattare le sue prestazioni a un certo periodo storico che è altamente probabile che venga rivelato durante l'ottimizzazione.

L'adattamento della curva significa che l'Expert Advisor probabilmente non mostrerà lo stesso livello di redditività sui dati oltre l'intervallo specificato utilizzato per l'ottimizzazione come ha fatto sui dati di test. E peggio ancora, può produrre risultati opposti, portando a perdite.

Si ritiene che meno impostazioni dei parametri ha un sistema di trading, minore è la possibilità che il modello identificato svanisca in futuro. E viceversa: più parametri nel sistema, minore è la possibilità che il mercato mantenga le sue caratteristiche in linea con un Expert Advisor così raffinato. Come prova di quanto sopra, ti consigliamo vivamente di familiarizzare con i risultati dell'analisi commerciale fornita nell'articolo Ottimizzazione VS Realtà: Prove da ATC 2011 a cui ci rivolgeremo più avanti.

Correlazione tra bilanciamento e numero di parametri

Il grafico mostra i risultati commerciali dei partecipanti nel corso del Automated Trading Championship 2011. L'asse verticale mostra il saldo del conto alla fine del campionato e l'asse orizzontale visualizza il numero di parametri esterni di EA. Gli Expert Advisor sono rappresentati da diamanti rossi. Si può chiaramente vedere che gli Expert Advisor con un gran numero di parametri hanno perso denaro o, nella migliore delle ipotesi, hanno rotto il pareggio, quando hanno fatto trading nel periodo di inoltro del campionato.

L'assenza di parametri esterni in un trading robot offerto in vendita non dice nulla sulla generalità delle regole di trading progettate e non può essere presa come freddezza. Lo sviluppatore dell'Expert Advisor deve avere, per qualche motivo, semplicemente infilato i parametri esterni all'interno del trading robot.


Fattore di profitto molto elevato

Alla maggior parte dei trader non piace perdere operazioni e le prende come un segno di un funzionamento difettoso di un sistema di trading. In effetti, non possono essere evitati a causa della natura del trading nei mercati finanziari. Qualsiasi operazione all'apertura di una posizione può alla fine rivelarsi vincente o perdente. Le perdite commerciali sono inevitabili e sono viste come una forma di retribuzione naturale e un'inevitabile voce di spesa, come in qualsiasi attività.

Molti sviluppatori di sistemi di trading automatizzati corrono agli estremi, cercando di ridurre al minimo il numero di operazioni perdenti e perdite lorde. Per raggiungere questo obiettivo e migliorare i risultati che possono essere ottenuti nello Strategy Tester, aggiungono filtri extra che consentono di evitare di perdere operazioni, migliorando così il fattore di profitto. I filtri extra hanno i propri parametri e impostazioni, aggiungendo al numero totale di parametri di input.

Il fattore di profitto è definito come il profitto lordo diviso per la perdita lorda. Il fattore di profitto dei sistemi redditizi è sempre maggiore di 1. Tuttavia, se uno ha provato troppo duramente e sovra-ottimizzato un sistema di trading nello Strategy Tester, questa cifra potrebbe essere molto più grande. Diamo un'occhiata a un altro grafico dall'articolo Ottimizzazione VS Realtà: Prove da ATC 2011.

Fattore di profitto molto elevato come risultato dell'ottimizzazione

È chiaro che quasi tutti i robot di trading che hanno avuto un fattore di profitto molto elevato durante i test sui dati storici non erano nemmeno vicini ai loro risultati di backtesting quando sono stati testati nel periodo di inoltro del Automated Trading Championship 2011 e praticamente hanno perso tutto. Suggerisce che un fattore di profitto molto elevato dimostrato nello Strategy Tester era dovuto all'adattamento della strategia a un certo periodo di tempo utilizzato per l'ottimizzazione del trading robot.


Enorme profitto sui dati storici

Un altro fatto allarmante può essere un enorme profitto dichiarato nella descrizione di un trading robot. Se i rapporti di Strategy Tester allegati mostrano un equilibrio altissimo, molto probabilmente ha a che fare con il montaggio della curva. Spesso gli sviluppatori di tali "macchine per la stampa di denaro" non si rendono nemmeno conto che il loro sistema è sovra-ottimizzato e ha troppi parametri esterni. Supportiamo questa affermazione con un altro grafico del rapporto sopra menzionato Ottimizzazione VS Realtà: Prove da ATC 2011.

Enorme profitto sui dati storici

Gli acquirenti di tali "Graal" sono di regola inesperti e facilmente accecati da enormi profitti sui dati storici. In questi casi, l'illusione del profitto che tale trading robot può guadagnare è genuina e reciproca.


Manipolazioni con money management

Creare regole speciali di manipolazione commerciale che ti consentano di passare attraverso dati storici errati nello Strategy Tester con perdite minime e massimizzare i rendimenti sulle transazioni di successo è l'approccio più complicato e raro allo sviluppo anormale di un trading robot. È ben lungi dall'essere ciò che viene chiamato gestione del denaro.

Tale adattamento può essere rilevato al meglio testando su dati che si trovano al di fuori del periodo storico utilizzato per ottenere i risultati dichiarati dallo sviluppatore nella descrizione del trading robot. Più ampio è il montaggio, maggiore è la possibilità che il trading robot fallisca il test.


Non fidarti di nessuno. Nemmeno te stesso

Sfortunatamente, il robot di trading come qualsiasi programma complesso può contenere errori non intenzionali che non possono essere rilevati se non dal trading online. Nessuno sviluppatore di robot di trading può garantire che il suo programma sia privo di errori e gestirebbe correttamente tutte le situazioni non standard. Anche l'Expert Advisor che è stato testato con successo può commettere un errore commerciale o un crash a causa di un errore critico, quando messo in condizioni impreviste che lo sviluppatore non poteva prevedere. L'unica garanzia implicita in questo caso può essere l'esperienza e la reputazione dello sviluppatore del trading robot.

E, naturalmente, un Expert Advisor che ha dimostrato risultati positivi nel servizio Segnali per un periodo di tempo sufficiente sarà più affidabile di quello che non lo ha fatto. In ogni caso, non farti abbattere calcolando i tuoi profitti futuri e ricorda due regole che sono ancora valide:

  1. non fidarti di nessuno,
  2. e nessun successo commerciale passato può garantire profitti futuri.


Tradotto dal russo da MetaQuotes Software Corp.
Articolo originale: https://www.mql5.com/ru/articles/586

Come diventare un fornitore di segnali per MetaTrader 4 e MetaTrader 5 Come diventare un fornitore di segnali per MetaTrader 4 e MetaTrader 5
Vuoi offrire i tuoi segnali di trading e realizzare profitti? Registrati sul sito MQL5.com come Venditore e specifica il tuo conto di trading per offrire i tuoi segnali ai trader.
Le basi sulla programmazione in MQL5: Stringhe Le basi sulla programmazione in MQL5: Stringhe
L'articolo copre tutto ciò che puoi fare con le stringhe in MQL5. Dovrebbe interessare principalmente i programmatori MQL5 alle prime armi, mentre per gli sviluppatori esperti questo articolo rappresenta una buona opportunità per riassumere e sistematizzare le loro conoscenze.
Forum sulla programmazione MQL5 Ora Forum sulla programmazione MQL5 Ora
L'articolo si concentra sulle funzioni MQL5 standard per lavorare con il tempo, nonché sulle tecniche di programmazione e sulle funzioni praticamente utili per lavorare con il tempo richiesto durante la creazione di Expert Advisor e indicatori. Particolare attenzione è rivolta alla teoria generale della misurazione del tempo. Questo articolo dovrebbe essere di interesse principalmente per i programmatori MQL5 alle prime armi.
Apprendimento automatico: Come le macchine a vettori di supporto possono essere utilizzate nel trading Apprendimento automatico: Come le macchine a vettori di supporto possono essere utilizzate nel trading
Le macchine a vettori di supporto sono state a lungo utilizzate in campi come la bioinformatica e la matematica applicata per valutare set di dati complessi ed estrarre modelli utili che possono essere utilizzati per classificare i dati. Questo articolo esamina cos'è una macchina a vettori di supporto, come funzionano e perché possono essere così utili nell'estrazione di modelli complessi. Indaghiamo quindi su come possono essere applicate al mercato e potenzialmente utilizzate per dare consigli sulle negoziazioni. Utilizzando il Support Vector Machine Learning Tool, questo articolo fornisce esempi funzionanti che consentono ai lettori di sperimentare con il proprio trading.