Не ищет OBJ_TREND

 

Всем привет!

Столкнулся с проблемой....

Программно создаем объекты на графике EURUSD M5:

ObjectCreate(0,"Object_01",OBJ_TREND,0,D'2019.01.25 18:20:00',1.1414,D'2019.01.25 19:35:00',1.13973);
ObjectCreate(0,"Object_02",OBJ_TREND,0,D'2019.01.25 13:20:00',1.13505,D'2019.01.25 15:10:00',1.13361);
ObjectCreate(0,"Object_03",OBJ_TREND,0,D'2019.01.24 19:25:00',1.13096,D'2019.01.24 21:05:00',1.12918); 


Перебираем эти объекты в цикле и затем записываем toWrite в файлик на компе:

   int ChartId = 0;
   string ObjName = "";
   double ObjPrice = 0.0;
   datetime ObjDateTime;
   int QuantityObjs = ObjectsTotal(ChartId,0,OBJ_TREND);
   for (int i = QuantityObjs-1; i>=0; i--){
      ObjName = ObjectName(ChartId,i);
      ObjPrice = ObjectGetDouble(ChartId,ObjName,OBJPROP_PRICE,0);
      ObjDateTime = ObjectGetTimeByValue(ChartId,ObjName,ObjPrice);
      toWrite = toWrite + TimeToString(ObjDateTime,TIME_DATE) + " " + TimeToString(ObjDateTime,TIME_MINUTES) + " " + DoubleToString(ObjPrice,5);
      
      ObjPrice = ObjectGetDouble(ChartId,ObjName,OBJPROP_PRICE,1);
      ObjDateTime = ObjectGetTimeByValue(ChartId,ObjName,ObjPrice);
      toWrite = toWrite + " - " + TimeToString(ObjDateTime,TIME_DATE) + " " + TimeToString(ObjDateTime,TIME_MINUTES) + " " + DoubleToString(ObjPrice,5) + "\n";
      }


В этом случае все работает.

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

Запускаем наш скрипт.....в нашем файле строки с нулевыми данными.

Почему с объектами созданными программно все работает, с объектами созданными вручную НЕ работает?

Скрипт прилагаю.

Файлы:
 

Попробуйте для начала строго следовать справке:

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

Мда...MQl5 все тот же.

Спасибо.

 
AsterBus:

Мда...MQl5 все тот же.

Спасибо.

Причём здесь язык, если Вы не корректно пишите алгоритмы?

 

Я алгоритмы пишу весьма корректно, а вот в справке информация указана весьма не корректно!

В описании ObjectName должно быть указано, что если ObjectTotal вызывался с типом объекта, то ObjectName тоже должен быть вызван с типом объекта.

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

В справке информация должна быть указана прозрачно и четко!

 
AsterBus:

Я алгоритмы пишу весьма корректно, а вот в справке информация указана весьма не корректно!

В описании ObjectName должно быть указано, что если ObjectTotal вызывался с типом объекта, то ObjectName тоже должен быть вызван с типом объекта.

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

В справке информация должна быть указана прозрачно и четко!

  Это правильно,

и замете Что функции ObjectName(....) совершено пофиг

что вернула функция  ObjectsTotal(....).

 
Alekseu Fedotov:

  Это правильно,

и замете Что функции ObjectName(....) совершено пофиг

что вернула функция  ObjectsTotal(....).


 и правильно что пофиг, откуда ей знать что программист ошибся, как ошибку отличить от замысла ?  Программы пока что разумом не обладают и программистам приходится самим следить за всей логикой их же программ. . А в документации все и не напишешь.. 

Причина обращения: