Ottimizzazione nel tester di strategia - pagina 15

 
Urain:

Se si dovesse usare un long array dinamico come questo, probabilmente cambierebbe molto. Supponendo la funzione FF più lenta, non rovinerebbe troppo l'algoritmo. Questa è la verità, senza aver controllato l'algoritmo stesso, è difficile dire quanto sarà complessa la riprogettazione.
Stiamo già pensando di estendere la gamma.
 
Renat:
Sto già pensando di espandere la gamma.

Ho trovato questo, un articolo niente male sull'ibrido GA http://masters.donntu.edu.ua/2006/kita/bashev/library/hybrid.html

In poche parole: GA binario + regole del metodo di ottimizzazione quasi-Newtoniano.

Интеллектуальные модели на основе гибридного генетического алгоритма с градиентным обучением лидера, Н.Б. Паклин, М.А. Сенилов, В.А. Тененев, ГОУ ВПО "Ижевский государственный технический университет", г. Ижевск, 2004
  • masters.donntu.edu.ua
Данный доклад в сентябре 2004 г. был опубликован в научно-теоретическом журнале "Искусственный интеллект" и апробирован на V Международной конференции "Искусственный интеллект-2004. Интеллектуальные и многопроцессорные системы" (20-25 сентября 2004 года, Крым, п. Кацивели, ссылка на печатный источник: Паклин Н.Б., Сенилов М.А., Тененев В.А...
 
Dmitriy2:

E ho selezionato alcuni parametri, ho cliccato sul test... la mattina ho contato il numero di corse e quanti erano rimasti... ha calcolato che mancavano 50 giorni alla fine dell'ottimizzazione... il mio computer ha 4 core + 2 core agenti... Fanculo questa ottimizzazione, chiudetela...

I parametri chiaramente non sono 5-6 e il loro periodo non è un anno :))) E in generale, il tempo rimanente prima della fine dell'ottimizzazione è sempre sbagliato (almeno era così in MT4), più l'ottimizzazione diminuisce più il tempo alla fine dell'ottimizzazione è veloce, ho scritto inizialmente 450 ore in MT5, ma in realtà ho speso 100 ore o giù di lì.

 
Urain:

Qui mi sono imbattuto in un buon articolo sull'ibrido GA http://masters.donntu.edu.ua/2006/kita/bashev/library/hybrid.html

In poche parole: Binary GA + regole del metodo di ottimizzazione Quasi-Newtoniano.

Bella idea, ma gli autori hanno lasciato da parte una piccola caratteristica dei metodi a gradiente che porta a seri problemi di implementazione - il calcolo della derivata parziale della funzione obiettivo per ogni parametro adattivo )))

Ma sì, è una soluzione geniale ))))

Supponiamo che questo problema sia risolto, c'è ancora una questione di scegliere il passo di spostamento lungo il gradiente

Lo stesso GA con elementi di "elitarismo" e un gran numero di individui nella popolazione chiude questi problemi in un tempo ragionevole

Stiamo parlando di uno spazio di ricerca dell'ordine di alcune decine. Qualsiasi cosa più grande è una perdita di tempo (per esperienza personale, affermo che l'ottimizzazione di più TS con 30 parametri adattivi su una storia >100 mila barre ha portato stupidamente alla riqualificazione).

 
Renat:
Stiamo già pensando di estendere la gamma.
Sarebbe fantastico. Ho applicazioni ragionevoli per un gran numero di parametri.
 

L'ottimizzatore non può gestire 64 parametri, il massimo è 62, a 63 muore già (n/a) :)

Controlla l'esperto nel rimorchio e imposta il file anche lì. Ho dovuto generarlo per evitare di scrivere.

Risolve il problema di generare otto vettori ortogonali.

La funzione di fitness calcola tutti i prodotti scalari a coppie e somma i loro valori assoluti con segno opposto.

Forse sono stato stupidamente fortunato, ma un paio di volte su quattro ho ottenuto un risultato completo (corretto-zero).

