ObjectsDeleteAll
Rimuove tutti gli oggetti dalla tabella specificata, sottofinestra grafico specificata, del tipo specificato.
int ObjectsDeleteAll(
long chart_id,
int sub_window=-1,
int type=-1
);
|
Rimuove tutti gli oggetti del tipo specificato utilizzando il prefisso nei nomi degli oggetti.
int ObjectsDeleteAll(
long chart_id,
const string prefix,
int sub_window=-1,
int object_type=-1
);
|
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
Note
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, -1, OBJ_ARROW_BUY);
count+=ObjectsDeleteAll(chart_id, -1, OBJ_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", count, type);
/*
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
*/
}
|