Qualsiasi domanda da un PROFI a un SUPER PROFI - 1. - pagina 35

 
Non so di MQL4, ma quando stavo eseguendo una gara in C++, ho notato che il codice che si esegue per primo è più lento del secondo. Certo, ci vuole tempo per allocare prima la memoria. Di solito il 5% più lento.
 
double H_global[1000],L_global[1000];
int start(){
   int i,j,start_local,start_global,GetTick_local,GetTick_global;
   double H_local[1000],L_local[1000];
   start_local=GetTickCount();
   for(j=0;j<10000;j++)
      for(i=0;i<1000;i++){
         H_local[i] = High[i];
         L_local[i] = Low[i];
      }
   GetTick_local = GetTickCount();
//---------------------
   start_global=GetTickCount();
   for(j=0;j<10000;j++)
      for(i=0;i<1000;i++){
         H_global[i] = High[i];
         L_global[i] = Low[i];
      }
   GetTick_global = GetTickCount();
//---------------------   
   Print("локальный массив: " , GetTick_local-start_local , " миллисекунд.");
   Print("глобальный массив: ", GetTick_global-start_global, " миллисекунд.");
return(0);
}

nel registro:

2012.03.23 13:40:50 test EURUSD,H1: array globale: 1406 millisecondi.

2012.03.23 13:40:50 test EURUSD,H1: array locale: 1344 millisecondi.

ora ha senso: le variabili globali impiegano un po' più tempo, quelle locali più velocemente; anche se pensavo che non facesse alcuna differenza, dovrei misurarlo nella funzione chiamata, forse c'è qualche altra differenza

 
IgorM:

nel registro:

2012.03.23 13:40:50 test EURUSD,H1: array globale: 1406 millisecondi.

2012.03.23 13:40:50 test EURUSD,H1: array locale: 1344 millisecondi.

ora ha senso: le variabili globali impiegano un po' più tempo, quelle locali più velocemente; anche se pensavo che non facesse alcuna differenza, dovrei misurarlo nella funzione chiamata, forse c'è qualche altra differenza

Immagino che se li scambiate, i risultati rimarranno gli stessi.
 
Zhunko: Immagino che se li scambiate, i risultati rimarranno gli stessi.

cambiato, e copiato start() a func(), dopo pprinnts start func() :

2012, 03.23 14:11:15 test EURUSD,H1: array locale: 1313 millisecondi.

2012.03.23 14:11:15 test EURUSD,H1: array globale: 1359 millisecondi.

2012.03.23 14:11:15 test EURUSD,H1: call function.....

2012.03.23 14:11:18 test EURUSD,H1: ph-action, array locale: 1312 millisecondi.

2012.03.23 14:11:18 test EURUSD,H1: f-ction, array globale: 1328 millisecondi.




 
IgorM:

cambiato, e copiato start() a func(), dopo pprinnts start func() :

2012, 03.23 14:11:15 test EURUSD,H1: array locale: 1313 millisecondi.

2012.03.23 14:11:15 test EURUSD,H1: array globale: 1359 millisecondi.

2012.03.23 14:11:15 test EURUSD,H1: call function.....

2012.03.23 14:11:18 test EURUSD,H1: ph-action, array locale: 1312 millisecondi.

2012.03.23 14:11:18 test EURUSD,H1: f-ction, array globale: 1328 millisecondi.

Scambiato globale e locale? In questo momento è prima locale, poi globale. Dovrebbe essere il contrario.
 
IgorM:

cambiato, e copiato start() a func(), dopo aver stampato start func() :

2012, 03.23 14:11:15 test EURUSD,H1: array locale: 1313 millisecondi.

2012.03.23 14:11:15 test EURUSD,H1: array globale: 1359 millisecondi.

2012.03.23 14:11:15 test EURUSD,H1: call function.....

2012.03.23 14:11:18 test EURUSD,H1: ph-action, array locale: 1312 millisecondi.

2012.03.23 14:11:18 test EURUSD,H1: f-ction, array globale: 1328 millisecondi.

Come speculazione, l'indirizzo della variabile locale è contato dal punto di chiamata della funzione, l'indirizzo della variabile globale è contato dal punto di chiamata del programma, vale a dire che per accedere alla variabile globale si deve eseguire un'altra azione (aggiungere un offset).
 
Zhunko: Avete scambiato il globale e il locale? Ora quello locale è il primo seguito da quello globale. Dovrei farlo invertire.

L'ho fatto, ma i risultati non sono cambiati, e ho anche dichiarato un array in una funzione separata, chiamato la funzione e confrontato con una chiamata all'array globale

alsu, è un'ipotesi abbastanza logica, ma i miei esperimenti mi hanno portato a un'idea divertente: mql4 è per i lamer, lo dichiari come vuoi, come dicono nel gioco. ))). Forse farò qualche esperimento con mql5 se non mi dimentico, è solo discutere le prestazioni di MT5, forse qualcosa diventerà chiaro.

 

Per caso nessuno ha portato FANN a mql? http://leenissen.dk/fann/wp/download/, o codice simile a mql con NS.

ZS: Non riesco a trovare un NS pronto per la ricerca e google, ho inserito una .dll con FANN, funziona abbastanza bene, ma lo vorrei senza .dll.

 
IgorM:

Per caso nessuno ha portato FANN a mql? http://leenissen.dk/fann/wp/download/, o codice simile a mql con NS.

ZS: Non riesco a trovare un NS pronto per la ricerca e google, ho inserito una .dll con FANN, funziona abbastanza bene, ma lo vorrei senza .dll.


È meglio addestrare la rete in un software specializzato. È molto più veloce. Ed è meglio usarlo nel codice
 
Vinin: È meglio addestrare la rete in un software specializzato. È considerevolmente più veloce. Ed è meglio usarlo nel codice
Lo so, ma ne ho davvero bisogno e... Voglio fare un auto-ottimizzatore nel mio Expert Advisor, senza .dll :)