Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Доброго времени суток. Очень нужна помощь не могу сообразить что нужно сделать. Если не сложно помогите.
Нужен индикатор, который будет маркировать первый бар каждого месяца. С прорисовкой линий по хай и лоу цен до конца месяца, с выбором количества месяцев.
Пр.(Три месяца. Разметка линиями за 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.
Тогда ответ только на один вопрос
//--- Что здесь не так, при построении линии по лоу. На графике её нет. И Ошибки компиляции тоже нет?
//--- НО по отдельности всё работает.Здесь у тебя имя линии одно и то-же, а должны быть разные.
А зачем ты поудалял и исправил свои сообщения?
Вы не отвечали долго, я подумал, что на глупые вопросы вы не отвечаете, и по этому их удалил.