Toute question d'un PROFI à un SUPER PROFI - 1. - page 35

 
Je ne connais pas MQL4, mais lorsque je faisais une course en C++, j'ai remarqué que le code que l'on exécute en premier est plus lent que le second. Il est certain qu'il faut du temps pour allouer la mémoire en premier. Généralement 5% plus lent.
 
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);
}

dans le journal :

2012.03.23 13:40:50 test EURUSD,H1 : tableau global : 1406 millisecondes.

2012.03.23 13:40:50 test EURUSD,H1 : tableau local : 1344 millisecondes.

maintenant cela a du sens : les variables globales prennent un peu plus de temps, les locales plus rapidement ; bien que je pensais que cela ne faisait pas de différence, je devrais le mesurer dans la fonction appelée, peut-être y a-t-il une autre différence

 
IgorM:

dans le journal :

2012.03.23 13:40:50 test EURUSD,H1 : tableau global : 1406 millisecondes.

2012.03.23 13:40:50 test EURUSD,H1 : tableau local : 1344 millisecondes.

maintenant cela a du sens : les variables globales prennent un peu plus de temps, les locales plus rapidement ; bien que je pensais que cela ne faisait pas de différence, je devrais le mesurer dans la fonction appelée, peut-être qu'il y a une autre différence

Je suppose que si vous les échangez, les résultats resteront les mêmes.
 
Zhunko: Je suppose que si vous les échangez, les résultats resteront les mêmes.

modifié, et copié start() vers func(), après avoir imprimé start func() :

2012, 03.23 14:11:15 test EURUSD,H1 : tableau local : 1313 millisecondes.

2012.03.23 14:11:15 test EURUSD,H1 : tableau global : 1359 millisecondes.

2012.03.23 14:11:15 test EURUSD,H1 : appel fonction.....

2012.03.23 14:11:18 test EURUSD,H1 : ph-action, tableau local : 1312 millisecondes.

2012.03.23 14:11:18 test EURUSD,H1 : f-ction, tableau global : 1328 millisecondes.




 
IgorM:

modifié, et copié start() vers func(), après avoir imprimé start func() :

2012, 03.23 14:11:15 test EURUSD,H1 : tableau local : 1313 millisecondes.

2012.03.23 14:11:15 test EURUSD,H1 : tableau global : 1359 millisecondes.

2012.03.23 14:11:15 test EURUSD,H1 : appel fonction.....

2012.03.23 14:11:18 test EURUSD,H1 : ph-action, tableau local : 1312 millisecondes.

2012.03.23 14:11:18 test EURUSD,H1 : f-ction, tableau global : 1328 millisecondes.

Echanger le global et le local ? Pour l'instant, c'est d'abord local, puis mondial. Ce devrait être l'inverse.
 
IgorM:

modifié, et copié start() vers func(), après avoir imprimé start func() :

2012, 03.23 14:11:15 test EURUSD,H1 : tableau local : 1313 millisecondes.

2012.03.23 14:11:15 test EURUSD,H1 : tableau global : 1359 millisecondes.

2012.03.23 14:11:15 test EURUSD,H1 : appel fonction.....

2012.03.23 14:11:18 test EURUSD,H1 : ph-action, tableau local : 1312 millisecondes.

2012.03.23 14:11:18 test EURUSD,H1 : f-ction, tableau global : 1328 millisecondes.

A titre de spéculation, l'adresse de la variable locale est comptée à partir du point d'appel de la fonction, l'adresse de la variable globale est comptée à partir du point d'appel du programme, c'est-à-dire que pour accéder à la variable globale, il faut effectuer une action supplémentaire (ajouter un offset).
 
Zhunko: Avez-vous échangé le global et le local ? Maintenant, le local est le premier suivi du global. Je devrais le faire inverser.

Je l'ai fait, mais les résultats n'ont pas changé. J'ai également déclaré un tableau dans une fonction distincte, appelé la fonction et comparé à un appel de tableau global

alsu, c'est une hypothèse assez logique, mais mes expériences m'ont conduit à une idée amusante : mql4 est pour les lamers, vous le déclarez comme vous voulez, comme ils disent dans le jeu. ))). Peut-être que je ferai quelques expériences avec mql5 si je n'oublie pas, il s'agit juste de discuter des performances de MT5, peut-être que quelque chose deviendra clair.

 

Par hasard, personne n'a porté FANN vers mql ? http://leenissen.dk/fann/wp/download/, ou un code similaire à mql avec NS.

ZS : Je n'arrive pas à trouver un NS prêt à l'emploi en cherchant sur google, j'ai branché un .dll avec FANN, ça marche plutôt bien, mais j'aimerais que ce soit sans .dll.

 
IgorM:

Par hasard, personne n'a porté FANN vers mql ? http://leenissen.dk/fann/wp/download/, ou un code similaire à mql avec NS.

ZS : Je n'arrive pas à trouver un NS prêt à l'emploi en cherchant sur google, j'ai branché un .dll avec FANN, ça marche plutôt bien, mais j'aimerais que ce soit sans .dll.


Il est préférable de former le réseau dans un logiciel spécialisé. C'est beaucoup plus rapide. Et il est préférable de l'utiliser dans le code
 
Vinin: Il est préférable d'entraîner le réseau dans un logiciel spécialisé. Il est considérablement plus rapide. Et il est préférable de l'utiliser dans le code
Je sais, mais j'en ai vraiment besoin et... Je veux faire un auto-optimiseur dans mon Expert Advisor, sans .dll :)