Comment faire pour que la sortie sur un graphique soit en police monospace ? - page 6

 
Nikolai Semko:

Avec MT4, en revanche, le tableau est complètement différent.
Si sur MT5 le travail de Comment et Canvas est à peu près le même, sur MT4 Comment est 1000 fois plus rapide. J'en conclus que dans MT5, le commentaire est implémenté par un BitMap interne, alors que dans MT4, c'est différent. La différence est impressionnante. Je pense que je vais déplacer cette question vers le forum sur les insectes.

Explication détaillée ici : https://www.mql5.com/ru/forum/1111/page2102#comment_6156364

Le commentaire dans MT4 est essentiellement factice et ne provoque pas de redessin du graphique.

 
Renat Fatkhullin:

Explication détaillée ici : https://www.mql5.com/ru/forum/1111/page2102#comment_6156364

Le commentaire dans MT4 est essentiellement faux et ne provoque pas de redessin du graphique.


Et maintenant, pour tirer des conclusions pratiques

1. Il serait agréable de remplacer la série de fonctions qui affectent les performances dans les tests par leurs homologues #define.

2. 90% des dames/personnes présentes ici sont dans des définitions comme on boit des oranges.

4. Il y a un monstre défini sur le forum fxsaber.

5. Peut-être lui demander de créer et de maintenir une bibliothèque de définitions similaires, afin que les simples mortels n'aient pas à se demander dans quel mode le programme fonctionne ?

Que pense la communauté et fxsaber d'une telle suggestion ?

 

Qu'est-ce que les définitions ont à voir avec cela si les gens ne comprennent pas l'outil et essaient de tester pour la vitesse ce qui ne peut pas être testé.

Appeler un commentaire pour le regarder est normal.

L'appeler 1000-10000 fois par seconde est anormal tant d'un point de vue logique (vous ne pouvez pas le regarder) que technologique - cela entraîne des coûts élevés pour ne pas afficher/redessiner l'ensemble du graphique (pas seulement votre ligne).

Vous devez comprendre ce que vous faites. C'est ce que j'ai expliqué en détail dans ma réponse.

 
Renat Fatkhullin:

Qu'est-ce que les définitions ont à voir avec cela si les gens ne comprennent pas l'outil et essaient de tester pour la vitesse ce qui ne peut pas être testé.

Appeler un commentaire pour le regarder est normal.

L'appeler 1000-10000 fois par seconde est anormal tant d'un point de vue logique (vous ne pouvez pas le regarder) que technologique - cela entraîne des coûts élevés pour ne pas afficher/redessiner l'ensemble du graphique (pas seulement votre ligne).

Vous devez comprendre ce que vous faites. C'est ce que j'ai expliqué en détail dans ma réponse.

Et au lieu de cela, vous proposez "donnez-moi un bout de code pour continuer à réfléchir", en ignorant les explications sur les raisons pour lesquelles il n'est pas correct de procéder de cette manière.

Renat, j'ai un EA qui fonctionne ici. Je suis un pigeon et je ne connais rien à ces dessins. Ça marche et c'est génial. Je le soumets à des tests et je constate la dégradation des performances due aux problèmes que j'ai décrits.

Ne serait-il pas logique de faire une définition qui détermine dans quel mode nous travaillons ? Et en mode test/optimisation, il ne sort rien du tout ?

 
Alexey Volchanskiy:

Renat, j'ai un EA qui fonctionne ici. Je suis un pigeon et je ne connais rien du tout à ces dessins. Ça marche et c'est génial. Je le teste et je constate une baisse des performances due aux problèmes que j'ai décrits.

Ne serait-il pas logique de faire une définition qui détermine dans quel mode nous travaillons ? Et en mode test/optimisation, il ne sort rien du tout ?


Ne vous attendez pas à ce que les gens comprennent tout comme ça. Dieu nous préserve que 20% des personnes sur ce forum comprennent le principe d'OOP. Elle peut être comparée à la connaissance d'une voiture. Tous en conduisent, mais très peu comprennent le fonctionnement de ce même moteur à combustion interne et une fraction de % peut en quelque sorte réparer quelque chose.

Mais ce sont tous vos clients).

 
Alexey Volchanskiy:

Renat, j'ai un EA qui fonctionne ici. Je suis un pigeon et je ne connais rien du tout à ces dessins. Ça marche et c'est génial. Je le teste et je constate une baisse des performances due aux problèmes que j'ai décrits.

Ne serait-il pas logique de faire une définition qui détermine dans quel mode nous travaillons ? Et en mode test/optimisation, il ne sort rien du tout ?

Et quel est le problème pour penser et améliorer radicalement tout ?

Il existe déjà une bibliothèque MQL4-MQL5 en mode "ça marche et c'est génial", c'est pourquoi nous devons nous arracher les cheveux. Les gens l'utilisent sérieusement pour comparer la vitesse des deux plateformes.

Et maintenant, vous proposez non pas de réfléchir, mais de fabriquer un autre produit artisanal qui sera brandi partout en disant "MT5 est plus lent".

 
Renat Fatkhullin:

Il existe déjà une bibliothèque MQL4-MQL5 en mode "fonctionne et est géniale", qui vous fait vous arracher les cheveux. Les gens l'utilisent sérieusement pour comparer la vitesse des deux plateformes.

Ce n'est pas une déclaration bien raisonnée.

 
Alexey Volchanskiy:

N'est-il pas logique de faire une définition qui détermine dans quel mode nous travaillons ? Et en mode test/optimisation, il ne sort rien du tout ?

Il existe un outil universel qui vous permet de mesurer la performance du code dans le testeur avec une seule ligne. On peut y voir beaucoup de choses. En particulier, qu'une exécution unique est plus lente qu'une exécution d'optimisation.

Au sujet du commentaire, les développeurs ont donné leur réponse. Jusqu'à présent, j'ai moi-même accéléré l'optimisation de 1,5 à 2 fois par une seule ligne.

Et le SD m'a parlé d'une nuance importante pour la performance.


Se préoccuper des microsecondes d'exécution des fonctions n'est raisonnable que dans les modes d'optimisation. En temps réel, cela ne fait aucune différence. Et le commentaire ne joue aucun rôle dans les performances du conseiller expert en temps réel, même s'il est plus lent d'un ordre de grandeur.


Mais il est un fait que presque personne n'écrit les EA de telle sorte qu'ils s'exécutent aussi vite que possible dans le testeur.

 
Renat Fatkhullin:

Qu'est-ce que les définitions ont à voir avec cela si les gens ne comprennent pas l'outil et essaient de tester quelque chose qui ne peut pas être testé pour la vitesse.

Renat Fatkhullin:

Il existe déjà une bibliothèque MQL4-MQL5 en mode "ça marche et c'est génial" qui vous fait vous arracher les cheveux. Les gens l'utilisent sérieusement pour comparer la vitesse des deux plateformes.


Et personnellement, je ne me sens pas désolé pour le travail accompli. Cesrepères apparemment inutiles se sont avérésne pas être inutiles du tout. Autant de choses utiles qui ont été mises en lumière grâce à votre explication détaillée, et par conséquent, certaines énigmes ont commencé à s'assembler. Je ne peux pas le trouver n'importe où, donc je dois le pincer :)).

Par exemple, bien que j'aie honte de l'avouer, je ne savais pas que la fonction Update() de Kanvas redessine toute la fenêtre, quelle que soit sa taille. Mais pour le comprendre, il m'a suffi de regarder dans les entrailles de CCanvas. Et le fait de connaître au moins ce fait changera la logique du travail et m'évitera des gestes inutiles dans certaines implémentations liées au graphisme. Et Comment n'avait rien à voir avec ça, c'était juste un "juste pour aller au fond des choses". Merci encore !

Ce qui n'est pas clair, c'est que si la fonction Update(false) de MT5 ne dessine rien à l'écran, la fonction de MT4 ne dessine pas toute la fenêtre mais seulement le canevas lui-même. Cela signifie que la fonction ResourceCreate de MT5 ne dessine pas un tableau de pixels sans ChartRedraw(), alors qu'elle le fait dans MT4. Je pense qu'il serait utile dans MT5 également.

 
Nikolai Semko:

ResourceCreate dans MT5 n'affiche pas un tableau de pixels sans ChartRedraw(), mais il le fait dans MT4.

Et il le fait correctement. C'est aussi logique que de ne pas faire de ChartRedraw après avoir modifié les propriétés de l'objet. En utilisant la terminologie de

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie

Erreurs, bogues, questions

Renat Fatkhullin, 2017.12.05 02:51

  • MT5 a un système plus correct pour modifier les objets sur le graphique et vous devez bien comprendre les conséquences du mélange des commandes de lecture et d'écriture.
    il est recommandé de ne pas mélanger les commandes de lecture et d'écriture, mais d'effectuer une lecture et une écriture de masse distinctes.

ChartRedraw devrait être appelé après l'écriture en masse, et non après chaque écriture.

Raison: