Ottimizzare un EA e ottenere il meglio di quelli ottimizzati. - pagina 23

 
+1 Ha preso il rimanente per ottimizzare
File:
 
George Merts:

Rilevante in ogni caso.

Anche se fai diverse ottimizzazioni allo stesso tempo - questo permetterà una migliore selezione del miglior set di parametri di input - semplicemente unendo i file XML, e l'elaborazione da parte dello script di valutazione. Ci possono essere problemi solo se lo script trova errori, come ha fatto l'ultima volta, quando non ho segnato tutte le variabili nel file SET. Lo script mi diceva "file non valido", ma non riuscivo a capire cosa fosse sbagliato.

In modo che la vostra ottimizzazione sia presa in considerazione. Ora lo elaborerò, aggiornerò la versione su Yandex, e posterò i prossimi esperti "usciti" dalla Lega. Se è interessante - posso scrivere "per quello che sono stato cacciato". :)

In generale, ho pensato che la genetica selezionerà gli stessi risultati ogni volta, non è così?

Le statistiche degli abbandoni possono essere raccolte, forse questi dati porteranno a miglioramenti nel consulente, se l'approccio cambia ...

 
Aleksey Vyazmikin:

Generalmente pensavo che la genetica portasse via ogni volta gli stessi risultati, non è così?

Le statistiche di partenza possono essere raccolte, forse seguire questi dati per migliorare l'EA, se l'approccio cambia...

Genetica - non può dare gli stessi risultati. Solo quelli vicini. E questo se la funzione è abbastanza "pari".

Abbiamo uno spazio di un miliardo di opzioni di cobmin. Dobbiamo selezionare i migliori.

Prima - prendiamo 512 varianti a caso. Questa è la prima generazione.

