ObjectsDeleteAll

Supprime tous les objets du graphique indiqué, dans la sous-fenêtre indiquée du graphique indiqué, du type indiqué.

int  ObjectsDeleteAll(
   long  chart_id,           // identificateur du graphique
   int   sub_window=-1,      // index de la fenêtre
   int   type=-1             // type de l'objet à effacer
   );

Supprime tous les objets du type spécifié et utilisant le préfixe indiqué dans leur nom.

int  ObjectsDeleteAll(
   long           chart_id,  // identifiant du graphique
   const string     prefix,  // préfixe dans le nom de l'objet
   int       sub_window=-1,  // indice de la fenêtre
   int      object_type=-1   // type des objets
   );

Paramètres

chart_id

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

prefix

[in]  Préfixe dans les noms des objets. Tous les objets dont le nom commence avec cet ensemble de caractères seront supprimés du graphique. Vous pouvez spécifier le préfixe sous la forme 'nom' ou 'nom*' — les 2 variantes fonctionneront de la même façon. Si une chaîne vide est spécifiée comme préfixe, tous les objets avec tous les noms possibles seront supprimés.

sub_window=-1

[in]  Le numéro de la sous-fenêtre du graphique. 0 signifie une fenêtre principale du graphique, -1 signifie tous les sous-fenêtres du graphique, y compris une fenêtre principale.

type=-1

[in] Le type de l'objet. La valeur peut être une des valeurs de l'énumération ENUM_OBJECT. -1 signifie tous les types.

Valeur de Retour

Retourne le nombre d'objets supprimés. 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"
 
#property script_show_inputs
 
enum ENUM_REMOVE_MODE
  {
   REMOVE_MODE_TRADE_ARROWS,  // Supprime toutes les flèches
   REMOVE_MODE_AUTOTRADE      // Supprime toutes les flèches de trade auto
  };
 
input ENUM_REMOVE_MODE  InpRemoveMethod = REMOVE_MODE_TRADE_ARROWS;  /*Remove Method*/ // Supprime soit toutes les flèches, soit les flèches trade auto
 
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- identifiant du graphique et le nombre d'objets supprimés
   long chart_id=ChartID();
   int  count=0;
   
   ResetLastError();
//--- si la suppression de toutes les flèches est sélectionnée
//--- supprime tous les objets de types OBJ_ARROW_BUY et OBJ_ARROW_SELL, supprimant ainsi toutes les icônes des transactions trading auto,
//--- supprime également les autres objets du même type présents sur le graphique
   if(InpRemoveMethod==REMOVE_MODE_TRADE_ARROWS)
     {
      count+=ObjectsDeleteAll(chart_id, -1OBJ_ARROW_BUY);
      count+=ObjectsDeleteAll(chart_id, -1OBJ_ARROW_SELL);
     }
     
//--- si vous choisissez de supprimer uniquement les icônes des transactions de trading auto
//--- supprime tous les objets dont le nom contient la sous-chaîne "autotrade",
//--- supprimant toutes les icônes de transaction de trading auto et conservant les autres objets fléchés
   else
     {
      count=ObjectsDeleteAll(chart_id"autotrade");
     }
 
//--- Si une erreur s'est produite lors de la suppression d'objets graphiques, la signale et met fin à l'opération.
   if(GetLastError()!=ERR_SUCCESS)
     {
      PrintFormat("ObjectsDeleteAll() failed. Error %d. count=%d"GetLastError(), count);
      return;
     }
     
//--- mets à jour le graphique pour refléter immédiatement les modifications
   ChartRedraw(chart_id);
   
//--- définit le nombre d'objets flèches supprimés dans le journal
   string type=(InpRemoveMethod==REMOVE_MODE_TRADE_ARROWS ? "OBJ_ARROW_BUY and OBJ_ARROW_SELL" : "with prefix \"autotrade\"");
   PrintFormat("%d objects %s removed"counttype);
   /*
   résultat pour InpRemoveMethod = REMOVE_MODE_TRADE_ARROWS:
   116 objects OBJ_ARROW_BUY and OBJ_ARROW_SELL removed
   
   résultat pour InpRemoveMethod = REMOVE_MODE_AUTOTRADE:
   131 objects with prefix "autotrade" removed
   */
  }