Rejoignez notre page de fans
- Vues:
- 54
- Note:
- Publié:
-
Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance
IncGUI_BitPic.mqh avec la classe de contrôle graphique CBitPic pour le dessin de pixels (Figure 1).

Figure 1. Un exemple de dessin par la classe CBitPic.
Il est possible de dessiner des points de différentes tailles - DrawDot(), des lignes par coordonnées - DrawLine(), des lignes par angle - DrawLineByAngle(), des flèches - DrawArrow(), différentes formes : rectangles - DrawRectangle(), triangles - DrawTriangle(), cercles, ellipses, anneaux, secteurs - DrawCircle(). Une ellipse peut être tournée d'un angle donné (de même qu'un anneau d'ellipse, un secteur d'ellipse). Les formes peuvent être dessinées avec un remplissage ou seulement un contour. L'impression de texte est possible - TypeText() (plusieurs options de police et de taille). L'image créée peut être enregistrée dans un fichier bmp - SavePicture(), et vous pouvez charger une image bmp prête à l'emploi à partir d'un fichier - LoadPicture() (le fichier doit être non compressé, 24 ou 32 bits).
Pour utiliser le contrôle, vous devez connecter le fichier IncGUI_BitPic.mqh :
#include <IncGUI_BitPic.mqh>Ensuite, déclarez une classe, par exemple, nommée p :
CBitPic p;
La classe est créée selon les principes décrits dans les articles :
- Contrôles graphiques personnalisés. Partie 1. Création d'un contrôle simple
- Contrôles graphiques personnalisés. Partie 2. Bibliothèque de contrôles
- Contrôles graphiques personnalisés. Partie 3. Formulaires
En conséquence, le principe de son application est similaire aux principes d'utilisation des contrôles décrits dans les articles : tout d'abord, la méthode d'initialisation Init() est appelée, la méthode Show() est utilisée pour activer la visibilité, la méthode Hide() est utilisée pour la cacher et l'effacer après avoir terminé le travail, etc.
Contrairement à la classe cIntBMP, le dessin est exécuté un peu différemment. Dans cIntBMP, la couleur du dessin était spécifiée dans les fonctions de dessin de la figure, alors qu'ici le dessin est exécuté dans l'ordre suivant : la couleur d'arrière-plan est spécifiée - SetBGColor(), l'effacement est effectué - Clear(), avant le dessin, l'épaisseur du dessin est définie - SetDrawWidth(), la couleur du dessin SetDrawColor(), le remplissage - SetFillColor(), si le remplissage est nécessaire - SetFilled(), ou le dessin est effectué uniquement par le contour, après quoi les fonctions de dessin sont appelées. Bien entendu, vous pouvez modifier la couleur du dessin, du remplissage, etc. en fonction de vos besoins. Après avoir dessiné, il est nécessaire d'appeler la méthode Redraw().
Le tableau suivant présente toutes les méthodes de la classe :
| Méthode | Objectif et paramètres |
|---|---|
| void Clear() | Effacement. |
| void DrawArrow( int aX1, int aY1, int aX2, int aY2, bool aBoth=false ) | Dessine une flèche. aX1, aY1 - coordonnées du début, aX2, aY2 - coordonnées de la fin, aBoth - flèches aux deux extrémités. |
| void DrawCircle( int aX, int aY, int aR, double aR2K=0, double aFromAngle=0, double aToAngle=0, double aRatio=1, double aRotateAngle=0 ) | Dessine un cercle, un anneau, une ellipse, un secteur. aX, aY - coordonnées du centre ; aR2K - rayon du cercle intérieur (de 0 à 1) ; aFromAngle, aToAngle - angles initial et final du secteur ; aRatio - coefficient de compression (nombre positif, inférieur à 1 - compression verticale, supérieur à 1 - expansion verticale) ; aRotateAngle - angle de rotation. |
| void DrawDot( int aX, int aY ) | Dessine un point. aX, aY - coordonnées. |
| void DrawLine( int aX1, int aY1, int aX2, int aY2 ) | Dessine une ligne. aX1, aY1 - coordonnées du début, aX2, aY2 - coordonnées de la fin. |
| void DrawLineByAngle( int aX1, int aY1 , double aAngle, int aLongueur ) | Dessine une ligne par angle. aX1, aY1 - coordonnées du début, aAngle - angle, aLength - longueur. |
| void DrawRectangle( int aX1, int aY1, int aX2, int aY2 ) | Dessine un rectangle. aX1, aY1 - coordonnées du coin supérieur gauche, aX2, aY2 - coordonnées du coin inférieur droit. |
| void DrawTriangle( int aX1, int aY1, int aX2, int aY2, int aX3, int aY3 ) | Dessine un triangle. aX1, aY1, aX2, aY2, aX3, aY3 - coordonnées des sommets. |
| int Event( const int id, const long & lparam, const double & dparam, const string & sparam ) | Gestionnaire d'événements. Appelé par la fonction OnChartEvent(). |
| int EventX() | Coordonnée X du dernier clic sur l'objet graphique. |
| int EventY() | Coordonnée Y du dernier clic sur l'objet graphique. |
| void Fill( int aX, int aY ) | Remplir une zone d'une couleur avec une couleur de remplissage. aX, aY - coordonnées. |
| void GetData( uint & aData[] ) | Obtention d'un tableau de données d'image. aData - tableau dans lequel les données sont renvoyées. |
| couleur GetPixel( int aX, int aY ) | Obtention de la couleur d'un pixel en fonction des coordonnées spécifiées. aX, aY - coordonnées. |
| int Hauteur() | Obtient la hauteur d'un objet graphique. |
| void Hide() | Supprime un objet graphique du graphique. |
| void Init( string aName="CBitPic", int aWidth=300, int aHeight=200 ) | Initialisation. aName - nom de l'objet graphique, aWidth - largeur, aHeight - hauteur. |
| int Left() | Obtient les coordonnées du bord gauche de l'objet graphique. |
| bool LoadPicture( chaîne de caractères aFileName, bool aFileCommon=false ) | Chargement d'une image à partir d'un fichier bmp. aFileName - nom du fichier, aFileCommon - le fichier est situé dans le dossier commun MQL5/Files ou dans le dossier MQL5/Files du terminal. Les fichiers non compressés, 24 et 32 bits sont autorisés. |
| void Redraw() | Redessine un objet graphique. |
| void Refresh() | Rafraîchissement (suppression et création). |
| bool SavePicture( string aFileName, bool aFileCommon=false ) | Sauvegarde de l'image dans un fichier bmp. aFileName - nom du fichier, aFileCommon - sauvegarde dans le dossier commun MQL5/Files ou dans le dossier MQL5/Files du terminal. |
| void SetBGColor( uchar aR=0, uchar aG=0, uchar aB=255 ) | Réglage de la couleur d'arrière-plan. aR, aG, aB - valeur des composants de la couleur. |
| void SetBGColor( couleur aColor=clrBlue ) | Réglage de la couleur d'arrière-plan. aColor - couleur. Après le réglage de la couleur, la méthode Clear() doit être appelée. |
| void SetData( uint & aData[] ) | Définit le tableau de données de l'image. aData - tableau de données. |
| void SetDrawColor( uchar aR=255, uchar aG=255, uchar aB=0) | Définit la couleur du dessin. aR, aG, aB - valeur des composants de la couleur. |
| void SetDrawColor( couleur aColor=clrYellow ) | Réglage de la couleur du dessin. aColor - couleur. |
| void SetDrawWidth( int aWidth ) | Définit l'épaisseur du dessin. aWidth - épaisseur de 1 à 5. |
| void SetFillColour( uchar aR=255, uchar aG=0, uchar aB=0 ) | Réglage de la couleur de remplissage. aR, aG, aB - valeur des composants de la couleur. |
| void SetFillColor( couleur aColor=clrRed ) | Réglage de la couleur de remplissage. aColor - couleur. |
| void SetFilled( bool aFilled=true ) | Réglage du mode de remplissage. aFilled - avec/sans remplissage. |
| void SetFont( int aType=3 ) | Réglage de la police. aType - type (0-6). 0 - Petites polices 6, 1 - Petites polices 7, 2 - Petites polices 8, 3 - Arial 8, 4 - Arial Narrow 8, 5 - Arial Black 8, 6 - Courier New 8. |
| void SetPos( int aLeft, int aTop ) | Définit les coordonnées du coin supérieur gauche de l'objet graphique. aLeft - distance par rapport au bord gauche, aTop - distance par rapport au bord supérieur. |
| void SetPosLeft( int aLeft ) | Définit les coordonnées du bord gauche de l'objet graphique. aLeft - distance par rapport au bord gauche. |
| void SetPosTop( int aTop ) | Définition de la coordonnée du bord supérieur de l'objet graphique. aTop - distance par rapport au bord supérieur. |
| void SetSize( int aWidth, intHeight ) | Réglage de la taille. aWidth - largeur, aHeight - hauteur. |
| void SetSubWindow( int aNombre ) | Réglage de la sous-fenêtre par numéro. aNumber - numéro de la sous-fenêtre. |
| void SetSubWindow( string aName ) | Définit la sous-fenêtre par son nom. aName - nom de la sous-fenêtre. |
| void SetTag( string aValue ) | Définition de la balise. aValue - texte. |
| void Show() | Activation de la visibilité de l'objet graphique. |
| void Show( int aLeft, int aTop ) | Active la visibilité de l'objet graphique à la position spécifiée. aLeft - distance à partir du bord gauche, aTop - à partir du bord supérieur. |
| string Tag() | Obtention d'une balise. |
| int Top() | Obtention des coordonnées du bord supérieur de l'objet graphique. |
| void TypeText( int aX, int aY, string aText, int aDirection=0, int aAlign=0 ) | Imprime le texte. aX, aY - coordonnées, aText - texte, aDirection - direction (0 - de gauche à droite, 1 - de haut en bas, 2 - de droite à gauche inversé, 3 - de bas en haut), aAligne - alignement (0 - au début du texte, 1 - à la fin du texte). |
| bool Visible() | Obtient la visibilité d'un objet graphique. |
| int Width() | Obtient la largeur de l'objet graphique. |
Dans l'exemple eBitPicTest.mq5 d'utilisation de la classe CBitPic, le Conseiller Expert dessine une image sur le graphique comme dans la Fig. 1 et l'enregistre dans un fichier nommé CBitPic.bmp (il devrait apparaître dans le dossier MQL5/Files du dossier de données du terminal). Si vous cliquez sur l'image, les coordonnées du point, sa couleur seront affichées dans le commentaire du graphique, et un "flocon de neige" sera dessiné au même endroit (comme dans le coin supérieur droit de la Fig. 1).
Traduit du russe par MetaQuotes Ltd.
Code original : https://www.mql5.com/ru/code/1050
CouleurRVI_HTF
Une version classique de l'indicateur RVI (Relative Vigor Index), qui peut être placé en fixant le cadre temporel de l'indicateur à une valeur différente du cadre temporel du graphique et qui prend la forme d'un nuage.
Session Daylight Gradient — Ambient Forex Session Overlay
A lightweight chart overlay that paints a smooth “daylight” gradient across Pacific, Asia, London, and New York sessions—plus optional session separators, event labels, and “sunray” highlights for scheduled news. Includes UTC/Broker/PC time modes and a manual DST shift.
ColorXATR
L'ATR lissé indique en couleur si la tendance est à la hausse ou à la baisse.
DCC / Piercing
DCC / Piercing