Discussion de l'article "Création d'indicateurs multicolores dans MQL5"

 

Un nouvel article Création d'indicateurs multicolores dans MQL5 a été publié :

Dans cet article, nous verrons comment créer des indicateurs multicolores ou convertir les indicateurs existants en multicolores. MQL5 permet de représenter les informations sous une forme pratique. Désormais, il n'est plus nécessaire de regarder une douzaine de graphiques avec des indicateurs et d'effectuer des analyses du RSI ou des niveaux stochastiques, il est mieux simplement de peindre les bougies avec des couleurs différentes selon les valeurs des indicateurs.

Couleur RSI

Auteur : Дмитрий Александрович

 
Bien détaillé, merci beaucoup. Je l'ai trouvé très utile.
 
Je comprends que sur mql4 le gradient sur les chandeliers ne peut pas être représenté ?
 

omg, merci pour cette ligne :

L'ordre des tampons doit être spécial : d'abord les tampons de données de l'indicateur, puis les tampons d'index de couleur.

J'ai cru que je devenais un peu fou en essayant de dessiner des graphiques en 2 couleurs (j'ai ordonné les tampons et cela a fonctionné sans problème !)

Merci beaucoup !

 
Très bien, je trouve qu'il est très difficile de créer une règle de coloration avec Stochastic. Avez-vous un exemple ?
 
Les commentaires qui ne se rapportent pas à ce sujet ont été déplacés dans la rubrique "Messages hors sujet".
 

Bonjour !

J'ai rencontré un problème lors de l'utilisation de plusieursstyles de dessin en même temps. Par exemple, il faut dessiner un canal peint comme bolingjder et au milieu de celui-ci il y a une ligne centrale. Voici un exemple :

SetIndexBuffer(0, Buf1, INDICATOR_DATA);
SetIndexBuffer(1, Buf2, INDICATOR_DATA);

SetIndexBuffer(2, Buf3, INDICATOR_DATA) ;

PlotIndexSetInteger(0, PLOT_DRAW_TYPE, DRAW_FILLING);

PlotIndexSetInteger(2, PLOT_DRAW_TYPE, DRAW_LINE) ;

Avec ce type de tracé, seul le canal peint est affiché. Si vous changez l'ordre - utilisez d'abord la ligne du milieu, puis le canal peint, tout va bien. Mais nous avons besoin de cet ordre, car il ne constitue qu'une partie de l'indicateur.

Si vous utilisez DRAW_LINE au lieu de DRAW_FILLING, tout va bien aussi - il ne dessine que trois lignes - un canal non peint et une ligne au milieu.

J'ai essayé différentes combinaisons, séquences et nombre de tampons, points de dessin et autres choses, mais rien ne fonctionne. Par exemple, s'il y a un tampon avec le type de dessin DRAW_FILLING, tout ce qui suit n'est pas affiché ou est mal dessiné. Je serai reconnaissant pour toute aide, car je ne crois pas qu'il soit impossible de dessiner des indicateurs complexes de différents styles en même temps.


 
Ruslan Piraliyev SetIndexBuffer(1, Buf2, INDICATOR_DATA);

SetIndexBuffer(2, Buf3, INDICATOR_DATA) ;

PlotIndexSetInteger(0, PLOT_DRAW_TYPE, DRAW_FILLING);

PlotIndexSetInteger(2, PLOT_DRAW_TYPE, DRAW_LINE) ;

Avec ce type de tracé, seul le canal peint est affiché. Si vous changez l'ordre - utilisez d'abord la ligne du milieu, puis le canal peint, tout va bien. Mais nous avons besoin de cet ordre, car il ne constitue qu'une partie de l'indicateur.

Si vous utilisez DRAW_LINE au lieu de DRAW_FILLING, tout va bien aussi - il ne dessine que trois lignes - un canal non peint et une ligne au milieu.

J'ai essayé différentes combinaisons, séquences et nombre de tampons, points de dessin et autres choses, mais rien ne fonctionne. Par exemple, s'il y a un tampon avec le type de dessin DRAW_FILLING, tout ce qui suit n'est pas affiché ou est mal dessiné. Je serai reconnaissant pour toute aide, car je ne crois pas qu'il soit impossible de dessiner des indicateurs complexes de différents styles en même temps.


L'indice tampon ne doit pas coïncider avec l'indice de construction. Ils ont leur propre indication. Essayez PlotIndexSetInteger(1, PLOT_DRAW_TYPE, DRAW_LINE);

 
Alexey Viktorov #:

L'index de la mémoire tampon ne doit pas être le même que celui de la construction. Ils ont leur propre indication. Essayez PlotIndexSetInteger(1, PLOT_DRAW_TYPE, DRAW_LINE);

Merci ! J'ai compris et tout s'est mis en place immédiatement).

Je ne pensais pas qu'ils avaient des indexations différentes. Il s'avère que la liaison des tampons au point de dessin se déroule comme il semble.

 
Alexey Viktorov #:

L'index de la mémoire tampon ne doit pas être le même que celui de la construction. Ils ont leur propre indication. Essayez PlotIndexSetInteger(1, PLOT_DRAW_TYPE, DRAW_LINE);

Pourriez-vous me dire encore une chose, puis-je changer l'ordre des lignes pour que la ligne souhaitée soit en haut ? Ou est-ce seulement en fonction de l'ordre de déclaration des tampons ? Par exemple, je voulais que le 0ème tampon corresponde à la ligne principale, et que le canal de remplissage soit à la fin, mais il se superpose à tous les autres). C'est pratique car j'ai l'intention d'utiliser l'indicateur dans l'Expert Advisor pour récupérer les données de manière pratique.

 
Ruslan Piraliyev #:

Pourriez-vous me dire encore une chose, pouvez-vous changer l'ordre des lignes de manière à ce que la ligne nécessaire soit en haut ? Ou est-ce seulement en fonction de l'ordre de déclaration des tampons ? Par exemple, je voulais que le 0e tampon corresponde à la ligne principale, et le canal de remplissage était à la fin, mais il se superpose à tous les autres). C'est pratique parce que j'ai l'intention d'utiliser l'indicateur dans l'Expert Advisor pour récupérer les données de manière pratique.

Je n'y comprends rien. Et quelle est la différence entre le numéro de la mémoire tampon et le nombre de données à extraire dans l'Expert Advisor ?