Questions sur le MQL4 - page 10

 
Slawa,
OK. Merci.
Maintenant je dois méditer pendant un moment...
 
J'ai hâte de voir une mise à jour de la ME et une nouvelle construction.
C'est impossible d'écrire quelque chose de bien...
Le forum est indispensable en ce sens.
Merci encore.
 
Myxu
essayez d'utiliser ArrayCopy() ;


je l'ai essayé. cela n'a absolument aucun sens. la vitesse est identique.

et avec des variables locales, c'est 5 fois plus rapide.
 
<br / translate="no"> l'a essayé. cela n'a absolument aucun sens. la vitesse est identique.
C'est 5 fois plus rapide avec les variables locales.


Combien de temps cela prend-il dans votre code ?
 
J'ai une dinde où ça prend tout le temps, pratiquement. :)
analyseur de modèle chronométrique statistique :)

Sur chaque barre, il accède aux différents Close[] environ 2000 fois,
Je dois le vérifier avant chaque accès au tableau avec un tas de if().
Je n'essaie même pas de le convertir en HLC :)

mais j'aimerais développer l'idée, car elle apporte quelques bénéfices.
 
1. Combien de temps la tâche prend-elle encore ?
2. Y a-t-il une boucle ou une boucle infinie dans l'indicateur ?
 
J'utilise aussi IndicatorCounted(), mais l'initialisation prend 10-30 secondes sur Athlon 1700... et je veux ajouter d'autres astuces...

Si j'insère cette construction à un seul endroit, la vitesse augmente de 2 fois.

et en général la vitesse d'accès aux tableaux et aux variables locales diffère de 10 fois.
 
Je pensais juste... peut-être que je devrais faire une DLL...
Quelqu'un peut-il recommander un petit compilateur rapide ?
De préférence C ou Pascal.
 
Avec un temps aussi long, il y a clairement quelque chose qui ne va pas avec le code.
Je travaille dans une boucle sans fin, approximativement. 2000 lignes de code, y compris le traitement des tableaux et le redessin des objets du graphique. Une boucle prend environ 10-12 ms. Entre les tics, il parvient à s'enrouler environ 30 à 500 fois.
MT est très rapide. Cherchez le problème dans votre code.
 
er... essayez quelque chose comme ça vous-même...
    t2=LocalTime() ; for(d=5000 ;d>0;d--) for(k=1;k<5000;k++){ z=Close[k];y=Close[k+1];x=Close[k+2] ; z=Open[k];y=Open[k+1];x=Open[k+2] ; }
Raison: