![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Ah, bien, alors c'est normal du tout.
J'ai également un seul canevas sur mon gif, et c'est le panneau qui consomme le moins de ressources, car je n'ai pas à le redessiner aussi souvent et à saisir le moment où une nouvelle barre arrive.
Super ! Tout vole !
Et à basse vitesse, il se met à jour sans hésiter.J'ai trouvé les bons fichiers. Il n'est pas évident de savoir où, quand et comment regarder les chiffres, mais même sans cela, on peut voir que la toile est beaucoup plus lente, et ce n'est pas seulement une toile au lieu d'un lebble, mais une toile au lieu d'un tas d'étiquettes.
Exécutez l'expert CanvasVsLabels.mq5, sélectionnez le type d'affichageoutType, activez limit_fps, définissez, nIterations, il est de 10000 par défaut. C'est suffisant, vous n'avez pas besoin de le modifier. Les résultats seront alors similaires à ceux présentés ici : https://www.mql5.com/ru/forum/364640/page11#comment_21301589.
Maintenant, les résultats. Min delay,Mid delay etMax delay sont les délais minimum, moyen et maximum, respectivement, pour une exécution. Total, est le temps total pour le nombre total de passes denIterations.
Une fois encore, voici un tableau avec lesrésultats des comparaisons
Il est possible de prendre exactement les mêmes mesures dans l'examinateur, car celui-ci est conçu pour cela. Mais je ne les ai pas encore fait. Je le ferai quand j'aurai du temps libre. Je prévois d'expérimenter un affichage de plusieurs BitmabLabels à l'avenir.
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie
Toile et étiquettes
fxsaber, 2021.03.13 19:26
Je suis le seul à avoir ce genre de résultat ?
Il enlève 15 à 20 %. Apparemment, ma carte vidéo est trop lente.
Il s'avère que ResourceReadImage est très lent. Je m'en suis débarrassé - j'ai une charge nulle.
Je publie à nouveau le tableau de comparaison, mais cette fois avec des histogrammes.
Comparaison des valeurs de retard moyen par passage
Qui, pour une raison quelconque, n'étaient pas comparables à la durée totale de fonctionnement (Total)...
Comparaison du temps de fonctionnement total
Les mesures ont montré que l'affichage basé sur Canvas avec une FPS limitée (Canvas unlimited FPS) est légèrement plus lent que l'affichage basé sur Labels avec une FPS limitée(Labels unlimited FPS). Mais en général, ils sont tous deux adaptés à l'affichage d'informations provenant de processus très chargés.
Comment exécuter le conseiller expert pour prendre des mesures
Le conseiller expert peut prendre des mesures dans le testeur visuel exactement de la même manière. Toutefois, la plage de dates doit être définie dans les paramètres du testeur de manière à avoir au moins autant de barres dans l'historique que la valeur du paramètre d'entréenIterations.
Vous trouverez de plus amples informations, ainsi que les sources, dans la description de la bibliothèque Chart Display: https://www.mql5.com/ru/code/33898.
Bibliothèque spécialement modifiée pour les mesures: https://www.mql5.com/ru/code/download/33898/chartdisplay.mqh
Expert universel de la mesure: https://www.mql5.com/ru/code/download/33898/canvasvslabels.mq5
Pour plus de détails, voir KB : https://www.mql5.com/ru/code/33898
Je voudrais ajouter des mesures plus correctes, réalisées avec le nouveau conseiller expert dans le tout premier message de ce fil. Car ces mesures, qui existent pour le moment, ne sont pas correctes. Mais le premier message, malheureusement, ne peut plus être modifié. Je demande aux modérateurs d'ajouter des mesures plus correctes au début, et de marquer celles qui sont là maintenant comme non pertinentes.
Il s'est avéré que ResourceReadImage est très lent. Je m'en suis débarrassé - aucune charge.
Expert en cours d'exécution CanvasVsLabels.mq5...
Quel est l'intérêt ? Je ne veux pas creuser dans le code maintenant. Comment ces valeurs sont-elles calculées ? Si vous testez dans le testeur, vous devez mesurer le temps total passé sur l'exécution et rien d'autre, mais pas les performances des fragments de code individuels. Dans le cas extrême, ne pas compter l'inite. Et ici, sans mesurer, vous pouvez voir que kanvas est plus lent. Je ne sais pas, peut-être que j'ai une sorte d'anomalie...
Vraiment ?
Avec l'appel, la charge était d'environ 15%, sans - zéro.
Quel est l'intérêt ? Je ne veux pas creuser dans le code maintenant. Comment ces chiffres sont-ils calculés ? Si vous testez dans le testeur de cette manière, vous devez mesurer le temps total passé sur l'exécution et rien d'autre, et non les performances de fragments de code séparés. Dans le cas extrême, ne pas compter l'inite. Et voilà, sans mesures, on peut voir que Kanvas est plus lent. Je ne sais pas, peut-être que j'ai une sorte d'anomalie...
Je ne veux pas creuser dans le code. Je ne veux pas non plus me croire sur parole. :) Je ne sais pas comment vous l'expliquer. Je vous raconte du début à la fin comment j'ai écrit tout le code... Ce serait un article entier. :)
Et il n'y a rien à comprendre du tout à la façon dont un expert effectue des mesures.
Le total est calculé à la fin de la boucle et les valeurs min, mid et max dans le corps de la boucle, après display.push, display.setText et display.update. Rien de compliqué, si vous vous asseyez et regardez bien tout, vous pouvez au moins accéder au code source de Kanvas et Labels. Il n'y a rien de compliqué là non plus, d'ailleurs. À l'exception des méthodes qui dessinent des courbes de Bézier et autres dans Kanvas.Et ici, sans mesures, vous pouvez voir que le kanvas est plus lent. Je ne sais pas, peut-être que j'ai une sorte d'anomalie...
Vous devez me dire à quels paramètres d'entrée Kanvas est lent. Si limit_fps : false, alors c'est évident... :)
Il s'est avéré que ResourceReadImage est très lent. Je m'en suis débarrassé et j'ai eu zéro charge.
Si vous lisez à partir d'une ressource enregistrée au moment de la compilation, vous devez le faire une fois.
Les ressources sont compressées au moment de la compilation.