Ottimizzazione nel tester di strategia - pagina 2

 

ha scritto un EA, ha eseguito l'ottimizzazione, guarda.... e via... Mi sembra che https://www.mql5.com/ru/docs/series Copy... stanno lavorando lentamente.

Документация по MQL5: Доступ к таймсериям и индикаторам
Документация по MQL5: Доступ к таймсериям и индикаторам
  • www.mql5.com
Доступ к таймсериям и индикаторам - Документация по MQL5
 

Sto ottimizzando rapidamente. Non ho lamentele. Ultimamente, però, l'ottimizzazione non parte subito, ma si blocca sul posto (si può sentire il disco che lavora sodo per fare qualcosa). Devo saltare costantemente da un Access Point all'altro. Solo allora l'ottimizzazione comincia a funzionare.

 
gumgum:

e via... Mi sembra chehttps://www.mql5.com/ru/docs/seriesCopy... funziona lentamente.

Non è molto chiaro cosa intendi con questo.

Spiegati meglio.

 
gpwr:

Sto ottimizzando rapidamente. Non ho lamentele. Ultimamente, però, l'ottimizzazione non parte subito, ma si blocca sul posto (si può sentire il disco che lavora sodo per fare qualcosa). Devo saltare costantemente da un Access Point all'altro. Solo allora l'ottimizzazione comincia a funzionare.

Potrebbe descrivere la situazione in modo più dettagliato, se possibile? Quanto tempo bisogna aspettare? Cosa (se c'è qualcosa) viene scritto nel registro?

 
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... Non ho bisogno di questa ottimizzazione, quindi l'ho disattivata...

Cercate di ottimizzare prima alcuni parametri, poi altri, aumentando il passo. Poi si può eseguire un'altra volta all'interno del campione.
 
alexvd:

Non è molto chiaro cosa intendi.

Spiegati meglio.

Per esempio:

double open(string sym,ENUM_TIMEFRAMES tf,int ps)
{
double ren[1]={EMPTY_VALUE};
CopyOpen(sym,tf,ps,1,ren); 
return(ren[0]); 
}

Se chiedete gli ultimi 50000 valori e misurate il tempo per leggere dal file, la differenza è ~0%~30%. 50000 valori e misurare il tempo, scrivere su file, poi misurare il tempo per leggere da file, allora la differenza è ~0%~30% a favore del primo.

Документация по MQL5: Файловые операции / FileWrite
Документация по MQL5: Файловые операции / FileWrite
  • www.mql5.com
Файловые операции / FileWrite - Документация по MQL5
 
gumgum:

Ecco un esempio:

allora la differenza è ~0%~30% a favore del primo.

Quindi legge più velocemente dal file?

Perché copiare un valore alla volta quando puoi copiarne 50.000 in una volta (se ne hai così tanti)?

 
alexvd:

Quindi legge più velocemente dal file?

Perché copiare un valore alla volta quando puoi copiarne 50.000 in una volta (se ne hai così tanti)?

Dal file è più lento. Allora perché una tale differenza tra "subito 50000" e l'ultima chiamata?

 
gumgum:

Allora perché c'è una tale differenza tra "subito 50.000" e l'ultima chiamata?

L'aritmetica è semplice (i numeri sono approssimativi, ma l'ordine di grandezza è importante).

Accesso a un elemento dell'array ~ 5 cicli di CPU.

La chiamata della funzione è di ~100 cicli di clock.

Questo fa la differenza che una singola chiamata di funzione per ottenere la quantità di dati richiesta alla volta è più economica in termini di velocità di esecuzione.

 

La discussione sembra essere entrata nello specifico del codice di un particolare EA. Ma ho notato che quasi tutto il tempo è speso per il lavoro preparatorio (più del 90%), non importa quale EA sia ottimizzato. E così è con ogni esecuzione (passaggio nel registro) con nuovi parametri di input che vengono ottimizzati. Quindi non importa quanto bene ottimizziate il vostro codice, otterrete solo un guadagno di prestazioni di un paio di punti percentuali.

Peralexvd: Si prega di vedere il primo e il terzo post di questo thread: li ho descritti in dettaglio con esempi e log.

Se un tester potesse fare il lavoro preliminare solo una volta durante l'ottimizzazione e poi calcolare l'Expert Advisor enumerando i dati di input, il tempo di ottimizzazione sarebbe almeno un ordine di grandezza più breve. Poi potremmo parlare del codice stesso dell'Expert Advisor.

Motivazione: