Доброго времени суток. Очень нужна помощь не могу сообразить что нужно сделать. Если не сложно помогите.
Нужен индикатор, который будет маркировать первый бар каждого месяца. С прорисовкой линий по хай и лоу цен до конца месяца, с выбором количества месяцев.
Пр.(Три месяца. Разметка линиями за 3 месяца ). Или образец по которому можно посмотреть.
Вот образец скрипта размечающего день от открытия + и - 20 пунктов. аналогично можно сделать определение месяца и соответственно high и low этого месяца.
Вот образец скрипта размечающего день от открытия + и - 20 пунктов. аналогично можно сделать определение месяца и соответственно high и low этого месяца.
Повнимательней почитай документацию по функции CopyRates() и структуре MqlRates. C их помощью получаем все необходимые данные для реализации твоих хотелок.
Потом покажи что получилось и что не получается. Иначе просьба помочь читается как просьба сделать за тебя. Извини за прямоту.
if(CopyRates(_Symbol, PERIOD_W1, dt, 1, mqlRates) < 0) //--- Если бросили скрипт на выбранную свечкуPrint("");
В моём коде это не свечка, а день. В твоём это неделя.
Из этого получаем время от которого рисовать линию. Тебе надо наверное месяц. Время начала месяца. Но оно редко совпадает с временем начала недели. Так-что тут надо ещё поколдовать как считать первую неделю.
Доброго времени суток. Очень нужна помощь не могу сообразить что нужно сделать. Если не сложно помогите.
Нужен индикатор, который будет маркировать первый бар каждого месяца. С прорисовкой линий по хай и лоу цен до конца месяца, с выбором количества месяцев.
Пр.(Три месяца. Разметка линиями за 3 месяца ). Или образец по которому можно посмотреть.
Заранее Спасибо.
Вот образец скрипта размечающего день от открытия + и - 20 пунктов. аналогично можно сделать определение месяца и соответственно high и low этого месяца.
Вот образец скрипта размечающего день от открытия + и - 20 пунктов. аналогично можно сделать определение месяца и соответственно high и low этого месяца.
AlexeyVik: Спасибо за отзывчивость.
Не знаю правильно ли я изложил свою смыть. Нужно примерно это.
Буду очень признателен если вы поможете, или подскажете как это реализовать в индикаторе.
В программировании я новичок.
Вертикальные линии рисуются правильно.
Я не понимаю, как привязать "горизонт. линии и кружочки к хай и лоу к первой свече."
За любую помощь буду благодарен.
Повнимательней почитай документацию по функции CopyRates() и структуре MqlRates. C их помощью получаем все необходимые данные для реализации твоих хотелок.
Потом покажи что получилось и что не получается. Иначе просьба помочь читается как просьба сделать за тебя. Извини за прямоту.
Вот исходный код. Буду признателен если поможете доработать. Нужно найти Хай и лоу каждой первой недели месяца.
//+------------------------------------------------------------------+
#property copyright ""
#property link ""
#property indicator_chart_window
//--- Внешние Глобальные переменные
extern int TF = 43200; //--- Через сколько баров рисуются линии (На каком Т/Ф)
extern int barsToProcess = 5; //--- Кол-во отображаемых периодов (линий)
extern string TimeFrames = "M1,5,15,30; 60H1; 240H4; 1440D1; 10080W1; 43200MN."; //--- Подсказка кол-во боров в Т/Ф
//--- Глобальные переменные
string Name_Line; //--- Имя Вертикальных уровней
//double Price_H = High[0]; //--- Макс цены
//double Price_L = Low[0]; //--- Мин цены
//+------------------------------------------------------------------+
int init()
{
//---
return(0);
}
//+------------------------------------------------------------------+
int deinit()
{
int i;
for (i=0; i<Bars; i++) //--- Выбираем все установленные объекты
{
ObjectDelete(Name_Line + DoubleToStr(i,0)); //--- Удаляем все установленные линии
}
return(0);
}
//+------------------------------------------------------------------+
int start()
{
int counted_bars = IndicatorCounted(); //--- перем counted_bars = функц. Возвращает количество баров
int limit; //--- переменная старт кол-во баров. Линии рисуем о по всем барам
int i=0; //--- переменная i = 0 обнуление
if(counted_bars > 0) counted_bars --; //--- последний посчитанный бар будет пересчитан
//--- основной цикл
limit = Bars - counted_bars;
for(i = 0; i < limit; i ++)
{
//+----- Выбираем количество линий отображаемых на экране
if(limit > barsToProcess) //--- Если кол-во линий > Кол-ву отображаемых периодов (линий)
{
limit = barsToProcess; //--- Тогда устанавливаем Кол-во отображаемых периодов (линий)
Name_Line = "Time_VLine M" + TF + " "+DoubleToStr(i,0); //--- И присваиваем имя с соответствующими параметрами
//+------------------------ Рисуем линии -----------------------------------------------------+
while (i<limit) //--- Пока есть линии в окне терминала. Или пока висит индикатор в окне терминала.
{
datetime t_Line = iTime(Symbol(),TF,i); //--- В ПЕРЕМ t_Line Будет Присваиваться значение времени открытия бара
{
ObjectCreate (Name_Line + DoubleToStr(i,0),OBJ_VLINE,0,t_Line,0); //--- Создаём обьект вертикальную линию
ObjectSet (Name_Line + DoubleToStr(i,0),OBJPROP_STYLE,2); //--- Со стилем
ObjectSet (Name_Line + DoubleToStr(i,0),OBJPROP_COLOR,DimGray); //--- Со цветом
ObjectSet (Name_Line + DoubleToStr(i,0),OBJPROP_WIDTH,0); //--- С толщиной
ObjectSet (Name_Line + DoubleToStr(i,0),OBJPROP_BACK,0); //--- С типом отображения. Объект на заднем плане
//+-----------------------------------------------------------------------------+
}
i++;
}
}
}
return(0);
}
В моём коде это не свечка, а день. В твоём это неделя.
Из этого получаем время от которого рисовать линию. Тебе надо наверное месяц. Время начала месяца. Но оно редко совпадает с временем начала недели. Так-что тут надо ещё поколдовать как считать первую неделю.
Так сказать почувствуй разницу. В mql4 пока разницы особой нет, но кто знает какие изменения нас могут подстерегать...
//--- Что здесь не так, при построении линии по лоу. На графике её нет. И Ошибки компиляции тоже нет?
//--- НО по отдельности всё работает.
Обрати внимание на имена трендовых.
//----- Для чего нужен этот блок если линия отрисовывается на графике и без него
У меня линий 3. потому и функций 3 и имён линий тоже 3.
Тогда ответ только на один вопрос
//--- Что здесь не так, при построении линии по лоу. На графике её нет. И Ошибки компиляции тоже нет?
//--- НО по отдельности всё работает.Здесь у тебя имя линии одно и то-же, а должны быть разные.
А зачем ты поудалял и исправил свои сообщения?
Вы не отвечали долго, я подумал, что на глупые вопросы вы не отвечаете, и по этому их удалил.