Una libreria rapida e gratuita per MT4, per la gioia dei neuralnetworkers - pagina 8

 
newerty >> :

Puoi dirmelo per favore? Come posso fare in modo che il mio EA commercializzi più simboli contemporaneamente?

Per esempio oro, gbpusd, nzdusd, audusd ecc...

Su ogni coppia, ovviamente diversi S/L.

Clonare MT4... consulente clone....???? E correre allo stesso tempo?

Basta mettere l'EA su diversi grafici.

Lo StopLoss su ogni coppia è diverso.


L'unica cosa che non puoi fare è appendere un altro EA su una coppia occupata da un EA, o fare trading manuale, perché i numeri magici non vengono utilizzati. Cioè non più di un EA per coppia.

 

Yuri, potresti farmi un esempio delle impostazioni (timeframe, periodo, ecc.) che ti danno un gran numero di trade?

 
Solver.it >> :

Yuri, potresti farmi un esempio delle impostazioni (timeframe, periodo, ecc.) che ti danno un gran numero di trade?

A pagina 6 di questo thread c'è un estratto del backtest. È tutto lì.

 

Se la linea

if (IsOptimization() || IsTesting()) {


è sostituito da

if (IsOptimization()){


allora i risultati della singola corsa diventano più stabili.

Mi sono imbattuto in un problema diverso: la rete si adatta molto rapidamente ai dati, grafici come un righello nel tester, ma i forward e backtest mostrano un carattere della curva molto diverso.

 
Kharin >> :

Se la stringa

if (IsOptimization() || IsTesting()) {


da sostituire con

if (IsOptimization()){


allora i risultati della singola corsa diventeranno più stabili.

Mi sono imbattuto in un problema diverso: la rete si adatta molto rapidamente ai dati, grafici come un righello nel tester, ma i forward e backtest mostrano un carattere della curva molto diverso.

Questo è autoesplicativo, perché la rimozione di questa funzione disabilita l'adattamento in modalità test. Ma ho lasciato questa caratteristica nell'EA di proposito. Più instabili sono i risultati su diverse esecuzioni del test adattato, più è probabile che la rete non abbia imparato nulla in particolare, perché è solo un'altra epoca e tutto è già abbastanza diverso. Cioè se i risultati instabili mostrano che la griglia non è sicura sul campione di prova, allora non possiamo nemmeno menzionare in avanti - neuronka non ha nemmeno visto le loro citazioni.

 
È una questione di gusti, naturalmente, ma metterei questa scelta nelle variabili esterne. Tuttavia, l'ho fatto)))
 
Reshetov >> :

Ripeto: questa linea non porta alcun carico informativo. Il segno di ret non cambia, mentre i trade vengono aperti in base a valori positivi o negativi ret

Il segno è ovvio. È anche ovvio che senza un deuce questa funzione restituisce un valore significativo della risposta media del comitato di maglie, ma con un deuce è una stronzata. Tenendo conto che la stessa funzione è chiamata nella normale esecuzione delle griglie dopo l'addestramento ed è meglio rifiutare i piccoli valori di ret (sia positivi che negativi) senza generare accordi da essi, questa linea contiene davvero informazioni importanti.

Non hai ancora risposto perché insegni le reti solo su esempi negativi?

 
Kharin >> :

Mi sono imbattuto in un problema diverso: la rete si adatta molto rapidamente ai dati, grafici come un righello nel tester, ma i forward e backtest mostrano un carattere molto diverso della curva.

Sì, nella sua forma attuale, l'Expert Advisor non esegue valutazioni di apprendimento. Se cambiamo la logica di raccolta dei dati, potremmo inserire un paio di chiamate: f2M_test (con i dati di validazione, non quelli di allenamento) e f2M_get_MSE, fermando l'allenamento quando l'errore inizia a crescere.

 

Yuri, voglio fare una domanda off-topic: è possibile impostare una griglia separata per SL (diciamo per volatilità - fare previsioni, e adattare SL a quello)?

Forse questo aiuterebbe le griglie di paternoster a imparare in modo più coerente?

 

Yuri, credo di aver trovato un'altra imprecisione nel codice... Stavo curiosando nel mio codice per risultati di apprendimento strani e ho trovato questo:

double ann_pnn() {
...
    ret = 2 * ret / AnnsNumber;

È un must:

ret = ret / AnnsNumber;

Il fatto che l'autore della libreria nel suo EA, per ragioni che non capisco, ha diviso la griglia a metà per le posizioni corte e lunghe rispettivamente in pari e dispari con i rispettivi cicli:

for (i = 0; i < AnnsNumber; i += 2) - для четных С ПРИРАЩЕНИЕМ "2" !!!
for (i = 1; i < AnnsNumber; i += 2) - для нечетных

Da qui il doppio nel denominatore. Non è necessario nel nostro caso. Anche se è chiaro che non avrà molto effetto sui risultati dell'allenamento...

Il significato di questo ciclo (funzioni ann_pnn e run_anns) mi sfugge completamente...

for (i = 0; i < AnnsNumber; i++) {    ret += AnnOutputs[i];    }

Se abbiamo una griglia con un neurone di uscita, dove otteniamo 16 uscite? O è un comitato di 16 maglie? Questo è ciò verso cui propendo... Allora la domanda è: che senso ha? Ho lasciato anche questo pezzo invariato per ora, finché non ne capirò finalmente il significato... Qualcuno ha qualche idea al riguardo? Per favore, condividi...