Discussion de l'article "Visualisez le ! Bibliothèque graphique MQL5 similaire à 'plot' du langage R" - page 6

 
Nikolai Semko #:
En fait, j'utilise plusieurs toiles (généralement pas plus de 4).
Il existe toujours un juste milieu. Un extrême consiste à peindre toute la statique et toute la dynamique sur une seule toile, l'autre extrême consiste à peindre tous les objets sur des toiles séparées.
Il est important de ne pas oublier que si vous avez deux canevas avec transparence se chevauchant l'un l'autre, le CPU, (peut-être dans Win10-11 GPU, mais je pense que c'est toujours le CPU), mélangera chaque pixel d'un arrière-plan même homogène (transparence non nulle).
Ici, nous pouvons emprunter à JS la pratique de la mise en cache du canevas ou d'une partie de celui-ci pour améliorer les performances.
En ce qui concerne les cercles anticrénelés, j'ai déjà publié une variante de ce type de cercle, qui est idéale (en termes de performances) pour les cercles dont le rayon est inférieur à ~5 pixels. Je pense que la fonction s'appelait iDot(), et se trouvait dans le code de 3DStars. Elle est très primitive et courte (environ 10 lignes de code). Pour les cercles de plus grand rayon, elle est loin d'être optimale en termes de performances. Pour des rayons plus importants, la fonction la plus performante représente déjà plus de 100 lignes de code.
Oui, après des années passées à établir de nouvelles connexions neuronales dans le cerveau sur le canevas, je peux maintenant faire une bibliothèque sur le canevas à n'importe quel niveau. Il faudrait du temps et de la motivation.
L'algorithme de Wu est considéré comme obsolète.

Je n'ai pas trouvé de recherche sur iDot() ou 3DStars pour voir le code.

Je voulais prendre en compte tout ce qui se trouve sous le canevas, y compris le graphique lui-même (couleur de fond) et la couleur de ses éléments (barres, lignes ask/bid, etc).

En déplaçant ce canevas avec un fond transparent sur lequel sont dessinés des éléments semi-transparents, tous les pixels devraient être dessinés correctement.

Ce n'est pas le cas actuellement :


 
Nikolai Semko #:

Artem, il ne s'agit pas de tâches triviales qui nécessitent de nouvelles connexions neuronales. Par exemple, en SVG, il existe un concept tel que viewBox. J'ai déjà regardé beaucoup de vidéos sur son fonctionnement, lu beaucoup de documentation, écrit beaucoup de code, et il m'arrive encore de rester bloqué. Je n'ai toujours pas les connexions neuronales nécessaires, même s'il m'a semblé plusieurs fois que j'avais tout compris.

Eh bien, nous croyons toujours en vous ;)
 

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

Discussion autour de l'article "Visualisez-le ! Bibliothèque graphique en MQL5 comme analogue de R"

Anatoli Kazharski, 2023.07.31 17:39

...

Je voulais prendre en compte tout ce qui se trouve sous le canevas, y compris le graphique lui-même (couleur de fond) et la couleur de ses éléments (barres, lignes ask/bid, etc.).

En déplaçant ce canevas avec un fond transparent sur lequel sont dessinés des éléments semi-transparents, tous les pixels devraient être dessinés correctement.

Ce n'est pas le cas actuellement :


Voici un exemple où un canevas (avec un cercle bleu) se trouve au-dessus d'un autre canevas (un rectangle bleu avec une image) et là encore, il n'est pas tenu compte de ce qui est dessiné sur le canevas du dessous :


 
Anatoli Kazharski #:

Il n'a pas été possible de trouver une recherche pour iDot() ou 3DStars afin de visualiser le code.

Je voulais prendre en compte tout ce qui se trouve sous le canevas, y compris le graphique lui-même (couleur de fond) et la couleur de ses éléments (barres, lignes ask/bid, etc.).

En déplaçant ce canevas avec un fond transparent sur lequel sont dessinés des éléments semi-transparents, tous les pixels devraient être dessinés correctement.

Ce n'est pas le cas actuellement :


https://www.mql5.com/ru/forum/227736/page72#comment_25130501

Ici aussi, les couleurs sont mélangées à l'arrière-plan.
https://www.mql5.com/ru/forum/451355/page5#comment_48450810
 
