Risposta

Domanda per Mark - Dettagli sull'evoluzione genetica?

4 risposte

mikeyc

Cliente, bbp_partecipante, comunità, 877 risposte.

Visita il profilo

8 anni fa #114067

Ciao,

 

Ho alcune domande, cosa succede esattamente durante la mutazione/accoppiamento delle strategie in modalità evoluzione genetica?

 

Si tratta di due strategie del pool iniziale o di più di due?

Prende a caso la regola di entrata di uno e la combina con la regola di uscita di un altro?

Questo processo modifica in qualche modo i parametri (come fa l'ottimizzazione)?

Esiste una casualità e in che modo durante il processo di combinazione?

 

Sto cercando di capire a cosa è più importante dedicare il tempo:

 

  1. Creare più strategie casuali
  2. Dedicare più tempo al miglioramento e all'ottimizzazione delle strategie casuali.
  3. Dedicare tempo alla costruzione genetica

Avere una visione dei dettagli di ciò che accade agli elementi costitutivi e alle regole durante il processo genetico sarebbe di grande aiuto.

 

Grazie,

 

Mike

0

gentmat

Cliente, bbp_partecipante, comunità, 234 risposte.

Visita il profilo

8 anni fa #132028

Ciao Mike, credo che Mark usi la funzione Matlab in quanto è uno sviluppatore. Per capire GA è necessario leggere o seguire un corso per questo. 

Cercherò di spiegare ciò che ricordo dai miei studi universitari.

 

Il pool casuale viene scelto per primo e il primo gen casuale avrà una fitness di diciamo 1 ... poi ne arrivano altri e gli verrà assegnato un numero di fitness a seconda dei criteri scelti per quella fitness. 

Quando tutte le strategie casuali sono create ... L'algoritmo molto probabilmente girerà intorno alla strategia più adatta e questo è il motivo per cui si vede che molte strategie si assomigliano quando si sceglie genetica vs casuale. Il genetico porterà a strategie più simili a causa del fitness. 

Quindi diciamo che è un enorme cerchio al cui interno ci sono dei piccoli punti... Vedrete tutti i punti che cercano di andare al loro posto ma relativamente a quella forma fisica.

 

Ora la mutazione si verifica, ma il suo 10% così raro è così alto. ricordate Algoritmo Genetico è utilizzato per trovare molti problemi come l'evoluzione umana ... Quindi la mutazione accade all'uomo è milioni di anni in modo insignificante. Quindi è possibile impostare la mutazione a 0,1 per essere più realistico anche nel trading. 

 

Ora il crossover è il modo per risolvere le cose più velocemente e questo è stato ottenuto da molti ricercatori che hanno lavorato con il GA e lo hanno migliorato. Ricordate che il GA è ancora un metodo NAIVO, non eccezionale, ma è stato davvero utile anche nei problemi della NASA e hanno scoperto che il crossover è il migliore. 

Il crossover scambierà A Z Y dalla catena e inizierà a scambiarli, non cambierà A o B, solo la combinazione lo farà cambiare logicamente, ma come parametri dubito che cambierà qualcosa, in teoria dovrebbe mantenere A e Z e Y uguali e incrociarli fino a quando la forma fisica non migliora. 

 

Esiste un modo predefinito o un modo migliore o delle impostazioni? NO 

È un dato di fatto che se si aumenta il numero di pool di generazione casuale si otterranno risultati genetici migliori, ma ricordate che richiede tempo e molta cpu per farlo (e un pool grande a volte porterà a strategie più simili perché su 1000, 1 di questi trade viene sempre ad essere il migliore, qui si vivrà un cerchio e si dovrà fare più come 100 pool). e a volte 1000 aiuta di più e infatti aumenterà la possibilità di strategie migliori (solo che questa cosa potrebbe fallire, ma si può provare 1000 o 2000 e verificare cosa accadrà).

Random può ottenere gli stessi risultati di genetic, ma richiederà più tempo per farlo... ma poiché il consumo di SQ della cpu è un po' strano, posso dire che random è molto più veloce di genetic.

Quindi, in teoria, la ricerca genetica deve essere più veloce, ma con SQ la ricerca genetica consuma più tempo per preparare il pool, il crossover e così via, e quindi porta allo stesso risultato.

 

Spero di aver cercato di aiutare e ora MARK risponderà, ma credo che non avrà alcuna impostazione specifica, poiché anche i professori e le persone che hanno creato GA non sanno ancora quali siano le impostazioni migliori per il GA.

Ma la maggior parte dei matematici concorda sulla mutazione 0,1 e sull'incrocio 65%  

0

mikeyc

Cliente, bbp_partecipante, comunità, 877 risposte.

Visita il profilo

8 anni fa #132031

Suppongo che il nocciolo di ciò che sto cercando di capire sia: GA combina semplicemente pezzi di due strategie e poi vede se è migliore della strategia madre, e a quale livello combina i pezzi? È a livello di entrata, uscita, stop loss, o di singoli pezzi della logica di entrata, uscita e stop, e le costanti come il periodo dell'indicatore vengono modificate? Si combina a livello di operatore/ blocco di costruzione?

 

L'approccio GA fornisce risultati migliori rispetto al tempo dedicato al miglioramento seguito dall'ottimizzazione o è meglio andare avanti:

 

Casuale -> Migliorare le parti della strategia -> Ottimizzare, e non utilizzare affatto GA?

0

gentmat

Cliente, bbp_partecipante, comunità, 234 risposte.

Visita il profilo

8 anni fa #132033

Io sono un dev ma non ho scritto sq ma qui ci sono i fatti di quello che credo sia vero.
1- Ga combina le regole di ingresso, diciamo che la strategia 1 ha cci > rsi e la strategia 2 ha wp > bbands
ga prenderà il più adatto di questi due, rimaniamo in str 1, e fa quanto segue
aggiungere o sostituire o scambiare
quindi 1 senario sarebbe cci>wp
o cci>rsi && wp>bande
e così via
Ga farebbe lo stesso per sl e take profit
Ga non scambierà il tipo di ordine, quindi manterrà il tipo di ordine del più adatto ma effettuerà modifiche solo per l'entrata e l'uscita.
2- Improver si usa solo se si ha in mente qualcosa per rendere la ricerca più veloce.
3- Non c'è modo di rispondere se la casualità, il miglioramento e l'ottimizzazione fanno meglio o meno. nessuno risponderà mai a questa domanda, a meno che non sia ignorante e pensi di saperlo, ma non è così.
E' tutta una questione di fortuna e velocità, sono sicuro che se hai 200 core a 50ghz avrai una probabilità di trovare buone strategie rispetto ad un utente normale.
Il caso ha pro e contro, quindi GA
-professionisti di Radom:
a-molto veloce soprattutto in sq3 rispetto a ga
b-può trovare una varietà di nuove combinazioni diverse l'una dall'altra
c-non usa molte ram e non aspetta il conteggio, poi aspetta qualche secondo per verificare l'idoneità e poi inizia l'elaborazione di nuove generazioni (di nuovo a velocità)
contro:
a-Come è più veloce trovare strategie, è più lento trovare una volta buone, perché a volte il random trova grandi entrate ma non grandi uscite, quindi se fosse ga tale strategia porterebbe a qualcosa piuttosto che essere ignorata dal random.
Professionisti GA
1 meglio trovare soluzioni per problemi complessi che richiederebbero 400 anni per essere risolti, ma che con il GA possono richiedere 1 anno. Pro gli scienziati usano il GA e non il random per risolvere i problemi.
GA cons:
-Lento a causa del modo multithread di sq (ha qualcosa di sbagliato, speriamo che sq4 sia migliore). random usa anche i multi core ma sembra molto più veloce
-Come vi ho già detto, il problema dell'algoritmo genetico è che può girare intorno al più adatto e produrre all'infinito le stesse strategie.
Questo è dovuto a un indicatore che si adatta al meglio a qualsiasi strategia casuale, quindi lo useremo sempre.
Per risolvere questo problema è necessario abbassare il numero di pool generati casualmente, ma ricordate che un numero più alto di casualità dà maggiori possibilità di una strategia migliore. la spada ha due facce
cosa è meglio cosa è meglio non posso dirlo nemmeno chi ha creato ga non può dirlo 🙂
Prova con una piscina grande, prova con una piscina piccola, prova solo con una piscina casuale.
Non credo che il forex sia molto complesso e che il random possa farlo da solo.
Hai solo bisogno di velocità, computer spped. non preoccuparti di migliorare e ottimizzare solo banca rigorosa per la stabilità > 0,85
In questo modo si ottengono 10 strategie in 1 giorno e si mette in mente il numero di operazioni > operazioni massime, in questo modo si memorizzano solo le strategie che sono a metà e non c'è molto lavoro da fare se non provare la strategia su simboli diversi e tempi diversi.

0

seaton

Cliente, bbp_partecipante, comunità, 161 risposte.

Visita il profilo

8 anni fa #132038

I GA in generale sono un modo per cercare rapidamente in ampi spazi di input per dare risultati che, pur non essendo ottimali, sono di solito molto buoni, al contrario di un approccio a forza bruta che richiederà molto tempo per cercare nello stesso spazio di input e trovare gli stessi risultati; tuttavia, se si usa un approccio a forza bruta e si ha abbastanza tempo a disposizione, si troverà la soluzione migliore. MIGLIORE Il risultato è sempre più evidente man mano che si esegue una ricerca esaustiva, per cui alla fine si troverà il risultato finale al massimo globale. Ovviamente l'approccio casuale è proprio questo, cerca in modo casuale nello spazio di input e spera di trovare qualcosa di valido.

 

La teoria alla base dei GA è che gli input di un ampio spazio di ricerca sono mappati/codificati in un genoma (cioè potrebbe essere un array o una stringa che rappresenta gli input da ricercare), in questo caso con SQ sono le funzioni a essere mappate per formare una strategia e lo spazio di ricerca il mercato, una funzione di fitness basata su regole viene applicata al genoma per determinare quale sia un buon risultato e chi possa sopravvivere alla popolazione successiva, in questo caso il fitness sono le regole che si applicano, come il profitto e il draw down ed è ciò che determina quale strategia viene selezionata come genitori per la generazione successiva.

 

Una popolazione iniziale viene creata utilizzando genomi generati a caso (o a volte seminati con genomi pre-popolati, ad es. Come nella teoria dell'evoluzione, sopravvivono i genomi che rappresentano il fitness (risultato dell'applicazione della funzione di fitness a ogni genoma della popolazione), quindi sopravvivono solo i fitness e, insieme ai nuovi genomi generati a caso per comporre la popolazione, si verificano crossover e mutazioni, Il crossover simula la riproduzione e una coppia di geni genitori scambia parte del proprio genoma per formare i figli che andranno a costituire la nuova generazione; ogni genoma della nuova popolazione ha una piccola possibilità casuale di mutazione, che aiuta la popolazione a non rimanere bloccata in situazioni di massimo locale; la funzione di fitness viene applicata e tutto ricomincia.

 

Con il passare del tempo il valore di fitness complessivo della popolazione di solito aumenta fino a un punto in cui non aumenterà più di tanto, ovvero la stagnazione del fitness. Quando ciò accade, di solito è il risultato di aver trovato un massimo locale nello spazio di ricerca e di solito è un segno che non può evolvere ulteriormente. È quindi meglio ricominciare con una nuova popolazione per cercare di individuare un altro massimo locale.

 

Quindi, per rispondere alla tua domanda, in SQ i risultati ottenuti con GA VS Random, IMHO è che GA troverà strategie redditizie più velocemente rispetto a random, tuttavia la popolazione risultante sarà tutta simile e potrebbe non essere più ottimale delle strategie generate a caso, quindi entrambe avranno bisogno di qualche forma di ottimizzazione. In realtà entrambe sono solo una forma di ricerca, solo che il GA troverà soluzioni più velocemente, ma la soluzione trovata, pur essendo buona, potrebbe non essere ottimale, cioè non raggiungere il massimo globale. Io comincio con il random e le migliori soluzioni vengono utilizzate per alimentare il GA.

 

Molte lune fa (alla fine degli anni '90) per il mio progetto finale di laurea scrissi un sistema operativo multitasking per sistemi embedded sulla MPU Motorola 68HC11 che utilizzava GA come task scheduler.

 

Stephen...

1

Stai visualizzando 4 risposte - da 1 a 4 (di 4 totali)