Propriété des objets

Les objets graphique peuvent avoir différentes propriétés suivant le type de l'objet. Les valeurs des propriétés de l'objet sont définies et retournées par les fonctions correspondantes permettant de travailler avec les objets graphiques.

Tous les objets utilisés en analyse technique sont liés aux coordonnées de temps et de prix : ligne de tendance, canaux, outils de Fibonacci, etc. Mais il existe aussi des objets auxiliaires permettant d'améliorer l'interface utilisateur et qui sont liés à la partie toujours visible d'un graphique (fenêtre principale du graphique ou sous-fenêtres d'un indicateur) :

Objet

Identifiant

X/Y

Largeur/Hauteur

Date/Prix

OBJPROP_CORNER

OBJPROP_ANCHOR

OBJPROP_ANGLE

Texte

OBJ_TEXT

Oui

Oui

Oui

Etiquette

OBJ_LABEL

Oui

Oui (en lecture seule)

Oui

Oui

Oui

Bouton

OBJ_BUTTON

Oui

Oui

Oui

Bitmap

OBJ_BITMAP

Oui (en lecture seule)

Oui

Oui

Etiquete Bitmap

OBJ_BITMAP_LABEL

Oui

Oui (en lecture seule)

Oui

Oui

Champ d'Edition

OBJ_EDIT

Oui

Oui

Oui

Etiquette Rectangle

OBJ_RECTANGLE_LABEL

Oui

Oui

Oui

Les considérations suivantes sont utilisées dans le tableau :

  • X/Y — coordonnées des points d'ancrage spécifiés en pixels relativement à un coin du graphique ;
  • Largeur/Hauteur — les objets ont une largeur et une hauteur. Pour "lecture seule", la largeur et la hauteur ne sont calculées qu'une seule fois lorsque l'objet est dessiné sur le graphique ;
  • Date/Prix — les coordonnées du point d'ancrage sont spécifiées avec la date et le prix ;
  • OBJPROP_CORNER — définit le coin du graphique relativement auquel les coordonnées du point d'ancrage sont spécifiées. Peut être l'une des 4 valeurs de l'énumération ENUM_BASE_CORNER ;
  • OBJPROP_ANCHOR — définit le point d'ancrage dans l'objet lui-même et peut être l'une des 9 valeurs de l'énumération ENUM_ANCHOR_POINT. Les coordonnées en pixels sont spécifiées depuis ce point particulier vers le coin sélectionné du graphique ;
  • OBJPROP_ANGLE — définit l'angle de rotation de l'objet dans le sens horaire.

Les fonctions définissant les propriétés des objets graphiques, ainsi que les opérations ObjectCreate() et ObjectMove() pour créer et déplacer des objets sur le graphique, sont en fait utilisés pour envoyer des commandes au graphique. Si ces fonctions sont excutées avec succès, la commande est ajoutée dans la queue générale des évènements du graphique. Les changements visuels des propriétés des objets graphiques sont implémentés lors du traitement de la queue des évènements du graphique.

N'attendez donc pas une mise à jour visuelle immédiate des objets graphiques après un appel à ces fonctions. Généralement, les objets graphiques du graphique sont mis à jour automatiquement par le terminal suivant les évènements de changement - arrivée d'une nouvelle cotation, redimensionnement de la fenêtre du graphique, etc. Utilisez la fonctionChartRedraw() pour forcer la mise à jour des objets graphiques.

Pour les fonctions ObjectSetInteger() et ObjectGetInteger()

ENUM_OBJECT_PROPERTY_INTEGER

Identificateur

Description

Type de la Propriété

OBJPROP_COLOR

Couleur

color

OBJPROP_STYLE

Style

ENUM_LINE_STYLE

OBJPROP_WIDTH

Epaisseur de la ligne

int

OBJPROP_BACK

Objet en arrière-plan

bool

OBJPROP_ZORDER