Nikolai Semko #:
h ttps://www.mql5.com/ru/forum/227736/page72#comment_25130501

Ici aussi, les couleurs se fondent dans l'arrière-plan.
https://www.mql5.com/ru/forum/451355/page5#comment_48450810

Je vous remercie ! Ce sont des exemples très intéressants ! J'avais donc tort.

Je n'ai pas encore regardé le code en détail, mais pourquoi la transparence n'est-elle pas dessinée comme prévu dans le CCanvas par défaut ?

 
Anatoli Kazharski #:

Je vous remercie ! Ce sont des exemples très intéressants ! J'avais donc tort.

Je n'ai pas encore regardé le code en détail, mais pourquoi la transparence n'est-elle pas dessinée comme prévu dans le CCanvas par défaut ?

Il y a beaucoup de choses qui ne vont pas.
Il semble qu'ils ne l'aient pas terminé parce que le programmeur qui travaillait dessus a été licencié. Je peux me tromper.
 
Nikolai Semko #:
Il y a beaucoup de choses qui ne vont pas.
On a l'impression qu'ils ne l'ont pas terminé parce que le programmeur qui en était chargé a été licencié. Je peux me tromper.

Nikolay, peux-tu faire une liste de ce qu'il est souhaitable de changer dans le CCanvas standard ? A votre avis. Tel qu'il est actuellement, et tel qu'il devrait être. Et pourquoi.

 
Artyom Trishkin #:

Nicholas, pouvez-vous faire une liste de ce qu'il est souhaitable de changer dans la version standard de CCanvas ? A votre avis. Tel qu'il est actuellement, et tel qu'il devrait être. Et pourquoi.

Nous avons besoin d'une nouvelle classe avec moins de fonctions que dans CCanvas. Il est préférable que cette classe soit aussi proche que possible de JS Canvas, qui n'a pas beaucoup de fonctions par essence, pour faciliter l'apprentissage et l'adoption, étant donné que l'ensemble des technologies de l'information évolue vers le web.
mais c'est l'idéal.
Je pourrais probablement écrire quelque chose comme cela moi-même, mais cela prendrait au moins une demi-année à temps plein
bien que personnellement je n'aime pas tout dans JS Canvas, mais pour la standardisation, il serait bon d'implémenter quelque chose comme cela avec de petits changements pour se passer de l'analyse des chaînes de caractères.

ZY mais pour un travail normal, j'ai besoin de refaire le modèle d'événement de MT5, car il est tout simplement horrible

Le canevas dans MT5 est censé fonctionner deux fois plus vite que le canevas JS. Mais pour cela (pour une interface sans décalage) il faut changer beaucoup de choses dans MT5, ce que Renat ne fera jamais.

HTML Canvas Reference
HTML Canvas Reference
  • www.w3schools.com
W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.
 
Nikolai Semko #:

Nous avons besoin d'une nouvelle classe avec moins de fonctions que CCanvas. Il est préférable que cette classe soit aussi proche que possible de JS Canvas, qui n'a pas beaucoup de fonctions par essence, pour faciliter l'apprentissage et l'adoption, étant donné que l'ensemble des technologies de l'information évolue vers le web.
mais c'est l'idéal.
Je pourrais probablement écrire quelque chose comme cela moi-même, mais cela prendrait au moins la moitié d'une année à temps plein
bien que personnellement je n'aime pas tout dans JS Canvas, mais pour la standardisation, il serait bon d'implémenter quelque chose de similaire avec de petits changements pour se passer de l'analyse des chaînes de caractères.

Mais pour un travail normal, nous devons refaire le modèle d'événement de MT5, car il est tout simplement horrible.

Il est clair que tout est "sous le coude", mais la question était un peu différente. Qu'est-ce qu'il est souhaitable de changer/affiner dans la classe existante...

 
Artyom Trishkin #:

Il est clair que tout est "sous le coude", mais la question était un peu différente. Qu'est-ce qu'il est souhaitable de changer/améliorer dans la classe existante...

des méthodes douces pour leur donner vie. Maintenant, je pense qu'il y a même des fonctions dans CCanvas qui ne sont pas documentées.