- [ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда.
- Зачем появляются вертикальные линии???
- потерялся индикатор
Подскажите пожалуйста как нарисовать несколько вертикальных линий в определенное время?
Этот код рисует линии подряд:
#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); } //+------------------------------------------------------------------+
Есть пример подобный, но я пока не могу понять в чем же у меня ошибка. Понятно что в условии: 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"))
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования