ObjectsDeleteAll

Rimuove tutti gli oggetti dalla tabella specificata, sottofinestra grafico specificata, del tipo specificato.

int  ObjectsDeleteAll(
   long  chart_id,           // identificatore grafico
   int   sub_window=-1,      // indice finestra
   int   type=-1             // tipo di oggetto
   );

Rimuove tutti gli oggetti del tipo specificato utilizzando il prefisso nei nomi degli oggetti.

int  ObjectsDeleteAll(
   long           chart_id,  // chart ID
   const string     prefix,  // prefisso nel nome dell'oggetto
   int       sub_window=-1,  // indice finestra
   int       object_type=-1  // tipo d'oggetto
   );

Parametri

chart_id

[in] Identificatore del Grafico. 0 significa il grafico corrente.

prefix

[in] Prefisso nei nomi degli oggetti. Tutti gli oggetti i cui nomi iniziano con questo insieme di caratteri verranno rimossi dal chart. Puoi specificare il prefisso come 'nome' o 'nome *' - entrambe le varianti funzioneranno lo stesso. Se viene specificata una stringa vuota come prefisso, gli oggetti con tutti i nomi possibili verranno rimossi.

sub_window=-1

[in] Numero di sottofinestra grafico. 0 significa la finestra grafico principale, -1 significa tutte le sotto-finestre del grafico, compresa la finestra principale.

type=-1

[in] Tipo dell' oggetto. Il valore può essere uno dei valori dell'enumerazione ENUM_OBJECT. -1 means all types.

Valore restituito

Restituisce il numero di oggetti eliminati. Per saperne di più sull' errore chiamare GetLastError().

Note

La funzione utilizza una chiamata sincrona, il che significa che la funzione attende l'esecuzione di tutti i comandi che sono stati accodati per questo chart prima della sua chiamata, per cui questa funzione può richiedere molto tempo. Questa funzione deve essere presa in considerazione quando si lavora con un gran numero di oggetti su un chart.

 

Esempio:

#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,  // Rimuovere tutte le frecce
   REMOVE_MODE_AUTOTRADE      // Rimuovere tutte le frecce di autotrade
  };
 
input ENUM_REMOVE_MODE  InpRemoveMethod = REMOVE_MODE_TRADE_ARROWS;  /*Metodo di  Rimozione*/ // Rimuovere tutte le frecce o solo quelle di trading automatico
 
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- ID grafico e numero di oggetti rimossi
   long chart_id=ChartID();
   int  count=0;
   
   ResetLastError();
//--- se è selezionata l'eliminazione di tutti gli oggetti freccia
//--- elimina tutti gli oggetti dei tipi OBJ_ARROW_BUY e OBJ_ARROW_SELL, eliminando così tutte le icone delle transazioni automatiche,
//--- eliminando anche altri oggetti dello stesso tipo presenti nel grafico
   if(InpRemoveMethod==REMOVE_MODE_TRADE_ARROWS)
     {
      count+=ObjectsDeleteAll(chart_id, -1OBJ_ARROW_BUY);
      count+=ObjectsDeleteAll(chart_id, -1OBJ_ARROW_SELL);
     }
     
//--- se scegli di rimuovere solo le icone delle operazioni di trading automatico
//--- elimina tutti gli oggetti che hanno la sottostringa "autotrade" nel loro nome,
//--- rimuovere tutte le icone delle operazionii automatiche e lasciare gli altri oggetti freccia
   else
     {
      count=ObjectsDeleteAll(chart_id"autotrade");
     }
 
//--- Se si è verificato un errore durante l'eliminazione di oggetti grafici, segnalarlo e terminare l'operazione
   if(GetLastError()!=ERR_SUCCESS)
     {
      PrintFormat("ObjectsDeleteAll() failed. Error %d. count=%d"GetLastError(), count);
      return;
     }
     
//--- aggiornare il grafico per riflettere immediatamente le modifiche
   ChartRedraw(chart_id);
   
//--- impostare il numero di oggetti freccia rimossi nel diario
   string type=(InpRemoveMethod==REMOVE_MODE_TRADE_ARROWS ? "OBJ_ARROW_BUY and OBJ_ARROW_SELL" : "with prefix \"autotrade\"");
   PrintFormat("%d objects %s removed"counttype);
   /*
   risultato per InpRemoveMethod = REMOVE_MODE_TRADE_ARROWS:
   116 objects OBJ_ARROW_BUY and OBJ_ARROW_SELL removed
   
   risultato per InpRemoveMethod = REMOVE_MODE_AUTOTRADE:
   131 objects with prefix "autotrade" removed
   */
  }