Creare un robot - pagina 6

 
SanAlex:

per cancellare - la funzione è più complicata lì

ci sono alcuni indicatori che hanno anche dei numeri.

ecco un'immagine dei nomi degli indicatori

File:
vn0wia.PNG  16 kb
 
SanAlex:

per la cancellazione - c'è una funzione più complicata

Allora come posso usare il manuale MQL5 se tutto è chiaramente scritto lì?

ObjectsDeleteAll

Удаляет все объекты в указанном графике, указанном подокне указанного графика, указанного типа. Существует два варианта функции:

int  ObjectsDeleteAll( 
   long  chart_id,            // идентификатор графика 
   int   sub_window=-1,       // индекс окна 
   int   type=-1              // тип объекта для удаления 
   ); 

Удаляет по префиксу имени в подокне графика все объекты указанного типа.

int  ObjectsDeleteAll( 
   long           chart_id,   // идентификатор графика 
   const string     prefix,   // префикс имени объекта 
   int       sub_window=-1,   // индекс окна 
   int      object_type=-1    // тип объекта для удаления 
   );

Параметры

chart_id

[in]  Идентификатор графика. 0 означает текущий график.

prefix

[in]  Префикс, по которому будут удалены все объекты, чьи имена начинаются с данного набора символов. 
Префикс можно указывать как 'name' или 'name*' – оба варианта работают одинаково. 
Если в качестве префикса указана пустая строка, то будут удалены объекты с любым именем.

sub_window=-1

[in]  Номер подокна графика. 0 означает главное окно графика, -1 означает все подокна графика, включая главное окно.

type=-1

[in]  Тип объекта. Значение может быть одним из значений перечисления ENUM_OBJECT. -1 означает все типы.

Возвращаемое значение

Возвращает количество удаленных объектов. Для получения дополнительной информации об ошибке необходимо вызвать функцию функцию GetLastError().

Примечание

Функция использует синхронный вызов – это означает, что функция дожидается выполнения всех команд, 
которые были помещены в очередь графика перед её вызовом, и поэтому данная функция может быть затратной по времени. 
Нужно иметь это обстоятельство в виду, если ведется работа с большим количеством объектов на графике.

Cancello in base al prefisso. O forse non capisco qualcosa?

Sinceramente, Vladimir.

Документация по MQL5 - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Документация по MQL5 - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
  • www.mql5.com
MetaQuotes Language 5 (MQL5) - язык программирования технических индикаторов, торговых роботов и вспомогательных приложений для автоматизации торговли на финансовых рынках. MQL5 является современным языком высокого уровня и разработан MetaQuotes Software Corp. для собственной торгово-информационной платформы. Синтаксис языка максимально близок...
 
MrBrooklin:

Allora come posso usare il manuale MQL5 se è tutto chiaramente scritto lì?

Cancello in base al prefisso. O forse non capisco qualcosa?

Sinceramente, Vladimir.

Non ho mai usato il Manuale - lo faccio semplicemente punzecchiando finché non funziona.

Ecco uno script che ho fatto.

File:
 

Cari professionisti del forum!

Qualcuno può consigliarmi se ho frainteso il significato della parola prefisso nella programmazione?

Con rispetto, Vladimir.

 
MrBrooklin:

Cari professionisti del forum!

Qualcuno può dirmi se ho frainteso il significato della parola prefisso nella programmazione?

Sinceramente, Vladimir.

Lo stesso che in russohttps://www.linguee.com/english-russian/translation/code+prefix.html

Per esempio: ENUM_ORDER_TYPE_FILLING -> Il prefisso in questo caso è enumerazione, quindi _order_type_function
code prefix - Russian translation – Linguee
code prefix - Russian translation – Linguee
  • www.linguee.com
surname or family name, t h e prefix o f w hich was separated в именном указ а тел е в связи с фа ми ли ей, префикс которой Настрой к и префикса: В Ы можете создать список номер о в префиксных но ме ров и установи т ь определенные пр еф иксные имена пользователя , дл я международных к одо в доступа и ко до в города. scientific education, an eth...
 
MrBrooklin:

Allora come posso usare il manuale MQL5 se è tutto chiaramente scritto lì?

Cancello in base al prefisso. O forse non capisco qualcosa?

Sinceramente, Vladimir.

Credo che non abbiate un indice di finestra.

 
Valeriy Yastremskiy:

Sembra che tu non abbia l'indice delle finestre.

Ciao Valery!

Nella linea di codice ho scritto il chart_id della finestra "0", cioè il grafico corrente

   ObjectsDeleteAll(0,"Examples\\ZigzagColor");

o intendi "-1" dopo il prefisso? È così?

   ObjectsDeleteAll(0,"Examples\\ZigzagColor",-1);

Ho provato anche in questo modo, ma non lo cancellerebbe comunque.

Sinceramente, Vladimir.

 
MrBrooklin:

Ciao Valery!

Nella linea di codice, ho messo il chart_id della finestra "0", cioè la finestra principale del grafico

o vuoi dire che c'è ancora un "-1" dopo il prefisso? È così?

Se è così, ho anche provato - ancora non si cancella.

Saluti, Vladimir.

Di solito uso print o alert, dopo aver ottenuto un handle, visualizzalo nell'alert, e se puoi, il nome dell'indicatore e l'indice della finestra e l'identificatore del grafico, dopo la cancellazione, visualizza il ritorno della funzione di cancellazione nell'alert. Il primo zero è l'identificatore del grafico e dopo il prefisso l'indice della finestra.

int DelObjV=ObjectsDeleteAll(0,"Examples\\ZigzagColor",-1,-1);
Alert ("DelObjV= " DelObjV);
 
Di solito cancello l'handle e la parte di calcolo in OnDeinit e tutto viene cancellato. L'oggetto non è un indicatore.
   IndicatorRelease(h_zz);
   ArrayFree(zz_buf);

https://www.mql5.com/ru/docs/chart_operations/chartindicatordelete

"Rimuovere un indicatore da un grafico non significa che anche la parte di calcolo dell'indicatore sarà rimossa dalla memoria del terminale. Per rilasciare la maniglia dell'indicatore, usate la funzione IndicatorRelease() ".

Документация по MQL5: Доступ к таймсериям и индикаторам / IndicatorRelease
Документация по MQL5: Доступ к таймсериям и индикаторам / IndicatorRelease
  • www.mql5.com
//|                                        Test_IndicatorRelease.mq5 | //|                        Copyright 2010, MetaQuotes Software Corp. | //|                                             https://www.mql5.com | //| Expert initialization function                                   |...
 
Valeriy Yastremskiy:

Di solito passo attraverso la stampa o gli avvisi, dopo aver ottenuto una stretta di mano lo emetto all'avviso, e se è possibile nominare l'indicatore e l'indice della finestra e l'identificatore del grafico, dopo l'eliminazione emetto all'avviso il ritorno della funzione di eliminazione. Il primo zero è l'identificatore del grafico e dopo il prefisso l'indice della finestra.

Rimuoviamo l'indicatore dal grafico usando il comando


ChartIndicatorDelete(

long chart_id, // identificatore del grafico

int sub_window // numero della sottofinestra

const string indicator_shortname // nome breve dell'indicatore

);