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

 
Renat Fatkhullin:

Quel est le problème d'y réfléchir et de l'améliorer radicalement ?

Il y a déjà une bibliothèque MQL4-MQL5 en mode "ça marche et c'est génial" qui vous arrache 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 créer un nouvel outil de pointe qui sera brandi en disant "MT5 est plus lent".


Je ne comprends rien. Je suggère, une fois de plus, si fxsaber a le temps et le désir :

1. Faire une bibliothèque pour MT5 (optionnellement pour MT4), qui désactiverait les fonctions inutiles (pour l'instant, les graphiques) en mode testeur/optimiseur.

2. Pour ce faire, il faut envelopper ces fonctions coûteuses dans des définitions et, selon le mode de fonctionnement, les activer ou les désactiver

Il n'est pas nécessaire d'être aussi émotif à ce sujet, personne n'attaque MT5.

 
fxsaber:

Il existe un outil universel qui vous permet de mesurer la performance du code dans le testeur avec une seule ligne. Nous avons réussi à voir beaucoup de choses là-bas. 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 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 c'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.

Veuillez rédiger une FAQ sur la manière d'y parvenir. Veuillez avoir toutes vos pensées en un seul endroit. Nous les mettrons dans votre blog, à d'autres endroits, je ferai peut-être un clip vidéo sur youtube et le mettrai sur la chaîne MQ. Vous avez sans doute une grande expérience de ces choses systémiques, partageons-la pour le bien commun !
 
Alexey Volchanskiy:
Veuillez rédiger une FAQ sur la manière d'y parvenir. Que toutes les pensées soient réunies en un seul endroit.

Il y a un grand fil de discussion juste pour ça. Peut-être que quelqu'un consacrera beaucoup de temps et d'efforts à compiler une FAQ section par section sur la base des nombreux messages de ce fil.


Et pour les performances, j'utilise toujours la même recette - TesterBenchmark + profiler. Et, bien sûr, trouver un équilibre raisonnable entre les caractéristiques du testeur et celles du métier réel. C'est ainsi que MT4Orders est écrit. Le programme vise un travail rapide dans le testeur et un travail idéal sur le compte réel. À cette fin, nous devons comprendre qu'il y a certaines vérifications (parfois coûteuses) dans le même testeur qui ne sont pas nécessaires pour le commerce réel. Cela permet de réaliser de grandes économies. Et la mise en cache du même historique, etc. C'est-à-dire qu'il est nécessaire d'écrire des bibliothèques qui ont parfois dans leurs tripes des logiques différentes pour le testeur et le réel. Trade.mqh, malheureusement, n'est pas une telle bibliothèque.

Особенности языка mql5, тонкости и приёмы работы
Особенности языка mql5, тонкости и приёмы работы
  • 2017.02.24
  • www.mql5.com
В данной теме будут обсуждаться недокументированные приёмы работы с языком mql5, примеры решения тех, или иных задач...
 
fxsaber:

Il y a un grand fil de discussion juste pour ça. Peut-être que quelqu'un consacrera beaucoup de temps et d'efforts à compiler une FAQ section par section sur la base des nombreux messages de ce fil.


Et pour les performances, j'utilise toujours la même recette - TesterBenchmark + profiler. Et bien sûr, trouvez un équilibre raisonnable entre les caractéristiques du testeur et celles du commerce réel. C'est ainsi que MT4Orders est écrit. Le programme vise un travail rapide dans le testeur et un travail idéal sur le compte réel. À cette fin, nous devons comprendre qu'il y a certaines vérifications (parfois coûteuses) dans le même testeur qui ne sont pas nécessaires pour le commerce réel. Cela permet de réaliser de grandes économies. Et la mise en cache du même historique, etc. C'est-à-dire qu'il est nécessaire d'écrire des bibliothèques qui ont parfois dans leurs tripes des logiques différentes pour le testeur et le réel. Trade.mqh, malheureusement, n'est pas une telle bibliothèque.

C'est ce que je voulais dire dans mes messages précédents. Faire une FAQ sur la branche ci-dessus est la tâche la plus importante. Prenons l'humble tâche de réaliser une FAQ sur l'accélération de l'optimisation. Vous écrivez simplement vos pensées, s'il y a du code, ajoutez du code. Je vais essayer de le résumer, de le brosser, puis nous nous mettrons d'accord et le publierons. Je ferai le clip, j'ai beaucoup d'expérience, pas de problème.
 
Alexey Volchanskiy:
Prenons une tâche modeste - faire une FAQ sur l'accélération de l'optimisation.

L'altruisme est parfois une bonne chose. Mais le temps ne m'appartient pas, il appartient à la Famille.

Des codes et des recettes humbles sont partagés. Cela semble suffisant.

Je ne possède aucun secret.

 
fxsaber:

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

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

Oui, mais si j'ai un petit canevas, disons 130x80 pixels, ce qui représente moins de 1% de la fenêtre totale et que je dois y afficher les informations actuelles. Ainsi, dans MT4, je peux le faire sans redessiner tout l'écran avec Update(false), mais dans MT5, je dois redessiner tout l'écran à chaque fois. Et c'est deux ordres de grandeur plus gourmands en ressources. Et il ne s'agit pas d'un test, mais d'un sujet de travail.
 
Nikolai Semko:
Oui, mais si j'ai un petit canevas, disons 130x80 pixels, ce qui représente moins de 1% de la fenêtre totale, et que je dois y afficher des informations actuelles. Ainsi, dans MT4, je peux le faire sans redessiner tout l'écran avec Update(false), mais dans MT5, je dois redessiner tout l'écran à chaque fois. Et c'est deux ordres de grandeur plus gourmands en ressources. Et il ne s'agit pas d'un test, mais d'un sujet de travail.

Je suis sûr que l'écran n'est jamais partiellement redessiné lors d'un kanvas ou de toute autre action.

 
fxsaber:

L'altruisme est parfois une bonne chose. Mais le temps ne m'appartient pas, il appartient à la Famille.

Des codes et des recettes humbles sont partagés. Cela semble suffisant.

Je n'ai pas de secrets.


La modestie, c'est génial ! Je suis aussi une personne modeste. L'altruisme est pour la défunte Mère Teresa dans la plupart des cas. Bien que, parfois, les racines de cette mauvaise maladie - l'altruisme - germent en moi aussi ;)))

 
fxsaber:

Il est certain que l'écran n'est jamais partiellement redessiné lors d'un kanvas ou de toute autre action.


Oui, j'avais tort. Je me suis trompé en disant queResourceCreate sans ChartRedraw dans MT4 redessine le canevas à chaque fois. Il ne le fait qu'une fois de temps en temps, alors que MT5 ne le fait pas du tout.

Oui, bien sûr que je suis stupide. Au niveau du matériel, le contexte de l'écran ne peut pas modifier seulement une partie de l'écran, mais l'ensemble de l'écran.
Je l'ai compris en introduisant un petit délai Sleep(10) :

Dossiers :
Raison: