Metodi di esecuzione di un rolling forward - pagina 5

 
Youri Tarshecki:
Sì, avremmo dovuto creare un topic molto tempo fa - come dovrebbe essere un avanzamento del lupo in MT. Non riesco proprio a farlo. C'era qualcosa su questo argomento nella parte dei futures del forum recentemente, a proposito.
Il mercato dei futures non è molto interessante per loro, poiché non sanno cosa vogliono o cosa hanno fatto, credendo che raccontando il metodo stanno dando via qualcosa di più prezioso dell'esperto. E per certi versi hanno ragione. Io, per esempio, ho parlato loro del mio metodo. Forse perché la considero imperfetta e vorrei migliorarla. A proposito, anche il tuo metodo non è molto chiaro. Potresti dirci cosa viene fatto passo dopo passo e cosa fa il tuo ottimizzatore automatico?
 
elibrarius:
Alcune persone sono riluttanti a dirvi di cosa hanno bisogno, credendo di dare qualcosa di più prezioso dell'esperto stesso parlandovi della metodologia. E per certi versi hanno ragione. Io, per esempio, ho parlato loro del mio metodo. Forse perché la considero imperfetta e voglio migliorarla. A proposito, anche il tuo metodo non è molto chiaro. Potresti dirci cosa viene fatto passo dopo passo e cosa fa il tuo ottimizzatore automatico?

Non ci possono essere metodi speciali di volking-forwarding. È unprincipio perfettamente chiaro di controllopasso dopo passo e l'EA stesso è, ovviamente, primario per il risultato. E il principio del controllo viene seguito oppure no. Quindi, o è una volata in avanti o non lo è. Pertanto, il mio metodo è assolutamente classico. Niente di nuovo. (C'è qualcosa di nuovo nelle mie idee, ma non sono arrivato alla realizzazione).

Ottimizzare all'indietro - ottenere l'avanti della parte non ottimizzata e valutarla - andare avanti per la lunghezza dell'avanti - ottimizzare di nuovo con le impostazioni precedenti - ecc.

Quello che hai detto sugli insiemi accumulati e sul funzionamento generale con essi è solo una variante della valutazione degli avanzamenti (supponendo che per ottenerli tu abbia caricato l'insieme ottenuto per il periodo precedente ad ogni passo dell'ottimizzazione). Se è più conveniente per voi, bene. La cosa principale che il principio ha salvato.

 
Youri Tarshecki:

Non ci possono essere metodi speciali di volking-forwarding. È unprincipio perfettamente chiaro di controllopasso dopo passo e l'EA stesso è, ovviamente, primario per il risultato. E il principio del controllo viene seguito oppure no. Quindi, o è una volata in avanti o non lo è. Pertanto, il mio metodo è assolutamente classico. Niente di nuovo.

Ottimizziamo all'indietro - otteniamo l'avanti della parte non ottimizzata e la valutiamo - andiamo avanti per la lunghezza dell'avanti - ottimizziamo di nuovo con le impostazioni precedenti - ecc.

Quello che hai detto sugli insiemi accumulati e sul funzionamento generale con essi è solo una variante della valutazione degli avanzamenti (supponendo che per ottenerli tu abbia caricato l'insieme ottenuto per il periodo precedente ad ogni passo dell'ottimizzazione). Se è più conveniente per voi, bene. La cosa principale è che il principio deve essere mantenuto.

La metodologia è la stessa, sono d'accordo.

E che dire della selezione di un solo risultato su 10 000+ opzioni del test a ritroso? Per massimo profitto? O per profitto massimo con un certo livello di drawdown (io lo scelgo con drawdown < 20%). O un altro metodo di selezione?

Il criterio di selezione del risultato - uno per tutti i settori? (Penso che dovrebbe essere) O diverso?

 
elibrarius:

La metodologia è la stessa, sono d'accordo.

E che dire della scelta dell'unico risultato tra più di 10.000 opzioni del back test? Per massimo profitto? O per profitto massimo con un certo livello di drawdown (io lo scelgo con drawdown < 20%). O un altro metodo di selezione?

Il criterio di selezione del risultato - uno per tutti i settori? (Penso che dovrebbe essere) O diverso?

Te l'ho già detto - l'attaccante giudicherà tutto!) Controllate tutto voi stessi, non prendete la parola di nessuno!

La cosa principale - ci dovrebbero essere tante retrovie quanti sono gli attaccanti e il set di una retromarcia precedente diventa l'inizio di una nuova.

 
elibrarius:

La metodologia è la stessa, sono d'accordo.

Che ne dite di selezionare un singolo risultato su più di 10000 opzioni da un back test? Per massimo profitto? O per profitto massimo con un certo livello di drawdown (io seleziono con drawdown < 20%). O un altro metodo di selezione?

Il criterio di selezione del risultato - uno per tutti i settori? (Penso che dovrebbe essere) O diverso?


I miei pensieri, anche sull'interfaccia:

Quindi, in primo luogo. L'ottimizzazione WF risponde alla domanda: se riottimizzo il mio EA ogni N giorni e scelgo il risultato migliore (in base a qualche criterio/regola/funzione di fitness) come influenzerebbe il periodo di trading di M giorni? (estratto dalla teoria)

Cioè lo sviluppatore per l'esperto determina sperimentalmente:
1. Criterio personalizzato (incorporato nell'Expert Advisor) - a discrezione dello sviluppatore - un ampio campo di discussione (questo è relativo al tuo drawdown di <20%).
2. Periodi N (In Sample For Window) e M (Out Of Sample For Window). Ed è un campo di ricerca interessante cambiare N e M sulla base di alcuni criteri del periodo precedente.
3. Parametri del sistema da ottimizzare
4. Un intervallo di valori di parametri in cui l'ottimizzazione deve essere fatta (è possibile limitarla programmaticamente)

Cioè, è ovvio che si tratta di una classe separata di Expert Advisor con un approccio speciale al trading. Un tale Expert Advisor (probabilmente) non sarà in grado di mostrare un trading redditizio sullo storico nemmeno per l'ultimo anno con un set di parametri, e fallirà sullo storico dopo un mese.

Il WF è necessario per altri Expert Advisors i cui sviluppatori non hanno implementato tutti questi 4 elementi? Non credo.

Cioè, sarebbe un bene per un trader se lui/lei selezionasse "Trade Mode" nella lista quando vuole controllare l'Expert Advisor secondo lo scenario raccomandato dal programmatore


Perché la modalità commerciale? Perché alla fine emuliamo il trading con la strategia di sovra-ottimizzazione in aree specifiche, scegliendo la migliore con il criterio Custom Max e il trading con i valori dei parametri definiti ad ogni passo.

Questo è tutto. Non fornire altre impostazioni. Ma fornire allo sviluppatore un'interfaccia programmatica:

- per determinare che WalkForward è selezionato
- impostare la lunghezza dei periodi N e M


 
Igor Volodin:

I miei pensieri, anche sull'interfaccia:

Quindi, in primo luogo. L'ottimizzazione WF risponde alla domanda: se dovessi riottimizzare il mio EA ogni N giorni e scegliere il risultato migliore (in base a qualche criterio/regola/funzione di fitness) come influenzerebbe il periodo di trading di M giorni? (estratto dalla teoria)

cioè lo sviluppatore per l'Expert Advisor determina per esperienza:
1. Criterio personalizzato (incorporato in Expert Advisor) - a discrezione dello sviluppatore - un ampio campo di discussione (questo è relativo al drawdown di <20%).
2. Periodi N (In Sample For Window) e M (Out Of Sample For Window). Ed è un campo di ricerca interessante cambiare N e M sulla base di alcuni criteri del periodo precedente.
3. Parametri del sistema da ottimizzare
4. Intervallo di valori dei parametri in cui l'ottimizzazione deve essere fatta (è possibile limitarla programmaticamente)

Cioè, è ovvio che si tratta di una classe separata di Expert Advisor con un approccio speciale al trading. Un tale Expert Advisor (probabilmente) non sarà in grado di mostrare un trading redditizio sullo storico anche per l'ultimo anno con un set di parametri, e fallirà sullo storico dopo un mese.

Il WF è necessario per altri Expert Advisors i cui sviluppatori non hanno implementato tutti questi 4 elementi? Non credo.

Cioè, sarebbe un bene per un trader se lui/lei selezionasse "Trade Mode" nella lista quando vuole controllare l'Expert Advisor secondo lo scenario raccomandato dal programmatore


Perché la modalità commerciale? Perché alla fine emuliamo il trading con la strategia di sovra-ottimizzazione in aree specifiche, scegliendo la migliore con il criterio Custom Max e il trading con i valori dei parametri definiti ad ogni passo.

Questo è tutto. Non fornire altre impostazioni. Ma fornire un'interfaccia di programma per lo sviluppatore:

- per determinare che WalkForward è selezionato
- impostare la lunghezza dei periodi N e M


Nostalgia, quanta complessità ci aspetta
 

Tecnicamente, per l'analisi, lo sviluppatore può raccogliere informazioni per ogni corsa avanti e indietro attraverso i fotogrammi, magari aggiungendo informazioni sul numero di passi nel fotogramma.
Ma non è necessario inserire il numero del passo, indirettamente, l'arrivo del fotogramma con i dati del nuovo passo può essere fatto analizzando il passo.

static int step = 0;
static bool lastState = 0; //0 - бэк, 1 - форвард
while(FrameNext(pass,name,id,value,data)) {
   bool is_forward = CheckPass(step, pass); //проверим pass в пуле для step шага
   if (!is_forward) {
     AddPass(step, pass); //добавим pass в пул
     if (lastState == 1) {
        //первый фрейм от нового walk-step'а
        step++;
        lastState = 0;   
     }
     
     //обработка бэка с учетом значения step
   } else {
     lastState = 1;

     //обработка форварда с учетом step'а
   }

}//endwhile
Nella documentazione possiamo aggiungere un esempio di salvataggio e visualizzazione dei fotogrammi per la modalità walk-forward in tester, e in kodobase, penso, ci sarà una semplice variante che può essere modificata per i vostri scopi.
 
Igor Volodin:


cioè lo sviluppatore per l'Expert Advisor determina per esperienza:
1. Criterio personalizzato (incorporato in Expert Advisor) - a discrezione dello sviluppatore - un ampio campo di discussione (questo è per il tuo Expert Advisor con drawdown <20%)
2. Periodi N (In Sample For Window) e M (Out Of Sample For Window). Ed è un campo di ricerca interessante cambiare N e M sulla base di alcuni criteri del periodo precedente.
3. Parametri del sistema da ottimizzare
4. Intervallo di valori dei parametri in cui l'ottimizzazione deve essere fatta (è possibile limitarla programmaticamente)

Cioè è ovvio che questa è una classe separata di Expert Advisor, con un approccio speciale al trading. Un tale Expert Advisor (probabilmente) non sarà in grado di mostrare un trading redditizio sullo storico anche per l'ultimo anno con un set di parametri, e perderà sullo storico in un mese.

Il WF è necessario per altri Expert Advisors i cui sviluppatori non hanno implementato tutti questi 4 elementi? Non credo.

1. Il tester contiene già i criteri di ottimizzazione, quindi perché "incollarli" nell'Expert Advisor?

Il cambiamento e il rapporto tra il dorso e l'avanti è anche oggetto di controllo sull'avanti. Se il rapporto forward si rivela migliore, lo useremo per ulteriori analisi.

3 I parametri da ottimizzare sono variabili utente. È il codice stesso che è oggetto di test.

4. La gamma di variabili - è possibile cercarle programmaticamente ma ci sono molte sfumature ed è più affidabile e più facile farlo manualmente per ora. E questa è una questione di ottimizzazione, non di volking-forwarding.

Perché è ovvio che si tratta di una classe separata di esperti? Penso che questa classe includa TUTTI gli EA, perché tutti gli EA senza sovra-ottimizzazione o sovra-allenamento stanno perdendo. L'avanzamento mostra solo quanto velocemente questo accada.

 
Igor Volodin:

I miei pensieri, anche sull'interfaccia:

Quindi, in primo luogo. L'ottimizzazione WF risponde alla domanda: se dovessi riottimizzare il mio EA ogni N giorni e scegliere il risultato migliore (in base a qualche criterio/regola/funzione di fitness) come influenzerebbe il periodo di trading di M giorni? (estratto dalla teoria)

Cioè uno sviluppatore di Expert Advisor determinerà sperimentalmente quanto segue
1. Criterio personalizzato (incorporato nell'Expert Advisor) - a discrezione dello sviluppatore - un ampio campo di discussione (questo è relativo al tuo drawdown <20%).
2. Periodi N (In Sample For Window) e M (Out Of Sample For Window). Ed è un campo di ricerca interessante cambiare N e M sulla base di alcuni criteri del periodo precedente.
3. Parametri del sistema da ottimizzare
4. Un intervallo di valori di parametri in cui l'ottimizzazione deve essere fatta (è possibile limitarla programmaticamente)

Cioè, è ovvio che si tratta di una classe separata di Expert Advisor con un approccio speciale al trading. Un tale Expert Advisor (probabilmente) non sarà in grado di mostrare un trading redditizio sullo storico anche per l'ultimo anno con un set di parametri, e fallirà sullo storico dopo un mese.

Il WF è necessario per altri Expert Advisors i cui sviluppatori non hanno implementato tutti questi 4 elementi? Non credo.

Cioè, sarebbe un bene per un trader se lui/lei selezionasse "Trade Mode" nella lista quando vuole controllare l'Expert Advisor secondo lo scenario raccomandato dal programmatore


Perché la modalità commerciale? Perché alla fine emuliamo il trading con la strategia di sovra-ottimizzazione in aree specifiche, scegliendo la migliore con il criterio Custom Max e il trading con i valori dei parametri definiti ad ogni passo.

Questo è tutto. Non fornire altre impostazioni. Ma fornire allo sviluppatore un'interfaccia programmatica:

- per determinare che WalkForward è selezionato
- impostare la lunghezza dei periodi N e M


Penso che la cosa migliore sia analizzare WF usando strumenti di terze parti, poi mostrare MQ e chiedere di integrarlo in tester.

Ma qualcosa mi dice che sarà difficile. Io, per esempio, senza una banca dati non ho deciso. Un semplice calcolo:
1 passaggio di ottimizzazione produce più di 10000 linee
+ 1 passaggio di avanti - altre 10000+ righe
=20000+ righe
* per esempio per segmento di 12 anni con sovra-ottimizzazione mensile

=240 mila linee

Se aggiungiamo i dati di tutte le transazioni per l'equilibrio e le curve dell'equity dai frame, la quantità di dati per l'analisi aumenterà di decine, centinaia o migliaia di volte per gli scalper. Un'altra variante che richiede meno risorse è quella di salvare i dati del capitale e del bilancio non per ogni scambio ma una volta al giorno, per esempio. Ho calcolato la snellezza della curva per il mio Expert Advisor, cioè ho ottenuto una cifra e l'ho inserita nel calcolo dei parametri personalizzati per l'ottimizzazione. Naturalmente, non è così informativo come la curva (per giorno o per scambio).

Non l'ho ancora fatto, ma molto probabilmente introdurrò dei filtri per livello (ad esempio drawdown <20%) + l'ordinamento (profitto massimo). È probabile che il filtro sia più di uno.

Nel terminale, si può operare solo con file e array, il che è molto più laborioso di una query SQL.

Naturalmente, è possibile collegare un DB al sistema MT5. Ma non sarà una soluzione scalabile, perché sarà molto difficile per un utente comune. Lo sto facendo per me stesso sul mio sito - caricamento di file di andata e ritorno attraverso un modulo nel database seguito dall'analisi.

E non ho mai visto alcuna possibilità di produrre tabelle in MT5, come nel browser. Penso che ci saranno anche dei problemi.

In generale, ho paura che in MT5 - WF non sarà mai.

 
Youri Tarshecki:

1. I criteri di ottimizzazione sono già presenti nel tester, perché dovrebbero essere aggiunti all'Expert Advisor.

Siete sicuri che questi criteri siano sufficienti per identificare (automaticamente) il miglior set per il walk-step? Dopo tutto,elibrarius era proprio in questo thread, facendo una domanda su quale criterio è migliore e chi usa cosa. Questo è un campo molto ampio per la ricerca e la scelta del miglior set per lavorare su un walk-step. Inoltre, diversi approcci al trading richiederanno probabilmente criteri diversi, da qualche parte il drawdown è molto critico, da qualche parte il numero di operazioni è importante, da qualche parte il profitto finale.

Inoltre, non vedo alcuna differenza dalla mia lista.

Perché è ovvio che si tratta di una classe separata di Expert Advisor? Penso che questa classe includa TUTTI gli EA, perché TUTTI gli EA senza sovra-ottimizzazione o sovra-allenamento falliranno. Forward sta solo mostrando quanto velocemente accade.

Lo sviluppatore dichiara che l'EA opera in questa modalità e ha implementato il supporto per WF nel codice. E non solo quando l'EA inizia a fallire - ri-ottimizzalo.

E non puoi impostare N e M nell'interfaccia del tester - è quello che ho suggerito, solo programmaticamente. Se vedi come è chiaro per tutti fare le impostazioni nell'interfaccia del tester, e saranno poi già fissate - i periodi di N e M saranno inseriti dall'utente (anche se il tuo"Cambia e il rapporto tra indietro e avanti - questo è il soggetto di controllo su avanti" non funzionerà), suggerisci la tua versione.