Répondre
• Page 1 sur 1
Oui, tes arrays MM5[NB_MM] / MM20[NB_MM] sont parfaitement inutiles. Dans ma fonction tu compares directement les MM au lieu de stocker d'abord leur valeur dans les arrays.
Dans MQL5, l'appel aux indicateurs (iMA comme les autres) retourne un handle et n'est destiné à être fait qu'une fois. A chaque itération les données produites par les indicateurs sont calculées par le terminal MT5 (une fois), et l'accès aux données produites se fait en accédant à la mémoire tampon gérée par l'indicateur et permet même d'accéder à une plage de valeurs précédentes, sans recalculs.
Je ne connais pas très bien MQL4 (je pratique plutôt MQL5 qui fonctionne différemment), mais je comprends que iMA opère le calcul à chaque fois qu'elle est appelée, et je comprends que c'est ainsi que fonctionnent de façon générale les appels aux indicateur sous MQL4.
https://docs.mql4.com/indicators/ima
Si on fait une fonction, elle va effectuer ce calcul à chaque appel, multiplié par le nombre d'itérations de la boucle dans tes tests. C'est donc consommateur de ressources de calcul.
Si, ensuite, tu as besoin de consulter la valeur retournée par un ou plusieurs de ces indicateurs pour comparer l'éloignement des prix, ou quoi que ce soit d'autre, tu vas de nouveau appeler iMA et refaire ce calcul, etc.
Dans un tel cas, il peut être judicieux de précalculer ces valeurs et les stocker, pour les réutiliser à ta guise autant que fois que tu le souhaite, sans recalculer quelque chose qui l'a déjà été.
Je ne connais pas très bien MQL4 (je pratique plutôt MQL5 qui fonctionne différemment), mais je comprends que iMA opère le calcul à chaque fois qu'elle est appelée, et je comprends que c'est ainsi que fonctionnent de façon générale les appels aux indicateur sous MQL4.
https://docs.mql4.com/indicators/ima
Si on fait une fonction, elle va effectuer ce calcul à chaque appel, multiplié par le nombre d'itérations de la boucle dans tes tests. C'est donc consommateur de ressources de calcul.
Si, ensuite, tu as besoin de consulter la valeur retournée par un ou plusieurs de ces indicateurs pour comparer l'éloignement des prix, ou quoi que ce soit d'autre, tu vas de nouveau appeler iMA et refaire ce calcul, etc.
Dans un tel cas, il peut être judicieux de précalculer ces valeurs et les stocker, pour les réutiliser à ta guise autant que fois que tu le souhaite, sans recalculer quelque chose qui l'a déjà été.
@Trds : oui je comprends tres bien ce que tu veux dire... suivant la complexité de ton programme et/ou du nombre de conditions, faire les calculs a chaque fois peut effectivement etre consommateur de ressources et millisecondes.
Merci a tout les 2 pour votre aide!
Je vais developper ca ce week end...
Merci a tout les 2 pour votre aide!
Je vais developper ca ce week end...
le code est pas optimisé : il va calculer 8 Moving Average à chaque tick. Alors qu'il ne faut les calculer qu'au début de chaque candle
Sujets similaires
Cherche désespérement un Broker Français + MT4 ou un flux
par Lycopodium » 29 avr. 2016 15:32 (23 Réponses)
par Lycopodium » 29 avr. 2016 15:32 (23 Réponses)
Condition pour être rentable en daytrading/scalping
par Speedygonzales » 20 sept. 2023 23:29 (5 Réponses)
par Speedygonzales » 20 sept. 2023 23:29 (5 Réponses)
