Не отображает объект на графике.

 

Всем привет!

Я новичок, потому не бейте больно! )

Пишу свой первый  адвайзер.

 Я хочу, чтобы при определенных условиях на графике появлялась стрелочка. Я делаю так: 

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, но все равно не работает.

Однако стрелочки на графике я не вижу.

Что я делаю не так?

Спасибо. 

 
canonier:

Всем привет!

Я новичок, потому не бейте больно! )

Пишу свой первый  адвайзер.

 Я хочу, чтобы при определенных условиях на графике появлялась стрелочка. Я делаю так: 

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()

Спасибо огромное! 

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