Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Подпишись на нашу страницу в Facebook. Следи за последними новостями!
Виталик
47
Виталик 2015.04.04 06:49 
Поясните пожалуйста логику работы с вертикальной линией.

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

А как же нарисовать линию в будущем?
Скажу сразу, что при вводе отрицательных значений
линия не появляется вообще (((
Alexey Viktorov
5192
Alexey Viktorov 2015.04.04 11:24  
Поставь будущее время, Time[0]+баров*PeriodSeconds()
Виталик
47
Виталик 2015.04.04 12:18  
Благодарю! Получилось )
Andrew Kornishkin
6685
Andrew Kornishkin 2015.08.18 08:49  

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

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

#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);
  }
//+------------------------------------------------------------------+   

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

 

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

Alexey Viktorov
5192
Alexey Viktorov 2015.08.18 09:06  

Попробуй так

//+------------------------------------------------------------------+
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);
  }
//+------------------------------------------------------------------+   
Andrew Kornishkin
6685
Andrew Kornishkin 2015.08.18 10:08  
AlexeyVik:

Попробуй так


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

Alexey Viktorov
5192
Alexey Viktorov 2015.08.18 11:30  
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"))
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий