Domanda sull'ottimizzazione genetica

 

Ho deciso di iniziare a ottimizzare il TS, ma dato che ci sono molti parametri da ottimizzare - 13, e il TS è progettato per M1 e non ci sono più di 10 trade al mese, ho deciso di utilizzare un algoritmo genetico e prendere la storia per 1 mese.

Alla prima esecuzione il tempo calcolato era più di 250 ore e il numero di combinazioni era più di 83 miliardi. Nell'articolo "Algoritmi genetici in MetaTrader 4. A Comparison with the Optimizer's Direct Search" afferma che non dovremmo concentrarci sul tempo calcolato perché non corrisponde alla realtà nell'ottimizzazione genetica, ma l'articolo è stato scritto molto tempo fa, forse le ultime build di MT4 lo corrispondono già? Quindi dovrei aspettare? Non mi aspettavo problemi di ottimizzazione quando ho creato TS, ma si scopre che TS sembra essere buono, ma non posso impostarlo manualmente, ci sono troppi parametri e piccoli cambiamenti in essi portano alla ristrutturazione significativa del sistema.

Puoi anche dirmi cosa significano le cifre in basso a sinistra: la prima è il numero di corse, tra parentesi - il numero di combinazioni, e cosa c'è tra loro sotto / ?

 
Angela >> :

Ho deciso di iniziare a ottimizzare il TS, ma dato che ci sono molti parametri da ottimizzare - 13, e il TS è progettato per M1 e non ci sono più di 10 trade al mese, ho deciso di utilizzare l'algoritmo genetico e prendere la storia per 1 mese.

Alla prima esecuzione il tempo calcolato era più di 250 ore e il numero di combinazioni era più di 83 miliardi. Nell'articolo "Algoritmi genetici in MetaTrader 4. A Comparison with the Optimizer's Direct Search" afferma che non dovremmo concentrarci sul tempo calcolato perché non corrisponde alla realtà nell'ottimizzazione genetica, ma l'articolo è stato scritto molto tempo fa, forse le ultime build di MT4 lo corrispondono già? Quindi dovrei aspettare? Non mi aspettavo problemi di ottimizzazione quando ho creato TS, ma si scopre che TS sembra essere buono, ma non posso impostarlo manualmente, ci sono troppi parametri e piccoli cambiamenti in essi portano alla ristrutturazione significativa del sistema.

Per favore, ditemi anche cosa significano i numeri in basso a sinistra: il primo numero è il numero di corse, tra parentesi - il numero di combinazioni, e cosa c'è tra loro sotto / ?

I numeri nella genetica significano il numero di combinazioni / combinazioni nella genetica.

È una sorta di autopromozione per mostrare quanto siamo grandi MetaQuotesters e quanto tempo possiamo risparmiare grazie alla genetica.

\Ci sono molti parametri da ottimizzare - 13 \consiglio di dividere i parametri in coppie e in tre,

(qui dovrete pensare a cosa è accoppiato con cosa) e fare la selezione per gradi.

È più conveniente guardare un grafico di ottimizzazione bidimensionale in questo modo.

In generale, la genetica raccoglie i massimi sparsi ed è ancora meglio fare una ricerca semplice.

Personalmente uso la genetica per trovare una zona locale dove già faccio una ricerca completa.

 
Urain писал(а) >>

In genetica, i numeri si riferiscono al numero di quote/quote in genetica (il numero di campionamento diretto).

Questa è una sorta di auto-pubblicità per mostrare quanto siamo fighi come MetaQuotesters e quanto tempo vi facciamo risparmiare grazie alla genetica.

\Ci sono un sacco di parametri da ottimizzare - 13 \consiglio di rompere i parametri in coppie e tre,

(dovrai pensare a cosa è abbinato a cosa) e fare la selezione per gradi.

È più conveniente guardare un grafico di ottimizzazione bidimensionale in questo modo.

In generale, la genetica raccoglie i massimi sparsi ed è ancora meglio fare una ricerca semplice.

Personalmente uso la genetica per cercare un'area locale che poi userei per fare una ricerca a forza bruta.

Il problema è che la maggior parte dei parametri di ottimizzazione sono legati l'uno all'altro da feedback e cambiare uno causa la ristrutturazione di diversi altri e il quadro cambia. La strategia è progettata in modo tale che l'ottimo sarà cercato in tutto l'iperpiano dei parametri utilizzati. Quindi probabilmente dovrò abbandonare questa strategia, anche se è un peccato ovviamente, eseguendola sullo storico dal 1.01.2007 fino ad ora anche senza ottimizzazione il TS ha mostrato stabilità, almeno non è sceso a zero, anche se è progettato per la sovraottimizzazione settimanale. Negli ultimi 2 anni ci sono stati alti e bassi ciclici.

Andrò a de-stressarmi e ad elaborare una nuova strategia.

 
All'apertura della barra, cercate di ottimizzare
 
83 miliardi potrebbero portarvi nel posto sbagliato. Da quanto ho capito, un tester, se il numero totale di corse supera un certo numero (e il tuo certamente lo fa) in genetica non fa più di 10.000 corse. Cioè, il tester potrebbe, dopo aver ottenuto risultati positivi da qualche parte in un enorme spazio di varianti, iniziare a incrociare questi risultati, e potrebbe semplicemente non avere il tempo di guardare i risultati veramente buoni... Dovresti provare ad aumentare il passo dei parametri. Allora ci saranno meno opzioni. E poi, dopo una prima approssimazione, considerare l'area di maggiore interesse in modo più dettagliato.
 
