Логика работы с OBJ_VLINE

 
Поясните пожалуйста логику работы с вертикальной линией.

ObjectCreate("my_line", OBJ_VLINE, 0, Time[0], 0, 0) - рисует линию на текущем баре,
ObjectCreate("my_line", OBJ_VLINE, 0, Time[10], 0, 0) - рисует линию 10 баров назад.

А как же нарисовать линию в будущем?
Скажу сразу, что при вводе отрицательных значений
линия не появляется вообще (((
 
Поставь будущее время, Time[0]+баров*PeriodSeconds()
 
Благодарю! Получилось )
 

Подскажите пожалуйста как нарисовать несколько вертикальных линий в определенное время?

Этот код рисует линии подряд:

#property indicator_chart_window
//+------------------------------------------------------------------+
int start()
  {
   for(int i=1;i<=100;i++)
     {
      DrawLine("VLine"+TimeToStr(Time[i]),Time[i]);
     }
   Comment("\n ",TimeToString(Time[5],TIME_MINUTES));  
   return (0);
  }
//+------------------------------------------------------------------+
void DrawLine(string name,datetime t)
  {
   ObjectCreate(name,OBJ_VLINE,0,t,0);
   ObjectSet(name,OBJPROP_COLOR,Blue);
   ObjectSet(name,OBJPROP_STYLE,STYLE_SOLID);
   ObjectSet(name,OBJPROP_WIDTH,0);
  }
//+------------------------------------------------------------------+  

 

 

Пытаюсь нарисовать в определенное время:

//+------------------------------------------------------------------+
int start()
  {
   for(int i=1;i<=100;i++)
     {
      if(Time[i]==StringToTime("01:00")) DrawLine("VLine"+TimeToStr(Time[i]),Time[i]);
     }
   Comment("\n ",TimeToString(Time[5],TIME_MINUTES));
   return (0);
  }
//+------------------------------------------------------------------+
void DrawLine(string name,datetime t)
  {
   ObjectCreate(name,OBJ_VLINE,0,t,0);
   ObjectSet(name,OBJPROP_COLOR,Blue);
   ObjectSet(name,OBJPROP_STYLE,STYLE_SOLID);
   ObjectSet(name,OBJPROP_WIDTH,0);
  }
//+------------------------------------------------------------------+   

 Рисует только одну линию.

 

Подскажите пожалуйста где ошибка? 

 

Попробуй так

//+------------------------------------------------------------------+
int start()
  {
   if(Time[i]==StringToTime("01:00"))                  // При наступлении заданного времени
    {
     for(int i=1;i<=100;i++)                           // начинаем цикл рисования линий
      {
       DrawLine("VLine"+TimeToStr(Time[i]),Time[i]);
      }
    }
   Comment("\n ",TimeToString(Time[5],TIME_MINUTES));
   return (0);
  }
//+------------------------------------------------------------------+
void DrawLine(string name,datetime t)
  {
   ObjectCreate(name,OBJ_VLINE,0,t,0);
   ObjectSet(name,OBJPROP_COLOR,Blue);
   ObjectSet(name,OBJPROP_STYLE,STYLE_SOLID);
   ObjectSet(name,OBJPROP_WIDTH,0);
  }
//+------------------------------------------------------------------+   
 
AlexeyVik:

Попробуй так


Есть пример подобный, но я пока не могу понять в чем же у меня ошибка. Понятно что в условии: if(Time[i]==StringToTime("01:00"))
А вот в чем именно?
Так работает: 
if(TimeHour(Time[i])==1) DrawLine("VLine"+TimeToStr(Time[i]),Time[i]);

 
AM2:

Есть пример подобный, но я пока не могу понять в чем же у меня ошибка. Понятно что в условии: if(Time[i]==StringToTime("01:00"))
А вот в чем именно?
Так работает: 
if(TimeHour(Time[i])==1) DrawLine("VLine"+TimeToStr(Time[i]),Time[i]);

 

Ошибка, видимо в голове. Я написал тебе комментарии в своём варианте, а в твоём варианте как будет работать и какое значение будет иметь переменная i постарайся разобраться.

Ошибка в логике построения цикла.

Хотя по невнимательности я тоже допустил незначительную ошибку.

if(Time[i]==StringToTime("01:00"))

должно быть

if(Time[0]==StringToTime("01:00"))
Причина обращения: