ObjectSetString

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

Version sans modificateur

bool  ObjectSetString(
   long                            chart_id,          // identificateur du graphique
   string                          name,              // nom
   ENUM_OBJECT_PROPERTY_STRING     prop_id,           // propriété
   string                          prop_value         // valeur
   );

Version avec modificateur

bool  ObjectSetString(
   long                            chart_id,          // identificateur du graphique
   string                          name,              // nom
   ENUM_OBJECT_PROPERTY_STRING     prop_id,           // propriété
   int                             prop_modifier,     // modificateur
   string                          prop_value         // valeur
   );

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_STRING.

prop_modifier

[in]  Le modificateur de la propriété indiquée. 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.

prop_value

[in]  La valeur de la propriété.

Valeur de Retour

Retourne true seulement si la commande de changement de la propriété de l'objet graphique est envoyée avec succès au graphique, 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 asynchrone, ce qui signifie que la fonction n'attend pas la fin de l'exécution de la commande qui a été ajoutée dans la queue du graphique spécifié. Au lieu de cela, elle retourne le contrôle immédiatement.

Pour vérifier le résultat de l'exécution de la commande, vous pouvez utiliser une fonction demandant les propriétés de l'objet. Vous devriez cependant conserver à l'esprit que ce genre de fonctions est ajoutée à la fin de la queue de ce graphique, et qu'elles attendent le résultat de l'exécution, et peuvent donc être consommatrices 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.

Lors du changement de nom d'un objet graphique, deux événements sont générés, qui peuvent être traité dans les experts ou dans les indicateurs avec la fonction OnChartEvent() :

  • l'événement de la suppression de l'objet avec le nom précédent ;
  • l'événement de la création de l'objet graphique avec un nouveau nom.

 

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"
   */
  }