ObjectGetDouble

Spécifie la valeur de la propriété correspondante de l'objet. La propriété de l'objet doit être du type double. Il y a 2 variantes de la fonction.

1. Retourne immédiatement la valeur de la propriété.

double  ObjectGetDouble(
   long                            chart_id,          // identificateur du graphique
   string                          name,              // nom de l'objet
   ENUM_OBJECT_PROPERTY_DOUBLE     prop_id,           // identificateur de la propriété
   int                             prop_modifier=0    // modificateur de la propriété
   );

2. Retourne true ou false en fonction du succès de l'exécution de la fonction. En cas de succès, la valeur de la propriété est placée dans la variable de réception transmise par référence (le dernier paramètre).

bool  ObjectGetDouble(
   long                            chart_id,          // identificateur du graphique
   string                          name,              // nom de l'objet
   ENUM_OBJECT_PROPERTY_DOUBLE     prop_id,           // identificateur de la propriété
   int                             prop_modifier,     // modificateur de la propriété
   double&                         double_var         // valeur de la propriété
   );

Paramètres

chart_id

[in]  L'identificateur du graphique. 0 signifie le graphique courant.

name

[in]  Le nom de l'objet.

prop_id

[in]   L'identificateur de la propriété de l'objet. La valeur peut être l'une des valeurs de l'énumération ENUM_OBJECT_PROPERTY_DOUBLE.

prop_modifier

[in]  Le modificateur de la propriété indiquée. Pour la première variante, par défaut la valeur du modificateur est égal à 0. La plupart des propriétés ne nécessite pas de modificateur. Signifie le numéro du niveau pour les outils de Fibonacci et pour l'objet Fourchette d'Andrews. La numérotation des niveaux commence à 0.

double_var

[out]  La variable du type double, prenant la valeur de la propriété demandée.

Valeur de Retour

La valeur du type double pour la première variante de l'appel.

Pour la deuxième variante de l'appel, retourne true si cette propriété est disponible et que la valeur a été copiée dans la variable double_var, sinon retourne false. Pour obtenir des informations supplémentaires sur l'erreur, il est nécessaire d'appeler la fonction GetLastError().

Note

La fonction utilise un appel synchrone, ce qui signifie que la fonction attend la fin de l'exécution de toutes les commandes présentes dans la queue de ce graphique avant cet appel. C'est pourquoi cette fonction peut être consommatrice en terme de temps. Cette caractéristique doit être prise en compte lors de l'utilisation d'un grand nombre d'objets sur un graphique.

 

Exemple :

#property copyright "Copyright 2025, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
 
#define   OBJ_NAME   "TestObjectSetString"   // Nom de l'objet
 
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- ID et symbole du graphique actuel, indicateur pour l'affichage des descriptions des objets
   long   chart_idChartID();
   string symbol  = ChartSymbol(chart_id);
   bool   descriptChartGetInteger(chart_idCHART_SHOW_OBJECT_DESCR); 
   
//--- définit l'affichage des descriptions d'objets sur le graphique
   ChartSetInteger(chart_idCHART_SHOW_OBJECT_DESCRtrue);
 
//--- récupère le prix Bid (Offre) actuel
   double bid=0;;
   ResetLastError();
   if(!SymbolInfoDouble(symbolSYMBOL_BIDbid))
     {
      Print("SymbolInfoDouble() failed. Error "GetLastError());
      return;
     }
     
//--- crée l'objet graphique "Ligne horizontale" sur le prix Bid (Offre) actuel
   if(!ObjectCreate(chart_idOBJ_NAMEOBJ_HLINE00bid))
     {
      Print("ObjectCreate() failed. Error "GetLastError());
      return;
     }
//--- écrit le nom de l'objet+"Description" dans la description de l'objet
   if(!ObjectSetString(chart_idOBJ_NAMEOBJPROP_TEXT"Bid: "+DoubleToString(bid, (int)SymbolInfoInteger(symbolSYMBOL_DIGITS))))
     {
      Print("ObjectSetString() failed. Error "GetLastError());
      return;
     }
//--- mets à jour le graphique pour refléter immédiatement les modifications
   ChartRedraw(chart_id);
   
//--- récupère la description de l'objet
   string string_var="";
   if(!ObjectGetString(chart_idOBJ_NAMEOBJPROP_TEXT0string_var))
     {
      Print("ObjectGetInteger() failed. Error "GetLastError());
      return;
     }
//--- récupère le nom de l'objet
   string obj_name=ObjectGetString(chart_idOBJ_NAMEOBJPROP_NAME);
   
//--- récupère le type de l'objet
   ENUM_OBJECT object_type=(ENUM_OBJECT)ObjectGetInteger(chart_idOBJ_NAMEOBJPROP_TYPE);
   
//--- affiche le type de l'objet, son nom et sa description dans le journal
   PrintFormat("The %s object named \"%s\" has the description \"%s\"",EnumToString(object_type), obj_namestring_var);
   
//--- attend 2 secondes et supprime l'objet créé
   Sleep(2000);
   ObjectDelete(chart_idOBJ_NAME);
   
//--- retourne le flag initial pour afficher les descriptions des objets sur le graphique
   ChartSetInteger(chart_idCHART_SHOW_OBJECT_DESCRdescript);
   ChartRedraw(chart_id);
   /*
   résultat :
   The OBJ_HLINE object named "TestObjectSetString" has the description "Bid: 0.62096"
   */
  }