Angela >> :

Il problema è che la maggior parte dei parametri di ottimizzazione sono legati tra loro da feedback, e cambiarne uno porta a riordinare alcuni degli altri e il quadro cambia.

Questo va generalmente bene. Quindi, attraverso un grafico di ottimizzazione bidimensionale è possibile identificare la correlazione e scriverla attraverso un coefficiente nel codice.

escludere del tutto un termine di ottimizzazione. Per esempio, si nota che i valori massimi su un grafico 2D sono diagonali.

Questo significa che potete rendere un parametro dipendente nel codice (x2 = x1 + 3) e ottimizzare solo x1. Buona fortuna.

 

Non volevo aspettare la fine dell'ottimizzazione, quindi l'ho spento. Anche se TS è stabile e mostra buoni risultati sui trade redditizi, ma aspettare settimane per l'ottimizzazione è troppo.

Per esempio, ecco l'intervallo mostrato nel grafico sopra, ma negli ultimi due mesi.

Inoltre, ho un'ottimizzazione separata di Compra e Vendi. Inoltre, ci sono troppo poche offerte e a causa del cattivo Internet contavo di spegnere il mio sistema di trading di notte, mentre potevo aspettare 2-3 settimane in attesa di offerte almeno.

Così ho eliminato lo stress ieri e ho iniziato a sviluppare un nuovo TS. Farò più semplice e 390 linee di codice con condizioni logiche è troppo, e frena fortemente, test da prezzi di apertura dal 2007 ha preso 4,5 ore. Inoltre, tra un mese, io stesso non capirò cosa c'è in queste condizioni logiche nakochelya.

 
Angela >> :

Inoltre, tra un mese non saprò nemmeno cosa ho fatto in queste condizioni logiche.

Scrivere commenti dettagliati. ;-). Dal momento che il TS è scartato, può essere pubblicato nel codebase come esempio, forse il refactoring sarà possibile.

 

Fare una nuova versione del TS. Fatto un blocco, e prima di procedere ho deciso di ottimizzare alcuni parametri, in modo da poter sintonizzare ulteriormente con impostazioni iniziali più o meno ottimali. Ho ottimizzato 7 parametri, tempo stimato di ottimizzazione - 106 ore, anche se dopo l'inizio dell'ottimizzazione aumenta passo dopo passo, numero di combinazioni - 44.274.384, numero stimato di corse - 10.496. Inizialmente, ho impostato la cronologia per 1 mese, l'ottimizzazione è iniziata, i risultati delle corse hanno cominciato ad apparire nella finestra "risultati dell'ottimizzazione". Ho ricevuto 186 offerte durante un mese. Ho deciso di dimezzare la cronologia per accelerare l'ottimizzazione, dopo il lancio il tempo era di 57 ore, ma le finestre "risultati di ottimizzazione" e "programma di ottimizzazione" non hanno mostrato nulla, qual è il problema?

 
Angela >> :

Fare una nuova versione del TS. Fatto un blocco, e prima di procedere ho deciso di ottimizzare alcuni parametri, in modo da poter sintonizzare ulteriormente con impostazioni iniziali più o meno ottimali. Ho ottimizzato 7 parametri, tempo stimato di ottimizzazione - 106 ore, anche se dopo l'esecuzione dell'ottimizzazione aumenta poco a poco, il numero di combinazioni - 44.274.384, numero stimato di corse - 10.496. Inizialmente, ho impostato la cronologia per 1 mese, l'ottimizzazione è iniziata, i risultati delle corse hanno cominciato ad apparire nella finestra "risultati dell'ottimizzazione". Ho ricevuto 186 offerte durante un mese. Ho deciso di dimezzare la cronologia per accelerare l'ottimizzazione, dopo aver fatto funzionare il robot per 57 ore, ma le finestre "risultati di ottimizzazione" e "programma di ottimizzazione" non hanno mostrato nulla, qual è il problema?

1 I parametri nella finestra "Ottimizzazione" sono probabilmente impostati nei vincoli, che nessuna corsa singola ha superato,

Se non c'è una soglia vincente, significa che non c'è niente da scegliere. Lasciare un segno di spunta accanto a "Profitto massimo",

Se almeno una corsa supererà la barriera e darà almeno qualche profitto, sarà visualizzata.


2 Se non potete ridurre il numero di parametri ottimizzati allo stesso tempo, aumentate il passo.

E poi dopo aver visto il risultato (nel campo di quali valori) eseguire con un passo più piccolo.

Per esempio: Per { inizio, passo, fine}

Se x1 {10,10,100}, come risultato, vedremo un cluster scuro su x1 da 60 a 80.

Fate una seconda esecuzione con i parametri x1 {60,1,80} e trovate l'optimum.

(Quando parlo di un grafico, intendo un grafico dimensionale).

 
Angela >> :

>> Qual è il problema?

Chi lo sa, i miracoli accadono. Di solito, prima di eseguirlo per l'ottimizzazione, faccio delle corse visive con i parametri previsti, visualizzando i dati massimi richiesti in commento. Riesco a vedere molte cose interessanti in una volta sola, così come quando si rivede il registro. Cattiva cronologia, errori di indicatori, errori di Expert Advisor, ecc. Dopo averli eliminati, c'è più fiducia nella precisione dell'ottimizzazione.