MT4 iMAOnArray et iBandsOnArray : effet du nombre d'éléments sur les calculs - page 4

 
Sergey Efimenko:
Et cette bibliothèque calcule correctement, si je configure le calcul non pas de l'ensemble du tableau, mais seulement de sa dernière partie (valeurs actuelles) ? D'ailleurs, ce n'est que la moitié du problème, mais qu'en est-il de iBandsOnArray ?

Il y a un paramètre "début", essayez de le limiter.

Il fut un temps où la fonctioniMAOnArray était très lente. Eh bien, j'avais un code qui a été optimisé pendant environ trois heures en utilisantiMAOnArray mais ensuite cette fonction est devenue lente et l'optimisation a pris environ 30 heures.

Je ne sais pas, peut-être que ça a été corrigé maintenant. Mais lorsque j'ai créé l'indicateurMovingAverages.mqh, le même code a été calculé en une heure et demie environ, c'est-à-dire que le temps a été réduit de moitié.

Jen'ai rien à dire sur iBandsOnArray, je n'ai pas vu un tel fichier incluable avec la même tâche dans mql4.

 
Avec iBandsOnArray, l'indicateur est lent au démarrage. Changé en iStdDevOnArray, il démarre instantanément.
 
Alexey Viktorov:

Voilà.

Ouais, eh bien... Mon garçon, va faire un tour.
 
Dmitry Fedoseev:
Avec iBandsOnArray l'indicateur est lent au démarrage. Je l'ai changé en iStdDevOnArray, ça démarre instantanément.
Mais dans le testeur, il est en retard à la fois aveciBandsOnArray et iStdDevOnArray.
 
Dmitry Fedoseev:
Sauf que dans le testeur, il est en retard à lafois aveciBandsOnArray et iStdDevOnArray.
J'ai cru une fois que tu étais un bon programmeur. Tout ce que vous pouvez faire, c'est écarter les doigts et discuter. Tu n'en as pas, c'est pour ça que tu es si en colère ?
 
Alexey Viktorov:

Voilà.

Et maintenant, comparez le résultat de votre code et celui de l'original en mode de lissage en ligne droite LWMA ou SMMA et obtenez des valeurs différentes, parce que ces deux types de lissage utilisent leurs propres valeurs précédentes dans leurs calculs, et en utilisant seulement N éléments de période chaque fois que vous, respectivement, perdez ces données, en plus j'ai éventuellement besoin de périodes de calcul différentes pour iBands et iMA, donc je dois le copier deux fois. Et le tableau initial pour le calcul est utilisé de la même manière. La logique de votre raisonnement est claire pour moi, mais elle est erronée, car en réduisant la longueur du tableau, mais en faisant en même temps chaque copie et en recalculant tous ses éléments, vous augmentez finalement le temps total de calcul de l'indicateur pendant l'optimisation ou le travail avec plusieurs versions de l'indicateur pour différents TF. Dans mon cas, cela ne ralentit que le calcul initial, après quoi seul un nouvel élément est calculé. Le problème réside dans l'implémentation de ces fonctions dans MQL. Les versions auto-rédigées fonctionnent mieux et plus rapidement. Conclusions.
 
Dmitry Fedoseev:
Ouais, eh bien... Mon garçon, va faire un tour.
Ce n'est pas un garçon, c'est un homme très mature. Bien que l'habitude de se référer à tout le monde comme "vous" ne lui rende pas justice, imho :)
 
Sergey Efimenko:
Ce n'est pas un garçon, mais un homme très mature. Bien que l'habitude de se référer à tout le monde comme "vous" ne le rende pas respectable, imho :)
Très mature comment ? Un homme à la retraite ?
 
Sergey Efimenko:
Et maintenant, comparez le résultat de votre code et celui de l'original en mode de lissage linéaire LWMA ou SMMA et obtenez des valeurs différentes, parce que ces deux types de lissage utilisent leurs propres valeurs précédentes dans leurs calculs, et en utilisant seulement N éléments de période à chaque fois vous, respectivement, perdez ces données, de plus j'ai besoin de périodes de calcul différentes pour iBands et iMA, donc je dois les copier deux fois. Et le tableau initial pour le calcul est utilisé de la même manière. La logique de votre raisonnement est claire pour moi, mais elle est erronée, car en réduisant la longueur du tableau, mais en faisant en même temps chaque copie et en recalculant tous ses éléments, vous augmentez finalement le temps total de calcul de l'indicateur pendant l'optimisation ou le travail avec plusieurs versions de l'indicateur pour différents TF. Dans mon cas, cela ne ralentit que le calcul initial, après quoi seul un nouvel élément est calculé. Le problème réside dans l'implémentation de ces fonctions dans MQL. Les versions auto-rédigées fonctionnent mieux et plus rapidement. Veuillez tirer vos propres conclusions.
Même si MODE_SMA est le même, je ne devrais toujours pas l'utiliser.
 
Alexey Viktorov:
J'avais l'habitude de penser que tu étais un bon programmeur. La vérité, c'est que tout ce que vous pouvez faire, c'est écarter les doigts et vous battre. Tu n'en as pas parce que tu es trop en colère ?
Eh bien, rêvez.