Индикатор ценовых зон "Price Time"

Делал индикатор для анализа цены за указанный промежуток времени. ТФ М1-Н1.
Пробовал переделывать i-Sessions, не получил то что надо. Написал свой вариант.

Настройки:


extern int    BarsCount    = 500;           // Количество баров
extern int    HourTime     = 5;             // Часов в зоне
extern string EndTime      = "2:00";        // Конец зоны 
extern color  RectColor    = Blue;          // Цвет 


Вид с 21 до 2:00. ТФ Н1.



Вид с 21 до 2:00. ТФ М15.



Вид с 10 до 20:00. ТФ Н1.



Вид с 10 до 20:00. ТФ М5.



Код индикатора:


//+------------------------------------------------------------------+
//|                                                    PriceTime.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

//------- Внешние параметры индикатора ----------------------------------------+
extern int    BarsCount    = 500;           // Количество баров
extern int    HourTime     = 5;             // Часов в зоне
extern string EndTime      = "2:00";        // Конец зоны 
extern color  RectColor    = Blue;          // Цвет 
//+----------------------------------------------------------------------------+
//|  Custom indicator initialization function                                  |
//+----------------------------------------------------------------------------+
void init()
  {
   ObjectsDeleteAll(0,OBJ_RECTANGLE);
   Comment("");
  }
//+----------------------------------------------------------------------------+
//|  Custor indicator deinitialization function                                |
//+----------------------------------------------------------------------------+
void deinit()
  {
   ObjectsDeleteAll(0,OBJ_RECTANGLE);
   Comment("");
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutRect(string n,datetime t1,double p1,datetime t2,double p2)
  {
   ObjectCreate(0,n,OBJ_RECTANGLE,0,t1,p1,t2,p2);
   ObjectSetInteger(0,n,OBJPROP_COLOR,RectColor);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int Per()
  {
   int p=0;
   if(Period()==60) p=24;
   if(Period()==30) p=48;
   if(Period()==15) p=96;
   if(Period()==5) p=288;
   if(Period()==1) p=1440;
   return(p);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int Count()
  {
   int c=0;
   if(Period()==60) c=HourTime;
   if(Period()==30) c=HourTime*2;
   if(Period()==15) c=HourTime*4;
   if(Period()==5) c=HourTime*12;
   if(Period()==1) c=HourTime*60;
   return©;
  }
//+------------------------------------------------------------------+
//| 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 s=iBarShift(NULL,0,StringToTime(EndTime));

   for(int i=s; i<BarsCount; i++)
     {
      double h=high[iHighest(NULL,0,MODE_HIGH,Count(),i)];
      double l=low[iLowest(NULL,0,MODE_LOW,Count(),i)];
      PutRect((string)time[i],time[i],h,time[i+Count()],l);
      i=i+Per()-1;
     }
/*
   Comment("\n Shift: ",s,
           "\n Period: ",Period(),
           "\n Period2: ",Per());
*/
   return(rates_total);
  }
//+------------------------------------------------------------------+



Скачать: www.opentraders.ru/downloads/1053/
  • +4
  • Просмотров: 7639
  • 15 февраля 2016, 21:44
  • AM2
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

  Предыдущая запись в моем блоге
Личный пенсионный фонд и MQL4
Следующая запись в моем блоге  
Что на самом деле двигает цены на нефть
10 февраля 2016
15 апреля 2016

Брокер для ваших роботов, 15 лет на рынке

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

+
+1
В выложеном коде на сайте ошибка, т.к. скрипт сайта зачем то заменяет английскую букву С в скобках на знак копирайта.
int Count()
  {
   int c=0;
   if(Period()==60) c=HourTime;
   if(Period()==30) c=HourTime*2;
   if(Period()==15) c=HourTime*4;
   if(Period()==5) c=HourTime*12;
   if(Period()==1) c=HourTime*60;
   return©;
  }

return©; надо заменить вместо копирайта на с в скобках.
avatar

  19  pacak Сообщений: 552 - варвар Andre

  • 16 февраля 2016, 10:11
+
0
В выложеном коде на сайте ошибка, т.к. скрипт сайта зачем то заменяет английскую букву С в скобках на знак копирайта.


Исправить можно только в течение часа после публикации. А так еще файлом есть.
avatar

  35  AM2 Автор Сообщений: 16485 - Андрей

  • 16 февраля 2016, 11:04
+
0
В 2-х словах: как им пользоваться, где и когда сигнал брать?
avatar

  11  preasto Сообщений: 445

  • 22 февраля 2016, 19:22
+
+1
В 2-х словах: как им пользоваться, где и когда сигнал брать?


Индикатор визуальный. Я делал его чтобы смотреть как цена ведет себя в определенное время, допустим ночью.
avatar

  35  AM2 Автор Сообщений: 16485 - Андрей

  • 22 февраля 2016, 19:51
+
0
Добрый день. Интересует аналогичный индикатор, только зоны должны быть разные на каждый день недели и 3 зоны в сутках. Не встречали такого?
avatar

  0  sforex58 Сообщений: 2

  • 31 января 2017, 18:01
+
0
i-Sessions — 5 штук на график с разными временными зонами и днями
Редактирован: 1 февраля 2017, 00:47
avatar

  11  preasto Сообщений: 445

  • 1 февраля 2017, 00:45
+
0
Спасибо. Но i-Session рисует одинаковые зоны на каждый день недели. Интересует вариант с разными зонами по дням недели.(по понедельникам — одни зоны, по вторникам другие зоны и т.д.). В разные дни недели торговля отличается. По понедельникам нет банковских операций — правят спекулянты, среда — день с банковскими операциями и т.д.
avatar

  0  sforex58 Сообщений: 2

  • 1 февраля 2017, 13:11
+
0
Интересует вариант с разными зонами по дням недели.(по понедельникам — одни зоны, по вторникам другие зоны и т.д.

нахера козе баян?
avatar

  10  cardon Сообщений: 376

  • 1 февраля 2017, 22:29

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