Poi formiamo la prossima generazione - facciamo cambiamenti casuali di parametri - mutazioni in ogni cobminazione. Otteniamo 1024 individui. Selezioniamo il 512 con il valore più alto della funzione di fitness (funzione di fitness - questa è solo l'impostazione personalizzata nelle impostazioni di ottimizzazione). E il ciclo delle mutazioni si ripete.

I cicli continuano fino a quando grandi valori della funzione di fitness smettono di apparire.

Quindi, anche se il risultato (un valore) può essere lo stesso in diverse ottimizzazioni, le generazioni stesse, e i "percorsi per trovare" questo valore - saranno diversi. E questi percorsi di ricerca - sono mostrati nel file XML. Il mio script di stima corre attraverso questo file, e calcola la varianza dei valori della funzione di fitness per il periodo posteriore e anteriore. Poi viene selezionato un valore di compromesso della funzione di fitness, in modo che sia il più grande possibile, ma la varianza sia la più piccola possibile (ma nel secondo ordine di grandezza).

Se prendiamo due diversi file di ottimizzazione XML, il valore migliore in essi può essere lo stesso. Ma la varianza - sarà necessariamente diversa. E questo - influenzerà la scelta, potrebbe essere più ragionevole prendere un valore leggermente più piccolo della funzione fitness, tuttavia, tale che la varianza intorno a questo valore è molto più piccola.

 
Aleksey Vyazmikin:
+1 Ha preso il resto per ottimizzare.

Hai 24 codici rossi, elaborerò GBPCHF_EMAFlatRTS, sarà 25. Pubblica il prossimo file, sarà 26. Ma ora devo uscire. Tornerò tra circa quattro ore e posterò i prossimi outsider.


Alexei, se vuoi usare i redcodes - sarà più ragionevole compilare una versione separata di "league" - che sarà immediatamente "caricata" con i tuoi codici selezionati per il tempo di azione selezionato. In modo che nelle impostazioni si debba solo scrivere il rischio desiderato. Tutti i sistemi selezionati - lavoreranno in modo indipendente, come se fossero copie multiple di League, ognuna sul proprio Magic (questo è il modo in cui gli EAs lavorano su un comune conto demo, non ci sono 270 EAs, ma solo cinque, ma funzionano con tutti i 270 TS).

Per chi è interessato, la Lega dei sistemi di trading Expert Advisor - disponibile per il download su YandexDisk

EALeague
EALeague
  • yadi.sk
View and download from Yandex.Disk
 
GBPJPY_ChnTrendRTS
File:
 
George Merts:

Prima - prendiamo 512 scelte a caso. Questa è la prima generazione.

Stiamo prendendo o l'ottimizzatore? Ho solo qualche dubbio sulla casualità, cioè cosa genera questa casualità, si conosce l'algoritmo? È legato al tempo?


George Merts:

Poi formiamo la prossima generazione - in ogni cobbling facciamo cambiamenti casuali nei parametri - mutazioni. Otteniamo 1024 individui. Selezioniamo il 512 con il valore più alto della funzione fitness (la funzione fitness è solo l'impostazione Custom nelle impostazioni di ottimizzazione). E il ciclo di mutazione si ripete.

E dove posso vedere esempi di una tale funzione che si compila da sola?

O è solo un singolo numero basato su un calcolo personalizzato che dovrebbe tendere a un valore più alto o più basso, e di conseguenza se c'è una dinamica, allora la genetica cola proprio in quella direzione?

George Merts:

Hai 24 codici, elaborerò GBPCHF_EMAFlatRTS, sarà 25. Se invii il prossimo file, sarà 26. Ma ora devo andare. Tornerò tra quattro ore e posterò i prossimi "outsider".


Alexei, se vuoi usare i codici di lettura - sarà più ragionevole compilare una versione separata di "League" - che sarà immediatamente "caricata" con i tuoi codici selezionati per il tempo di azione selezionato. In modo che nelle impostazioni si debba solo scrivere il rischio desiderato. Tutti i sistemi selezionati - lavoreranno in modo indipendente, come se fossero copie multiple di Lega, ognuna sul proprio Magic (così lavorano gli esperti sul conto demo comune, non ci sono 270 Advisors, ma solo cinque, ma lavorano tutti i 270 TS).

Hmmm, non so nemmeno come selezionarli... cosa c'è da ottimizzare allora, o solo un valore di "rischio"?

 

Giusto. Si adatta. Va bene, tutto elaborato, incorporato nella Lega.

Ho un'idea per modificare gli EAs per l'ottimizzazione, in modo da poter vedere immediatamente dai file XML, su quale simbolo sono stati eseguiti, e su quale periodo avanti e indietro. Me ne occuperò nel fine settimana.

Per ora devo scrivere altre istruzioni per i neofiti.

Aleksey Vyazmikin:

Battiamo il battitore o l'ottimizzatore? Ho solo dei dubbi sulla casualità, cioè cosa genera questa casualità ed è noto l'algoritmo? È basato sul tempo?

L'ottimizzatore, naturalmente. Fa l'ottimizzazione genetica.

E per quanto ne so e vedo - i set di parametri iniziali - sono generati puramente a caso, molto probabilmente usando un'istruzione del processore che dà numeri casuali. Idealmente, dovrebbe essere usata un'istruzione del processore RDRAND, che produce un numero casuale che soddisfa molti standard speciali. Ma, naturalmente, i numeri casuali possono essere in realtà pseudo-casuali - non è molto peggio - non abbiamo bisogno di una crittografia robusta, abbiamo bisogno di un "seme" uniforme del campo di valori.

 
Aleksey Vyazmikin:

E dove posso vedere esempi di una funzione autocompilata come questa?

O è solo un singolo numero basato sui risultati di un calcolo personalizzato, che dovrebbe tendere a un valore più alto o più basso, e di conseguenza se c'è una dinamica, allora la genetica cola proprio in quella direzione?

Sì, è vero, la funzione fitness è il risultato di OnTester(), che caratterizza il passaggio. Nel caso più semplice è semplicemente il valore del deposito alla fine del passaggio. L'ottimizzatore seleziona i cobmin in cui questa funzione sarà massima. E si formano nuove generazioni sempre più vicine al massimo.

Uso una funzione intelligente a più fattori che riflette molto bene la qualità del commercio, una volta ho ottenuto questo codice a pagamento, ma ora non me ne pento.

Ecco, l'algoritmo genetico in generale ha un sacco di trucchi, c'era anche un articolo sugli algoritmi genetici da qualche parte, e si parlava molto.

 
Aleksey Vyazmikin:

Hmmm, non so nemmeno come selezionarli... cosa c'è da ottimizzare dopo, o solo un valore di "rischio"?

Non hai bisogno di ottimizzare nulla, tutto è già ottimizzato prima di te. Quello che state facendo ora è ottimizzare i sistemi esterni in modo che diventino favoriti su altri set di parametri. Metteteli sulla demo e vedete come scambiano. Alcuni di loro saranno abbastanza fortunati da negoziare nelle posizioni aperte. Vedremo tra un mese. A quel punto, i vecchi favoriti avranno sparato un colpo di prova e saranno rimossi dal commercio, e nuovi sistemi, tra quelli che si stanno ottimizzando, prenderanno il loro posto.

Prendiamo qualsiasi sistema preferito, impostiamo il valore di rischio in esso - e puoi fare trading.

Ma "come selezionare"... Questa è la mia domanda principale. Se "solo macinare" - poi visivamente e dal parametro "qualità". Quei sistemi che ho selezionato - li ho impostati su un conto reale, la password di investimento a cui hai. Ma, sono stati scelti intuitivamente. Sfortunatamente, non ho ancora sviluppato criteri chiari.

Quindi - guardate i grafici, scegliete il migliore - questa è la vostra scelta per ora. Ci sono chiaramente molti da scegliere.

 

Sistemi che richiedono una sovra-ottimizzazione:

Due mostravano una coda SL troppo lunga, il resto superava l'allentamento consentito.