Всем привет!
Я новичок, потому не бейте больно! )
Пишу свой первый адвайзер.
Я хочу, чтобы при определенных условиях на графике появлялась стрелочка. Я делаю так:
void OnTick()
{
...
if ((TTS_Val[0]-TTS_Val[1])>50)
{
ObjectCreate(0,"ArrowBuy",OBJ_ARROW_UP,0,0,mrate[0].open);
}
...
}
TTS_Val[0] и TTS_Val[1] забирают данные с индикаторов. В них попадают корректные значения.
В mrate[0].open поступает корректная цена открытия. Пробовал ставить 0, но все равно не работает.
Однако стрелочки на графике я не вижу.
Что я делаю не так?
Спасибо.
Пример тут: OBJ_ARROW_UP
if(!ObjectCreate(chart_ID,name,OBJ_ARROW_UP,sub_window,time,price))
{
Print(__FUNCTION__,
": не удалось создать знак \"Стрелка вверх\"! Код ошибки = ",GetLastError());
return(false);
}
Вы же задаёте время равное "0", а нужно взять реальное время. Или текущее (TimeCurrent()) или время открытия последнего бара.
Бинго!!
Заменил 0 на TimeCurrent() и все заработало! )))
До этого момента я думал, что 0 - это и есть TimeCurrent()
Спасибо огромное!
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Всем привет!
Я новичок, потому не бейте больно! )
Пишу свой первый адвайзер.
Я хочу, чтобы при определенных условиях на графике появлялась стрелочка. Я делаю так:
void OnTick()
{
...
if ((TTS_Val[0]-TTS_Val[1])>50)
{
ObjectCreate(0,"ArrowBuy",OBJ_ARROW_UP,0,0,mrate[0].open);
}
...
}
TTS_Val[0] и TTS_Val[1] забирают данные с индикаторов. В них попадают корректные значения.
В mrate[0].open поступает корректная цена открытия. Пробовал ставить 0, но все равно не работает.
Однако стрелочки на графике я не вижу.
Что я делаю не так?
Спасибо.