столкнулся с проблемой с именами обьектов которые создает индикатор.

 

Здравствуйте, столкнулся с проблемой с именами обьектов которые создает индикатор. Индикатор  создает обьект с именем состоящим из набора цифр  

Как мне кодом можно обратиться именно к последнему созданному обьекту?

 
Aleksei Zhukov:

Здравствуйте, столкнулся с проблемой с именами обьектов которые создает индикатор. Индикатор  создает обьект с именем состоящим из набора цифр  

Как мне кодом можно обратиться именно к последнему созданному обьекту?

Можно перехватывать событие создания нового объекта и там обрабатывать. Но там могут быть нюансы - если есть программное переименование объектов, то оно их тоже будет отлавливать как вновь созданные (при программном переименовании объект удаляется и создается с новым именем как я понял). Вот здесь по этому нюансу создал тему: https://www.mql5.com/ru/forum/452444

При программном переименовании объектов генерируется событие CHARTEVENT_OBJECT_DELETE
При программном переименовании объектов генерируется событие CHARTEVENT_OBJECT_DELETE
  • 2023.08.14
  • www.mql5.com
Особенность, можно сказать, из серии "Филосифия mql4" (не проверял на mt5...
 

Надо проверить в каком порядке объекты в списке объектов. 

string  ObjectName(
   long  chart_id,           // идентификатор графика
   int   pos,                // номер в списке объектов
   int   sub_window=-1,      // номер окна
   int   type=-1             // тип объекта
   );

Это может быть 0 или  ObjectsTotal(0)-1

 
Aleksei Zhukov:

Здравствуйте, столкнулся с проблемой с именами обьектов которые создает индикатор. Индикатор  создает обьект с именем состоящим из набора цифр  

Как мне кодом можно обратиться именно к последнему созданному обьекту?

хинт: если ранее удалять все прочие объёкты то этот будет оставшимся и цикл полного перебора будет малым

:-)

А вообще универсально+надёжно - НИКАК, Только полный перебор и сравнения с прежними образцами 

 

Есть такое свойство

OBJPROP_CREATETIME

Время создания объекта

datetime    r/o


Если в процессе жизни объекта в нем ничего не меняется, то можно попробовать. 

 
Ihor Herasko #:

Есть такое свойство

OBJPROP_CREATETIME

Время создания объекта

datetime    r/o


Если в процессе жизни объекта в нем ничего не меняется, то можно попробовать. 

Надо же, я этим не пользовался, но подозревал что должно быть такое свойство. Открыл документацию, поискал и ничего не нашёл… Вот и так бывает.

 
Ihor Herasko #:

Есть такое свойство

OBJPROP_CREATETIME

Время создания объекта

datetime    r/o


Если в процессе жизни объекта в нем ничего не меняется, то можно попробовать. 

чем это поможет ? 

всё равно перебирать все объекты. 

и есть сомнения по поводу сохранения OBJPROP_CREATETIME в шаблонах - скорее сбросится

 
Maxim Kuznetsov #:

чем это поможет ? 

всё равно перебирать все объекты. 

и есть сомнения по поводу сохранения OBJPROP_CREATETIME в шаблонах - скорее сбросится

Пока это только "умозрительно", не факт, что действительно поможет. Но направление мысли такое: перебрать все объекты и определить наибольшее время создания. Перебрать все объекты придется только один раз вместо двух раз (если говорить о варианте сравнения образов).

 
Alexey Viktorov #:

Открыл документацию, поискал и ничего не нашёл… Вот и так бывает.

То есть до сих пор не нашли? Или речь о том, что было ранее?

 
Ihor Herasko #:

То есть до сих пор не нашли? Или речь о том, что было ранее?

Нее, я искал до вашего сообщения. А потом какой смысл искать? Я вам верю, что такое всё таки есть. И если склероз не накроет мой маразм, то при необходимости буду тщательней искать, зная, что точно есть…))