Как получить имена объектов на графике?

 

Здравствуйте. Подскажите, пожалуйста, как я могу получить имена объектов, присутствующих на графике? Общий принцип мне понятен...Он примерно такой:

for(int i=0; i<=ObjectsTotal(); i++)
  {
   Alert(ObjectGetString());
   }

 Знаю, что модификатор в функции будет OBJPROP_NAME, но хотелось бы увидеть полный список аргументов функции ObjectGetString()   необходимых в данном случае.

 

F1 на ObjectGetString нажмите

а лучше ObjectName воспользуйтесь

 
sergeev:

F1 на ObjectGetString нажмите

а лучше ObjectName воспользуйтесь

Спасибо за помощь! И правда лучше использовать ObjectName)
 
Ermak1243:

Здравствуйте. Подскажите, пожалуйста, как я могу получить имена объектов, присутствующих на графике? Общий принцип мне понятен...Он примерно такой:

 Знаю, что модификатор в функции будет OBJPROP_NAME, но хотелось бы увидеть полный список аргументов функции ObjectGetString()   необходимых в данном случае.

Вот делал на днях. Кроме имени получаем, цену объекта,бар и время.

 

   for(int i=ObjectsTotal();i>=0;i--)
     {
      if(ObjectType(ObjectName(i))==OBJ_TREND)
        {
         p1 = ObjectGet(ObjectName(i),OBJPROP_PRICE1);
         p2 = ObjectGet(ObjectName(i),OBJPROP_PRICE2);
         t1 = (datetime)ObjectGet(ObjectName(i),OBJPROP_TIME1);
         t2 = (datetime)ObjectGet(ObjectName(i),OBJPROP_TIME2);
         n1 = iBarShift(NULL,0,t1);
         n2 = iBarShift(NULL,0,t2);

         speed=NormalizeDouble((p2-p1)/(Point*(n1-n2)),1);
         PutText((string)speed,p2,t2);
        }
     }
 
Здравствуйте!

Прошу Вас помочь разобраться - по какой причине не работает в MQL5:

 {
   string vName;
   for(int i=ObjectsTotal  ()-1; i>=0; i--)
     {
      vName = ObjectName(i);
      if(StringFind(vName,name_n) !=-1)
         ObjectDelete(vName);
     }
  }

Ругается на ObjectsTotal

В ошибках MetaEditor пишет:

'ObjectsTotal' - wrong parameters count

Хотя в MQL4 - всё работает.


 
Читайте документацию https://www.mql5.com/ru/docs/objects/objectstotal
 
Sprut 185:
Здравствуйте!

Прошу Вас помочь разобраться - по какой причине не работает в MQL5:

Ругается на ObjectsTotal

В ошибках MetaEditor пишет:

'ObjectsTotal' - wrong parameters count

Хотя в MQL4 - всё работает.

MQL4 и  MQL5 это разные языки. В MQL4 есть только ордера, в  MQL5 ордера, сделки, позиции. Даже одинаковые имена функции разные. F1 помощь

 
a007:

одинаковые имена ... разные

Так одинаковые или разные? )))

 
Sprut 185:
Здравствуйте!

Прошу Вас помочь разобраться - по какой причине не работает в MQL5:

Ругается на ObjectsTotal

В ошибках MetaEditor пишет:

'ObjectsTotal' - wrong parameters count

Хотя в MQL4 - всё работает.


В MQL5 у ObjectsTotal() имеется обязательный аргумент - идентификатор графика. В MQL4 он не обязательный, но тоже имеется.

А разве только на ObjectsTotal() ругается? Там дальше должны быть такие же ошибки по поводу ObjectName() и ObjectDelete().

Также, если name_n является префиксом графических объектов, то всю приведенную конструкцию можно заменить вызовом одной функции:

ObjectsDeleteAll(0, name_n);
 
Ihor Herasko:

Так одинаковые или разные? )))

Так тупо понять? Посмотрите функцию OrderSend(Param1, Param2) в MQL5 и функцию OrderSend(Param1, Param2, Param3, Param4, ... ) в MQL4

Названия одинаковые, но смыслы разные

Или просто лишнее время пусто поговорить?

Уже 5 человек лишнее время пусто поговорить прислали личное сообщение с 1 слово Привет. Ваши люди сделаны копированием?

 
a007:

Так тупо понять?

Что именно понять? Я привел Вашу цитату, которую Вы сами не удосужились внятно написать. Получилось забавно. Это и было мною отмечено.

Посмотрите функцию OrderSend(Param1, Param2) в MQL5 и функцию OrderSend(Param1, Param2, Param3, Param4, ... ) в MQL4

Названия одинаковые, но смыслы разные

Вот теперь Вы правильно написали ))

Уже 5 человек лишнее время пусто поговорить прислали личное сообщение с 1 слово Привет.

Не получается у Вас мысли формулировать )) 

Ваши люди сделаны копированием?

Кто такие "Ваши люди"?