Creating a robot - page 6

 
SanAlex:

to delete - the function is more complicated there

there are some indicators that also have numbers.

here is a picture of indicator names

Files:
vn0wia.PNG  16 kb
 
SanAlex:

for deletion - there is a more complicated function

Then how can I use the MQL5 manual if everything is clearly spelled out there?

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().

Примечание

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

I delete by the prefix. Or maybe I do not understand something?

Sincerely, Vladimir.

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

Then how can I use the MQL5 handbook if it's all clearly spelled out there?

I delete by the prefix. Or maybe I do not understand something?

Sincerely, Vladimir.

I have never used the Handbook - I just do it by poking until it works.

Here's a script I made.

Files:
 

Dear forum professionals!

Can someone please tell me if I misunderstand the meaning of the word prefix in programming?

Respectfully, Vladimir.

 
MrBrooklin:

Dear forum professionals!

Can someone please tell me if I misunderstand the meaning of the word prefix in programming?

Sincerely, Vladimir.

The same as in Russianhttps://www.linguee.com/english-russian/translation/code+prefix.html

For example: ENUM_ORDER_TYPE_FILLING -> The prefix in this case is enumeration, then _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:

Then how can I use the MQL5 handbook if it's all clearly spelled out there?

I delete by the prefix. Or maybe I do not understand something?

Sincerely, Vladimir.

I think you do not have a window index.

 
Valeriy Yastremskiy:

You don't seem to have a window index.

Hello Valery!

In the code line I wrote the chart_id of the window "0", i.e. the current chart

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

or do you mean "-1" after the prefix? Is it like that?

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

I tried it that way too. It would not delete it anyway.

Sincerely, Vladimir.

 
MrBrooklin:

Hello Valery!

In the code line, I put the chart_id of the window "0", i.e. the main chart window

or do you mean that there is still a "-1" after the prefix? Is it like that?

If so, I also tried it - it still does not delete.

Regards, Vladimir.

I usually use print or alerts, after getting a handle, display it in the alert, and if you can, the indicator name and window index and chart identifier, after the deletion, display the return of the delete function in the alert. The first zero is the chart identifier and after the prefix the window index.

int DelObjV=ObjectsDeleteAll(0,"Examples\\ZigzagColor",-1,-1);
Alert ("DelObjV= " DelObjV);
 
I usually clear handle and calculation part in OnDeinit and everything is deleted. The object is not an indicator.
   IndicatorRelease(h_zz);
   ArrayFree(zz_buf);

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

"Removing an indicator from a chart does not mean that the calculation part of the indicator will also be removed from the terminal memory. To release indicator handle, use IndicatorRelease() function".

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

Usually I step through the print or alerts, after getting a handshake output it to the alert, and if you can name the indicator and the window index and chart identifier, after deletion output the return of the delete function to the alert. The first zero is the chart identifier and after the prefix the window index.

We remove the indicator from the chart using the


ChartIndicatorDelete(

long chart_id, // chart identifier

int sub_window // number of the subwindow

const string indicator_shortname // short indicator name

);