[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 963

 
Techno:
vous devez trouver un autre moyen d'analyse, les fonctions graphiques sont très lentes.
J'ai tout supprimé comme vous l'avez dit et la vitesse a augmenté de 60-70%, mais il est maintenant plus difficile de voir quel ordre se trouve où sur le graphique. Et je n'ai pas encore appliqué les conseils d'Igor avec if.
 
volshebnik:
J'ai tout supprimé comme vous l'avez dit et la vitesse a augmenté de 60-70%, mais il est maintenant plus difficile de voir quel ordre se trouve où sur le graphique. Et je n'ai pas encore appliqué les conseils d'Igor avec if.
Cela ne donnera pas de grandes performances, seulement quelques cycles d'horloge. Dites-nous exactement ce que vous voulez afficher sur le graphique, nous pourrons réfléchir à la manière de le faire sans perte de performance.
 
Techno:
Cela ne vous donnera pas beaucoup de performance, juste quelques calculs. Dites-nous exactement ce que vous voulez afficher sur le graphique - nous pouvons réfléchir à la manière de le faire sans perte de performance
.


si(NormalizeDouble(Bid,Digits)<=NormalizeDouble(TL_TPdown[B],Digits)

La question ne concerne même pas le nombre de cycles, mais l'optimisation des calculs - il existe des informations sur le calcul complet des conditions dans mql4 - elles ont été écrites à plusieurs reprises sur le forum.

dans mql5, un calcul réduit des conditions a déjà été implémenté.

 
Techno:
Cela ne vous apportera pas beaucoup de performance, juste quelques cycles d'horloge. Dites-moi exactement ce que vous voulez mettre sur le graphique, nous pourrons réfléchir à la manière de le faire sans perdre en performance.
Idéalement, j'ai besoin du nombre d'ordres au marché avec leurs signes de différence par rapport aux autres ordres au moment de leur ouverture. Je crois savoir que vous pouvez les définir en temps réel et les supprimer pendant les tests. C'est tout simplement plus pratique et, encore une fois, plus rapide pour voir ce qui s'est ouvert correctement et ce qui ne l'a pas fait.
 
IgorM:


si(NormalizeDouble(Bid,Digits)<=NormalizeDouble(TL_TPdown[B],Digits)

La question ne concerne même pas le nombre de cycles, mais l'optimisation des calculs - il existe des informations sur le calcul complet des conditions dans mql4 - cela a été écrit à plusieurs reprises sur le forum.

dans mql5 un calcul réduit des conditions est déjà implémenté

oui c'est compréhensible, mais par priorité nous devons d'abord décider ce qui empêche le Conseiller Expert de tester...
 
Techno:
oui c'est vrai, je vois, mais sur la priorité devrait d'abord décider ce qui empêche l'expert de tester...


bien, si par priorité, il suffit de faire une copie de l'EA - dans la copie supprimer tous les Comment(), Print() et les graphiques, et tout dans le testeur pour l'optimisation, trouver les paramètres approximatifs, commencer à tester année par année, et ensuite assembler la version finale avec les graphiques

Je l'ai fait.

 
Bonjour, je cherche toujours à savoir quand le dernier ordre a été clôturé par rapport à la barre actuelle. L'idée est d'interdire à l'EA de faire une transaction si la position a été clôturée pendant la barre actuelle. Dans certains cas, il ouvre un nouvel ordre juste après le stop loss. Si je regarde le code que j'utilise, il ne semble pas être le bon. Je vous remercie d'avance.
for(int e1=1;e1<OrdersHistoryTotal();e1++)
   {
    if(OrderSelect(e1-1,SELECT_BY_POS,MODE_HISTORY)==true)
      {
         if(OrderSymbol()!=Symbol()){continue;}
         int Cl_time=OrderCloseTime();
         if(Cl_time>Time[0])
            {
              Trade=False; 
            }
            else
            {
             Trade=true;
            }
      }
   }
 
IgorM:


le graphique est sûr de ralentir

Et n'oubliez pas que dans mql4 il y a un calcul complet des conditions dans if(), c'est-à-dire que si vous avez plusieurs && alors toutes les valeurs seront calculées et comparées, bien qu'un seul faux soit suffisant pour que la construction avec && soit fausse.

il est possible de le diviser en plusieurs if()

dans ce cas, après que le premier if() n'ait pas été exécuté, toute la structure ci-dessous ne sera pas prise en compte

Igor, merci ! J'ai raté quelque chose ici... ((((( Je n'ai pas tout suivi ( Votre variante a donné une augmentation de vitesse de 35%. Total avec le "nettoyage" des graphiques et + si la vitesse a presque doublé - environ 125-130% - c'est déjà quelque chose.
 
Pourquoi la vitesse du testeur diminue-t-elle vers la fin du passage de la troisième année ?
 
volshebnik:
Pourquoi la vitesse du testeur diminue-t-elle vers la fin de la troisième année ?
Y a-t-il un dépassement des commandes historiques?