Группа "Стол заказов MQL"

Рейтинг 2089



РЕКОМЕНДУЮ



Индикатор временных зон v.2
[*]

Добрый день! Пишу вновь обновить работу данного индикатора www.opentraders.ru/downloads/896/

Тз примерно такое:
Изменить добавление временных зон возможностью установления конкретной минуты(тоесть минимальный тф м1)
Сейчас по умолчанию идёт H1.

//+------------------------------------------------------------------+
//| Bars.mq4 |
//| Copyright 2015, AM2 |
//| www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright «Copyright 2015, AM2»
#property link «www.forexsystems.biz»
#property version «1.00»
#property strict
#property indicator_chart_window

input int bar=4;
input int sdvig=10;
input int bars=150;
input int width=1;
input string Name=«VLine»;
input color clr=clrAliceBlue;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit(void)
{
ObjectsDeleteAll();
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
Comment("");
ObjectsDeleteAll();
//----
return(0);
}
//+------------------------------------------------------------------+
int start()
{
ObjectDelete(Name);
for(int i=sdvig;i<=bars;i++)
{
PutVLine(Name+TimeToStr(Time[i]),Time[i]);
i=i+bar;
}

Comment("\n");
return (0);
}
//+------------------------------------------------------------------+
void PutVLine(string name,datetime t)
{
ObjectCreate(name,OBJ_VLINE,0,t,0);
ObjectSet(name,OBJPROP_COLOR,clr);
ObjectSet(name,OBJPROP_STYLE,STYLE_SOLID);
ObjectSet(name,OBJPROP_WIDTH,width);
}
//+------------------------------------------------------------------+
  • 0
  • Просмотров: 3350
  • 23 января 2016, 12:17
  • MarioDraghi
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
Следующая запись в группе  
5 в 1
23 января 2016
24 января 2016

Комментарии (19)

+
+1
В понедельник буду смотреть.
avatar

  34  AM2 Сообщений: 15889 - Андрей

  • 23 января 2016, 13:39
+
0
На любом ТФ строит абсолютно одинаково согласно настройкам.


input int bar   = 4;    //расстояние между линиями
input int sdvig = 10;   //сдвиг назад от нулевого бара
input int bars  = 150;  //баров для расчета
input int width = 1;    //толщина линии




www.opentraders.ru/downloads/896/
avatar

  34  AM2 Сообщений: 15889 - Андрей

  • 24 января 2016, 08:18
+
0
Переписал индикатор. Убрал отрисовку ненужных линий, сделал расчет на новом баре:

www.opentraders.ru/downloads/896/
avatar

  34  AM2 Сообщений: 15889 - Андрей

  • 25 января 2016, 09:58
+
0
Приветствую! Спасибо за обновление! Вопрос: ставлю отметку например 25.01.2016 09:08, при смене ТФ М5 отметка сдвигается на 25.01.2016 8:35, при смене ТФ H1 отметка стоит на 25.01.2016 01:00. Расчёт каждый раз идет согласно тф? Просто хотелось бы чтобы при смене ТФ она не менялась и оставалась на 25.01.2016 09:08 как на м1 к примеру
avatar

  6  MarioDraghi Автор Сообщений: 72 - Marketmaker

  • 25 января 2016, 10:21
+
0
Вопрос: ставлю отметку например 25.01.2016 09:08, при смене ТФ М5 отметка сдвигается на 25.01.2016 8:35, при смене ТФ H1 отметка стоит на 25.01.2016 01:00. Расчёт каждый раз идет согласно тф? Просто хотелось бы чтобы при смене ТФ она не менялась и оставалась на 25.01.2016 09:08 как на м1 к примеру


Покажите подробнее на скринах, что куда нужно ставить?
avatar

  34  AM2 Сообщений: 15889 - Андрей

  • 25 января 2016, 18:25
+
0
avatar

  6  MarioDraghi Автор Сообщений: 72 - Marketmaker

  • 25 января 2016, 19:38
+
0
Сейчас сдвиг идет по времени:

input string TimeShift = "18:05"; //сдвиг линий по времени







//+------------------------------------------------------------------+
//|                                                         Bars.mq4 |
//|                                              Copyright 2016, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict
#property indicator_chart_window

input int    bar       = 4;       //расстояние между линиями
input int    bars      = 150;     //баров для расчета
input int    width     = 1;       //толщина линии
input string TimeShift = "18:05"; //сдвиг линий по времени
input string Name      = "VLine";
input color  clr       = clrAliceBlue;

datetime tm=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   ObjectsDeleteAll(0,OBJ_VLINE);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   ObjectsDeleteAll(0,OBJ_VLINE);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutVLine(string name,datetime t)
  {
   ObjectCreate(name,OBJ_VLINE,0,t,0);
   ObjectSet(name,OBJPROP_COLOR,clr);
   ObjectSet(name,OBJPROP_STYLE,STYLE_SOLID);
   ObjectSet(name,OBJPROP_WIDTH,width);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   int shift=iBarShift(NULL,0,StringToTime(TimeShift));
   if(tm!=time[0])
     {
      ObjectsDeleteAll(0,OBJ_VLINE);
      for(int i=shift;i<=bars;i++)
        {
         PutVLine(Name+TimeToStr(time[i]),time[i]);
         i=i+bar;
        }
      tm=time[0];
     }

   Comment("\n Shift:",shift);
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

avatar

  34  AM2 Сообщений: 15889 - Андрей

  • 25 января 2016, 21:16
+
0
спасибо, а как сделать чтобы он работал на автономном графике? Именно сдвиг линии по времени там не работает
Редактирован: 25 января 2016, 22:58
avatar

  6  MarioDraghi Автор Сообщений: 72 - Marketmaker

  • 25 января 2016, 22:51
+
0
спасибо, а как сделать чтобы он работал на автономном графике? Именно сдвиг линии по времени там не работает


Нужно смотреть какой у вас график.
avatar

  34  AM2 Сообщений: 15889 - Андрей

  • 26 января 2016, 06:11
+
0
график только h1 в данном случае, и он никак не хочет работать с вашей последней версией, тоесть сдвигаться по времени(минутам)
avatar

  6  MarioDraghi Автор Сообщений: 72 - Marketmaker

  • 26 января 2016, 07:47
+
0
Сдвинулся нормально и на автономном. Время 01:05.

avatar

  34  AM2 Сообщений: 15889 - Андрей

  • 26 января 2016, 08:33
+
0
Чтото вообще не могу понять:) 
avatar

  6  MarioDraghi Автор Сообщений: 72 - Marketmaker

  • 26 января 2016, 08:39
+
0
Если нужно на предыдущие дни сдвинуть указывайте правильно формат даты:

datetime NY=D'2015.01.01 00:00';     // время наступления 2015 года
datetime d1=D'1980.07.19 12:30:27';  // год месяц день часы минуты секунды
datetime d2=D'19.07.1980 12:30:27';  // равнозначно D'1980.07.19 12:30:27';
datetime d3=D'19.07.1980 12';        // равнозначно D'1980.07.19 12:00:00'
datetime d4=D'01.01.2004';           // равнозначно D'01.01.2004 00:00:00'
avatar

  34  AM2 Сообщений: 15889 - Андрей

  • 26 января 2016, 08:45
+
0
Какой код сделать чтобы
input int bar = 4; //расстояние между линиями

было 4.1 например? Вводил double но не сдвигается.
avatar

  6  MarioDraghi Автор Сообщений: 72 - Marketmaker

  • 26 января 2016, 10:22
+
0
Вообщем понял я, конфликт у меня с каким то из скриптов дополнительных… надо разбираться самому, проверил на обычном графике всё работает…
avatar

  6  MarioDraghi Автор Сообщений: 72 - Marketmaker

  • 26 января 2016, 08:49
+
0
Какой код сделать чтобы
input int bar = 4; //расстояние между линиями

было 4.1 например? Вводил double но не сдвигается.


Расстояние между линиями в барах, оно может быть только целым.
avatar

  34  AM2 Сообщений: 15889 - Андрей

  • 27 января 2016, 08:36
+
0
Это ясно. Я к чему. Изначально был сдвиг по барам, позже вы сделали
input string TimeShift = «18:05»; //сдвиг линий по времени а ещё позднее написали
datetime NY=D'2015.01.01 00:00'; // время наступления 2015 года
datetime d1=D'1980.07.19 12:30:27'; // год месяц день часы минуты секунды
datetime d2=D'19.07.1980 12:30:27'; // равнозначно D'1980.07.19 12:30:27';
datetime d3=D'19.07.1980 12'; // равнозначно D'1980.07.19 12:00:00'
datetime d4=D'01.01.2004'; // равнозначно D'01.01.2004 00:00:00'

это мне и помогло, теперь я могу указывать конкретное время вплоть до минуты — начала отсчёта. Но вот беда в другом, расстояние между линиями тоже расчитывается по старому — тоесть расчёт на разных таймфреймах идёт в барах по разному. Требуется конкретно по минутно расчёт. Тоесть: точка отсчёта указание времени(поминутно)(сделано) и расстояние замеренное поминутно(сейчас расчёт идет не верный). Извиняюсь заранее что так сразу не объяснил!


Выше рисунок отмеченая заданая дата 2016.01.27 05:15
интервал например 24 часа( с возможностью изменения 23 часа 59 минут к примеру)
Редактирован: 27 января 2016, 09:15
avatar

  6  MarioDraghi Автор Сообщений: 72 - Marketmaker

  • 27 января 2016, 08:57
+
0
Сейчас сдвигает по времени.






//+------------------------------------------------------------------+
//|                                                         Bars.mq4 |
//|                                              Copyright 2016, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict
#property indicator_chart_window

input int    bars      = 150;        //баров для расчета
input int    width     = 1;          //толщина линии
input string Shift     = "04:00:00"; //сдвиг линий по времени
input string TimeShift = "01:05";    //сдвиг первой линии по времени
input string Name      = "VLine";
input color  clr       = clrAliceBlue;

datetime tm=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   ObjectsDeleteAll(0,OBJ_VLINE);
   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   ObjectsDeleteAll(0,OBJ_VLINE);
   Comment("");
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutVLine(string name,datetime t)
  {
   ObjectCreate(name,OBJ_VLINE,0,t,0);
   ObjectSet(name,OBJPROP_COLOR,clr);
   ObjectSet(name,OBJPROP_STYLE,STYLE_SOLID);
   ObjectSet(name,OBJPROP_WIDTH,width);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   int shift=iBarShift(NULL,0,StringToTime(TimeShift));
   if(tm!=time[0])
     {
      ObjectsDeleteAll(0,OBJ_VLINE);
      for(int i=shift;i<=bars;i++)
        {
         PutVLine(Name+TimeToStr(time[i]),time[i]);
         i=i+iBarShift(NULL,0,StringToTime(Shift));
        }
      tm=time[0];
     }

   Comment("\n Shift:",shift);
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

avatar

  34  AM2 Сообщений: 15889 - Андрей

  • 27 января 2016, 10:11
+
0
Спасибо большое!*tipatogo* 
avatar

  6  MarioDraghi Автор Сообщений: 72 - Marketmaker

  • 27 января 2016, 14:09

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий
Начать торговлю с Альпари