Цена по индикатору

 

Нашел способ для отображения прямоугольника по конкретным точкам конкретного дня.

Отображение происходит по 2-м координатам (p1, t1) и  (p2, t2).

Всё работает хорошо, но когда пытаюсь вытащить значения цен р1 и р2 в советник, то значения цен соответствуют первому объекту на истории, а не последнему.

 Пример работы индикатора

Не могу понять в чем ошибка. 

Думал через команду ObjectSet фиксируются значения. Пробовал достать через ObjectGet, но итог тот же - соответствуют 1-му значению.

Как можно зафиксировать эти значения на весь день, а на следующий день - обновить? 

 

 Вот часть кода где вычисляю значения координат и тут же отправляю в Comment. Однако на графике одно, а в комменте другое

  datetime     t1, t2, t3;

  double       p1, p2;

  int          b1, b2;


  t1=StrToTime(TimeToStr(dt, TIME_DATE)+" "+tb); //время начала рисования прямоугольника, к примеру 00:00

  t2=StrToTime(TimeToStr(dt, TIME_DATE)+" "+te); //время конца рисования прямоугольника, к примеру 23:55

  t3=StrToTime(TimeToStr(dt, TIME_DATE)+" "+tc); //время конца расчета цены для 3-ей координаты, к примеру 10:00 (т.е. прямоугольник перестает обновляться за ценой)

  b1=iBarShift(NULL, 0, t1); 

  b2=iBarShift(NULL, 0, t3);

  p1=High[iHighest(NULL, 0, MODE_HIGH, b1-b2+1, b2)];

  p2=Low[iLowest (NULL, 0, MODE_LOW , b1-b2+1, b2)];

  

  ObjectSet(no, OBJPROP_TIME1 , t1);

  ObjectSet(no, OBJPROP_PRICE1, p1);

  ObjectSet(no, OBJPROP_TIME2 , t2);

  ObjectSet(no, OBJPROP_PRICE2, p2); 

 

  Comment(" p1 = " + p1 + " p2 = " + p2); 

 
Какое имя задавалось объекту с помощью команды ObjectSet, такое имя же нужно использовать при обращении к объекту. При этом, имена объектов не должны быть одинаковыми.
 
Renat Akhtyamov:
Какое имя задавалось объекту с помощью команды ObjectSet, такое имя же нужно использовать при обращении к объекту. При этом, имена объектов не должны быть одинаковыми.

Заработало!!! Спасибо!!!

На решение меня навело имя объекта, которое присваивается каждый день новое.

Такими строчками теперь получаю желаемые цены:

double MaxP=ObjectGetDouble(0,"AS"+i,OBJPROP_PRICE1,0); // где AS - название моего прямоугольника

double MinP=ObjectGetDouble(0,"AS"+i,OBJPROP_PRICE2,0);   

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