Priorité de l'objet graphique pour la réception des évènements de clic sur un graphique (CHARTEVENT_CLICK). La valeur par défaut zéro est définie lors de la création d'un objet : la priorité peut être augmentée si nécessaire. Lorsque les objets sont placés les uns sur les autres, un seul, ayant la plus haute priorité, recevra l'évènement CHARTEVENT_CLICK.

long

OBJPROP_FILL

Remplit un objet avec une couleur (pour OBJ_RECTANGLE, OBJ_TRIANGLE, OBJ_ELLIPSE, OBJ_CHANNEL, OBJ_STDDEVCHANNEL, OBJ_REGRESSION)

bool

OBJPROP_HIDDEN

Interdit l'affichage du nom d'un objet graphique dans la liste des objets du menu "Graphiques" - "Objets" - "Liste des objets". La valeur true permet de cacher un objet dans la liste. Par défaut, true est utilisé pour les objets affichant les évènements du calendrier, l'historique de trading et aux objets crées à partir des programmes MQL5. Pour voir ces objets graphiques et accéder à leurs propriétés, cliquez sur le bouton "Tous" dans la fenêre "Liste des objets".

bool

OBJPROP_SELECTED

L'objet est sélectionné

bool

OBJPROP_READONLY

Possibilité d'éditer le texte d'un objet Zone d'Edition

bool

OBJPROP_TYPE

Type d'objet

ENUM_OBJECT   r/o

OBJPROP_TIME

Coordonnée en temps

datetime   modificateur=numéro du point d'ancrage

OBJPROP_SELECTABLE

Disponibilité de l'objet

bool

OBJPROP_CREATETIME

Création de l'heure de l'objet

datetime    r/o

OBJPROP_LEVELS

Nombre de niveaux

int

OBJPROP_LEVELCOLOR

Couleur de ligne de niveau

color   modificateur=numéro du niveau

OBJPROP_LEVELSTYLE

Style de ligne de niveau

ENUM_LINE_STYLE modificateur=numéro du niveau

OBJPROP_LEVELWIDTH

Epaisseur de la ligne de niveau

int      modificateur=numéro du niveau

OBJPROP_ALIGN

Alignement horizontal du texte dans l'objet "Zone d'Edition" (OBJ_EDIT)

ENUM_ALIGN_MODE

OBJPROP_FONTSIZE

Taille de police de caractères

int

OBJPROP_RAY_LEFT

Prolongation vers la gauche

bool

OBJPROP_RAY_RIGHT

Prolongation vers la droite

bool

OBJPROP_RAY

Une ligne verticale traverse toutes les fenêtres d'un graphique

bool

OBJPROP_ELLIPSE

Affichage de l'ellipse entière de l'objet Arc de Fibonacci (OBJ_FIBOARC)

bool

OBJPROP_ARROWCODE

Code de la flèche pour l'objet Flèche

uchar

OBJPROP_TIMEFRAMES

Visibilité de l'objet dans les différentes périodes

ensemble de flags flags

OBJPROP_ANCHOR

Localisation du point d'ancrage d'un objet graphique

ENUM_ARROW_ANCHOR (pour OBJ_ARROW),

ENUM_ANCHOR_POINT (pour OBJ_LABEL, OBJ_BITMAP_LABEL et OBJ_TEXT)

OBJPROP_XDISTANCE

La distance en pixels suivant l'axe X depuis le coin d'ancrage (voir la note)

int

OBJPROP_YDISTANCE

La distance en pixels suivant l'axe Y depuis le coin d'ancrage (voir la note)

int

OBJPROP_DIRECTION

Tendance de l'objet de Gann

ENUM_GANN_DIRECTION

OBJPROP_DEGREE

Niveau de la Marque de la Vague d'Elliott

ENUM_ELLIOT_WAVE_DEGREE

OBJPROP_DRAWLINES

Affichage des lignes pour marquer la Vague d'Elliott

bool

OBJPROP_STATE

Etat du bouton (appuyé / relâché)

bool

OBJPROP_CHART_ID

Identifiant de l'objet "Graphique" (OBJ_CHART). Il pemet de travailler avec les propriétés de cet objet comme avec un graphique normal en utilisant les fonctions décrites dans Opérations sur les Graphiques, mais il y a quelques exceptions.

long   r/o

OBJPROP_XSIZE

La largeur de l'objet suivant l'axe X en pixels. Spécifié pour les objets OBJ_LABEL (lecture seule), OBJ_BUTTON, OBJ_CHART, OBJ_BITMAP, OBJ_BITMAP_LABEL, OBJ_EDIT, OBJ_RECTANGLE_LABEL.

int

OBJPROP_YSIZE

La hauteur de l'objet suivant l'axe Y en pixels. Spécifié pour les objets OBJ_LABEL (lecture seule), OBJ_BUTTON, OBJ_CHART, OBJ_BITMAP, OBJ_BITMAP_LABEL, OBJ_EDIT, OBJ_RECTANGLE_LABEL.

int

OBJPROP_XOFFSET

La coordonnée X du coin supérieur gauche de la zone rectangulaire visible dans les objets graphiques "Etiquette Bitmap" et "Bitmap" (OBJ_BITMAP_LABEL et OBJ_BITMAP). La valeur est définie en pixels relativement au coin supérieur gauche de l'image d'origine.

int

OBJPROP_YOFFSET

La coordonnée Y du coin supérieur gauche de la zone rectangulaire visible dans les objets graphiques "Etiquette Bitmap" et "Bitmap" (OBJ_BITMAP_LABEL et OBJ_BITMAP). La valeur est définie en pixels relativement au coin supérieur gauche de l'image d'origine.

int

OBJPROP_PERIOD

Période de l'objet Graphique

ENUM_TIMEFRAMES

OBJPROP_DATE_SCALE

Affichage de l'échelle du temps pour l'objet Graphique

bool

OBJPROP_PRICE_SCALE

Affichage de l'échelle des prix pour l'objet Graphique

bool

OBJPROP_CHART_SCALE

L'échelle de l'objet Graphique

int   valeur dans l'intervalle 0—5

OBJPROP_BGCOLOR

La couleur en arrière-plan pour OBJ_EDIT, OBJ_BUTTON, OBJ_RECTANGLE_LABEL

color

OBJPROP_CORNER

Le coin du graphique pour lier un objet graphique

ENUM_BASE_CORNER

OBJPROP_BORDER_TYPE

Type de bordure pour l'objet "Etiquette Rectangle"

ENUM_BORDER_TYPE

OBJPROP_BORDER_COLOR

Couleur de bordure des objets OBJ_EDIT et OBJ_BUTTON

color

Lors de l'utilisation des opérations sur les graphiques pour l'objet "Graphique" (OBJ_CHART), les limites suivantes sont imposées :

 

Vous pouvez définir un mode spécial d'affichage de l'image pour les objets OBJ_BITMAP_LABEL et OBJ_BITMAP . Dans ce mode, seule une partie de l'image d'origine (sur laquelle une zone visible rectangulaire est appliquée) est affichée, tandis que le reste de l'image devient invisible. La taille de cette zone est définie avec les propriétés OBJPROP_XSIZE et OBJPROP_YSIZE. La zone visible ne peut être "déplacée" que dans l'image d'origine en utilisant les propriétés OBJPROP_XOFFSET et OBJPROP_YOFFSET.

 

Pour les objets de taille fixe : OBJ_BUTTON, OBJ_RECTANGLE_LABEL, OBJ_EDIT et OBJ_CHART, les propriétés OBJPROP_XDISTANCE et OBJPROP_YDISTANCE définissent la position du point supérieur gauche de l'objet relativement au coin du graphique (OBJPROP_CORNER), à partir duquel les coordonnées X et Y seront comptées en pixels.

 

Pour les fonctions ObjectSetDouble() et ObjectGetDouble()

ENUM_OBJECT_PROPERTY_DOUBLE

Identificateur

Description

Type de la Propriété

OBJPROP_PRICE

Coordonnée du prix

double    modificateur=numéro du point d'ancrage

OBJPROP_LEVELVALUE

Valeur du niveau

double    modificateur=numéro du niveau

OBJPROP_SCALE

Echelle (propriétés des objets de Gann et des Arcs de Fibonacci)

double

OBJPROP_ANGLE

Angle. Pour les objets sans angle spécifié, créé depuis un programme, la valeur est égale à EMPTY_VALUE

double

OBJPROP_DEVIATION

Déviation pour le Canal de Déviation Standard

double

 

Pour les fonctions ObjectSetString() et ObjectGetString()

ENUM_OBJECT_PROPERTY_STRING

Identificateur

Description

Type de la Propriété

OBJPROP_NAME

Nom de l'objet

string

OBJPROP_TEXT

Description de l'objet (le texte contenu dans l'objet)

string

OBJPROP_TOOLTIP

Le texte de l'info bulle. Si la propriété n'est pas définie, alors l'infobulle générée automatiquement par le terminal est affichée. Une infobulle peut être désactivée en lui assignant la valeur "\n" (line feed)

string

OBJPROP_LEVELTEXT

Description du niveau

string    modificateur=numéro du niveau

OBJPROP_FONT

Police de caractères

string

OBJPROP_BMPFILE

Le nom du fichier BMP pour l'Etiquette Bitmap. Voir aussi Resources

string    modificateur: 0-état ON, 1-état OFF

OBJPROP_SYMBOL

Symbole pour l'objet Graphique

string

 

Pour l'objet OBJ_RECTANGLE_LABEL ("Etiquette Rectangle"), l'un des trois modes de conception peut être utilisé, auxquels les valeurs suivantes de ENUM_BORDER_TYPE correspondent.

ENUM_BORDER_TYPE

Identificateur

Description

BORDER_FLAT

A plat

BORDER_RAISED

Relevé

BORDER_SUNKEN

Concave

 

Pour l'objet OBJ_EDIT ("Zone d'Edition") et pour la fonction ChartScreenShot(), vous pouvez spécifier le type d'alignement horizontal en utilisant les valeurs de l'énumération ENUM_ALIGN_MODE.

ENUM_ALIGN_MODE

Identificateur

Description

ALIGN_LEFT

Alignement à gauche

ALIGN_CENTER

Centré (seulement pour l'objet Zone d'Edition)

ALIGN_RIGHT

Alignement à droite

Exemple :

#define  UP          "\x0431"
//+----------------------------------------------------------------------------------------------------+
//| Fonction de démarrage du script                                                                    |
//+----------------------------------------------------------------------------------------------------+
void OnStart()
  {
//---
   string label_name="my_OBJ_LABEL_object";
   if(ObjectFind(0,label_name)<0)
     {
      Print("Objet ",label_name," non trouvé. Code d'erreur = ",GetLastError());
      //--- crée l'objet Etiquette
      ObjectCreate(0,label_name,OBJ_LABEL,0,0,0);           
      //--- définit la coordonnée X
      ObjectSetInteger(0,label_name,OBJPROP_XDISTANCE,200);
      //--- définit la coordonnée Y
      ObjectSetInteger(0,label_name,OBJPROP_YDISTANCE,300);
      //--- définit la couleur du texte
      ObjectSetInteger(0,label_name,OBJPROP_COLOR,clrWhite);
      //--- définit le texte de l'objet Etiquette
      ObjectSetString(0,label_name,OBJPROP_TEXT,UP);
      //--- définit la police de caractères
      ObjectSetString(0,label_name,OBJPROP_FONT,"Wingdings");
      //--- définit la taille de la police de caractères
      ObjectSetInteger(0,label_name,OBJPROP_FONTSIZE,10);
      //--- 45 degrés de rotation dans le sens horaire
      ObjectSetDouble(0,label_name,OBJPROP_ANGLE,-45);
      //--- désactive la sélection de la souris
      ObjectSetInteger(0,label_name,OBJPROP_SELECTABLE,false);
      //--- le dessine sur le graphique
      ChartRedraw(0);                                      
     }
  }