Какое имя задавалось объекту с помощью команды ObjectSet, такое имя же нужно использовать при обращении к объекту. При этом, имена объектов не должны быть одинаковыми.
Renat Akhtyamov:
Какое имя задавалось объекту с помощью команды ObjectSet, такое имя же нужно использовать при обращении к объекту. При этом, имена объектов не должны быть одинаковыми.
Какое имя задавалось объекту с помощью команды ObjectSet, такое имя же нужно использовать при обращении к объекту. При этом, имена объектов не должны быть одинаковыми.
Заработало!!! Спасибо!!!
На решение меня навело имя объекта, которое присваивается каждый день новое.
Такими строчками теперь получаю желаемые цены:
double MaxP=ObjectGetDouble(0,"AS"+i,OBJPROP_PRICE1,0); // где AS - название моего прямоугольника
double MinP=ObjectGetDouble(0,"AS"+i,OBJPROP_PRICE2,0);
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Нашел способ для отображения прямоугольника по конкретным точкам конкретного дня.
Отображение происходит по 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);