Discussione sull’articolo "Creazione di criteri personalizzati di ottimizzazione degli Expert Advisor" - pagina 3
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Con molti esperimenti, sono giunto a conclusioni simili. Non so perché mi ci sia voluto così tanto tempo per trovare questo articolo e questa discussione.
Ho iniziato con un problema: le mie strategie di break out e di trend riding tendevano ad adattarsi a pochi trade super redditizi. Il profitto era talmente elevato che l'ottimizzatore si "preoccupava" solo di queste poche operazioni e utilizzava stop ampi e take profit lontani, assicurandosi che il suo segnale cogliesse e sfruttasse al massimo queste poche operazioni. Anche quando si ottimizzava il rapporto tra costi e profitti, il sistema continuava a inseguire a tutti i costi i run con questi trade, perché i run rappresentavano il 90% del suo profitto. Volevo limitare questo comportamento in qualche modo, senza tagliare la testa alla strategia di breakout/trend ride. Ho scoperto che l'ottimizzazione per la percentuale relativa di dd (NON il rapporto dd/profitto, ma solo la percentuale relativa di dd e nient'altro) dà buoni risultati se si rispettano il minimo di trade e il fattore di profitto minimo (circa 1,3).
Sembra sbagliato non coinvolgere il profitto, ma avendo un criterio minimo di pf, la maggior parte dei run abbastanza redditizi appaiono in cima alla classifica. Ritagliare i dd dai run redditizi di solito aumenta i profitti. In ogni caso, selezionando le operazioni più redditizie e facendo gli ultimi ritocchi manualmente (come alla fine di questo eccellente articolo https://www.mql5.com/it/articles/156), posso permettere all'ottimizzatore di fare gran parte del lavoro iniziale, evitando un sacco di curve di adattamento. Ho sperimentato e ottenuto risultati contrastanti con un codice come il seguente. (Gli esperimenti dovrebbero includere anche la modifica del rischio e del bilanciamento iniziale, una volta che si iniziano a inserire pesi aggiuntivi oltre a un punteggio basato sulla percentuale).
Qualcuno sa dirmi se questo articolo è applicabile alla MT4? Sembra che abbia già adottato molte proprietà di MT5.
In generale, il mio compito è quello di ottenere solo i valori di LR Correlation e LR Standard Error nel tester MT4, come si può facilmente vedere nel tester MT5.
Voglio solo leggere questi valori nella funzione deinit() alla fine dell'esecuzione del test e scriverli in un file insieme al valore del parametro ottimizzato.
Forse qualcuno ha già fatto una cosa del genere e può condividere con me il risultato pronto (la funzione necessaria per calcolare i valori di LR Correlation e LR Standard Error) in modo che non debba reinventare la ruota?
Qualcuno sa dirmi se questo articolo è applicabile alla MT4? Sembra che abbia già adottato molte proprietà di MT5.
In generale, il mio compito è quello di ottenere solo i valori di LR Correlation e LR Standard Error nel tester MT4, come può essere facilmente visto nel tester MT5.
Voglio solo leggere questi valori nella funzione deinit() alla fine dell'esecuzione del test e scriverli in un file insieme al valore del parametro ottimizzato.
Forse qualcuno ha già fatto una cosa del genere e può condividere con me il risultato pronto (la funzione necessaria per calcolare i valori di LR Correlation e LR Standard Error) in modo che non debba reinventare la ruota?
Un esempio di calcolo della correlazione LR e dell'errore standard LR per le operazioni nello storico è disponibile in AlgLib (MQL4\Scripts\Alglib\UseAlglib.mq4).
Grazie! Ci darò un'occhiata.
Ho capito. La correlazione sembra essere calcolata.
L'unica cosa su cui ho dovuto riflettere è il fatto che questo punto non funziona nel tester MT4 Build 670:
Semplicemente non ci sono ordini con tipo 6 nel tester.
Cioè, quando si esegue il tester MT4 e si utilizza il codice di UseAlglib.mq4, che è incluso nel file zip scaricato, attraverso una chiamata dalla funzione deinit().
il saldo rimane uguale a 0. Viene quindi stampato l'errore"Operazioni di trading con saldo zero".
Ho dovuto semplicemente inserire il valore necessario del saldo iniziale nel tester MT4 nel codice stesso e poi tutto è stato conteggiato perfettamente.
Forse gli sviluppatori potranno tenere conto di questo punto nelle future versioni della libreria.
Ho testato il criterio Kelly (strategia), utilizzando il seguente codice:
Non sono sicuro che Metatrader Strategy Tester calcoli 0 (zero) operazioni di profitto come operazioni di profitto. C'è qualcuno?
Bene, eccomi di nuovo qui, il lupo solitario di questo universo :-)
Ho provato i Criteri personalizzati di rettilineità cercando di inserire nell'equazione la pendenza della linea retta calcolata. Così com'è può dare una valutazione molto alta su un profitto molto debole. Basta aggiungere il profitto finale
Nel tentativo di aggiungere la pendenza effettiva nell'equazione ho modificato il codice come si vede qui sotto.
Non è una soluzione perfetta, ma si avvicina a ciò che voglio vedere. L'utilizzo del risultato insieme al saldo o al profitto funziona bene con questo codice
So che è passato molto tempo da quando hai postato questo argomento, ma nel caso in cui tu stia ancora giocando con questo o qualcun altro stia cercando l'implementazione dello stesso criterio di rettilineità.
Ho trovato una soluzione pubblica funzionante qui https://community.darwinex.com/t/equity-curve-straigthness-optimization-with-metatrader/3976
Il relativo tutorial contiene troppe informazioni, come ad esempio quelle specifiche sulla programmazione di un EA, che si trovano in altri tutorial, e non sono applicabili al punter medio, che acquisterà il suo EA e ha una minima capacità di programmazione.
Trovo che, per impostazione predefinita, l'unico criterio utile per la MT5 nell'algoritmo genetico sia il "bilanciamento massimo", per poi doverlo ripetere alcune volte e pescare tra i risultati fino a trovare un basso drawdown, come per l'uso su più coppie.
Quali sono i criteri di cui ho bisogno: - Bilanciamento massimo con <20 Drawdown, MaxBalance con <10 Drawdown
A tutti voi "lupi solitari" là fuori: siete sulla strada giusta, creando criteri di test rigorosi e l'automazione degli stessi. Naturalmente ci sono diversi modi di guardare alla stessa sfida e, leggendo i commenti qui presenti, il consenso sembra essere su un compromesso tra equilibrio, drawdown, RRR e qualche misura di profitto (fattore di profitto, criterio di Kelly, ecc.).
Sono arrivato a questo articolo cercando di fare lo stesso, e volendo che il Tester di Strategia lo facesse per me; sono contento di non essere solo :)