È anche divertente fissare alcuni (2-3) vettori e guardare gli altri cercare di allinearsi perpendicolarmente... :)

Lo risolve rapidamente, il che è senza dubbio una buona cosa.

Non mi è piaciuto che mostra nella scheda"Risultati dell'ottimizzazione" un massimo di 20 parametri da ottimizzare.

// L'altro bug è apparso durante il lavoro - con 64 parametri di input non sono più evidenziati in MetaEditor. Vengono semplicemente visualizzati come variabili usuali.

--

Anche il generatore di script è nel trailer.

Genera Expert Advisor e set-file di appropriata "dimensionalità", la dimensionalità è specificata nel parametro durante la generazione.

Si trova nella cartella ...\MetaTrader 5\MQL5\Files, naturalmente.

Potete anche giocare con vettori di una dimensione più piccola.

// Ancora nessuna fortuna con quelli più grandi, stiamo aspettando. :)

A proposito, l'ottimizzatore non ha risolto il problema per cinque vettori nemmeno una volta. Il miglior risultato per cinque vettori è CustomMax == -10

p.s. Più tardi: beh, sì, sono scemo, il risultato massimo per i vettori dispari == -n*(n-1)/2 nelle condizioni specificate nel set-file,

quindi tutto è corretto, l'algoritmo genico trova sempre i massimi con successo. // beh, quasi :)

 
Renat:
Sto già pensando di espandere la gamma.

Evviva! Sono contento che gli sviluppatori abbiano finalmente capito che la gente ha bisogno di un tester senza limitazioni, se mt5 è posizionato come una nuova tappa nell'auto-trading, allora perché i sistemi con grandi calcoli dovrebbero lasciare un ostacolo 64, che sia NS o qualcos'altro.

Aspetto con ansia una build con una correzione e la possibilità di continuare i miei progetti sul tester standard. (perché è troppo costoso scrivere il proprio tester da zero...).

 
yu-sha:

Bella idea, ma gli autori hanno lasciato da parte una piccola caratteristica dei metodi a gradiente che porta a seri problemi di implementazione - il calcolo della derivata privata della funzione obiettivo per ogni parametro adattivo )).

Ma sì, è una soluzione geniale ))))

Supponiamo che questo problema sia risolto, c'è ancora una questione di scegliere il passo di spostamento lungo il gradiente

Lo stesso GA con elementi di "elitarismo" e un gran numero di individui nella popolazione chiude questi problemi in un tempo ragionevole

...

Quando si calcola un gradiente senza derivata parziale, sono necessari diversi punti di prova nelle vicinanze. Avendoli FF puoi anche calcolare il valore del passo minimo per ogni parametro. Poi il passo può essere raddoppiato (partendo da quello minimo) fino a quando il prossimo punto di FF sarà più piccolo del precedente. Trovandolo sul precedente calcoleremo di nuovo il gradiente. E continua.

 

Sono tutti così intelligenti - è orribile!

Oh, sareste così gentili da dirmi come aggiungere più agenti al mio dual-core.

Da qualche parte ho visto sul test (3D, o qualcosa del genere) tutto volare e svolazzare e agenti su metà dello schermo.

Beh, è difficile per me tollerare un test di 2 impostazioni (circa 1200 passaggi) per mezz'ora o più. Grazie.

 
artall:

Tutti sono così intelligenti - è orribile!

Oh, sareste così gentili da dirmi come aggiungere più agenti al mio dual-core.

Da qualche parte ho visto in un test (3D o qualcosa del genere) che tutto volava e svolazzava e gli agenti su mezzo schermo.

Beh, è difficile per me tollerare un test di 2 parametri (circa 1200 passaggi) per mezz'ora o più. Grazie.

Chat in questo thread --> Rete di test multi-core per tutti i partecipanti,

Ci sono abbastanza persone che hanno studiato questo problema in dettaglio.