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

Рейтинг 2087



РЕКОМЕНДУЮ



Индикатор уровней по АТР за месяц

Здравствуйте Андрей
Если несложно индикатор под МТ4 рисующий зоны по среднему ходу за месяц
С начала каждого месяца от хая рисуется зона вниз
Растояние до низа зоны в пункта средний ход за месяца
Аналогично от лоу рисуется зона вверх
При обновлении хай или лоу зоны переносятся выше или ниже
Рисуются с начала месяца по начало следующего месяца
Отображать текущий размер среднего хода
Во внешних настройках
1 за сколько месяцев расчитывать средний ход
2 размер зон в пунктах
3 сколько месяцев отображать на истории
Заранее спасибо!

  • +2
  • Просмотров: 16472
  • 20 января 2017, 19:45
  • DKOLIA
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
Show_Money для MQL5
20 января 2017
22 января 2017

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

+
0
На следующей неделе буду смотреть.
avatar

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

  • 20 января 2017, 20:00
+
+2
avatar

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

  • 20 января 2017, 22:28
+
0
летчик :) 
avatar

  22  poker Сообщений: 801

  • 20 января 2017, 23:37
+
0
Андрей немного не так Сейчас получилось отображает сколько цена прошла в текущем месяце а надо отобразить сколько она может пройти в текущем месяце расчитаным по АТР за 12 мес


Редактирован: 21 января 2017, 21:44
avatar

  15  DKOLIA Автор Сообщений: 33

  • 21 января 2017, 12:36
+
0
Cейчас поближе к истине:




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

input int Count=5;
input int Heigth=500;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
   ObjectsDeleteAll(0,0,OBJ_TEXT);
   ObjectsDeleteAll(0,0,OBJ_RECTANGLE);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutRect(string name,datetime t1,double p1,datetime t2,double p2,color clr)
  {
   ObjectDelete(0,name);
//--- создадим прямоугольник по заданным координатам
   ObjectCreate(0,name,OBJ_RECTANGLE,0,t1,p1,t2,p2);
//--- установим цвет прямоугольника
   ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutText(string name,const string text,double price,datetime time,const color clr)
  {
   ObjectDelete(0,name);
//--- create a "Text" object 
   ObjectCreate(0,name,OBJ_TEXT,0,time,price);
//--- set the text
   ObjectSetString(0,name,OBJPROP_TEXT,text);
//--- set the font of the text
   ObjectSetString(0,name,OBJPROP_FONT,"Arial");
//--- set the font size
   ObjectSetInteger(0,name,OBJPROP_FONTSIZE,11);
//--- set the method binding
   ObjectSetInteger(0,name,OBJPROP_ANCHOR,ANCHOR_UPPER);
//--- set the color
   ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
  }
//+------------------------------------------------------------------+
//| 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[])
  {
//---
   datetime t1=0,t2=0;
   double Hi=0,Lo=0,Mid=0;

   for(int i=1;i<=Count;i++)
     {
      t1=iTime(NULL,PERIOD_MN1,i-1);
      t2=iTime(NULL,PERIOD_MN1,i);
      Hi=iHigh(NULL,PERIOD_MN1,i);
      Lo=iLow(NULL,PERIOD_MN1,i);
      Mid+=(Hi-Lo)/_Point;

      PutRect("UP"+(string)i,t1,Hi,t2,Hi+Heigth*Point,Red);
      PutRect("DN"+(string)i,t1,Lo,t2,Lo-Heigth*Point,Blue);

      string txt=(string)(NormalizeDouble((Hi-Lo)/_Point,0));

      PutText("TXT"+(string)i,txt,Hi+Heigth*4*Point,t1,Blue);
     }

   t1=Time[0];
   t2=iTime(NULL,PERIOD_MN1,0);
   Hi=iHigh(NULL,PERIOD_MN1,0);
   Lo=iLow(NULL,PERIOD_MN1,0);

   PutRect("UP"+(string)0,t1,Lo+(Mid/Count)*Point,t2,Lo+(Mid/Count)*Point+Heigth*Point,Red);
   PutRect("DN"+(string)0,t1,Hi-(Mid/Count)*Point,t2,Hi-(Mid/Count)*Point-Heigth*Point,Blue);
   
   Comment("\n АТР 12 месяцев: ",(int)Mid/Count);
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

avatar

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

  • 22 января 2017, 20:38
+
0
За текущий месяц рисуе правильно Если несложно чтобы индикатор нарисовал на
истории по томуже принципу Возможный ход цены за прошлые месяца Сейчас рисует
просто хай и лоу прошлых месяцев

avatar

  15  DKOLIA Автор Сообщений: 33

  • 22 января 2017, 21:40
+
0
Еще теплее <img src='http://opentraders.ru/templates/skin/g6h/images/smilies/002.gif' alt=' <img src='http://opentraders.ru/templates/skin/g6h/images/smilies/002.gif' alt=' :) '>&nbsp; '>&nbsp; 




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

input int Count=5;
input int Heigth=500;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
   ObjectsDeleteAll(0,0,OBJ_TEXT);
   ObjectsDeleteAll(0,0,OBJ_RECTANGLE);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutRect(string name,datetime t1,double p1,datetime t2,double p2,color clr)
  {
   ObjectDelete(0,name);
//--- создадим прямоугольник по заданным координатам
   ObjectCreate(0,name,OBJ_RECTANGLE,0,t1,p1,t2,p2);
//--- установим цвет прямоугольника
   ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutText(string name,const string text,double price,datetime time,const color clr)
  {
   ObjectDelete(0,name);
//--- create a "Text" object 
   ObjectCreate(0,name,OBJ_TEXT,0,time,price);
//--- set the text
   ObjectSetString(0,name,OBJPROP_TEXT,text);
//--- set the font of the text
   ObjectSetString(0,name,OBJPROP_FONT,"Arial");
//--- set the font size
   ObjectSetInteger(0,name,OBJPROP_FONTSIZE,11);
//--- set the method binding
   ObjectSetInteger(0,name,OBJPROP_ANCHOR,ANCHOR_UPPER);
//--- set the color
   ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
  }
//+------------------------------------------------------------------+
//| 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[])
  {
//---
   datetime t1=0,t2=0;
   double Hi=0,Lo=0,Mid=0;

   for(int i=1;i<=Count;i++)
     {
      Hi=iHigh(NULL,PERIOD_MN1,i);
      Lo=iLow(NULL,PERIOD_MN1,i);
      Mid+=(Hi-Lo)/_Point;
     }

   for(int i=1;i<=Count;i++)
     {
      t1=iTime(NULL,PERIOD_MN1,i-1);
      t2=iTime(NULL,PERIOD_MN1,i);
      Hi=iHigh(NULL,PERIOD_MN1,i);
      Lo=iLow(NULL,PERIOD_MN1,i);

      PutRect("UP"+(string)i,t1,Lo+(Mid/Count)*Point,t2,Lo+(Mid/Count)*Point+Heigth*Point,Red);
      PutRect("DN"+(string)i,t1,Hi-(Mid/Count)*Point,t2,Hi-(Mid/Count)*Point-Heigth*Point,Blue);

      string txt=(string)(NormalizeDouble((Hi-Lo)/_Point,0));

      PutText("TXT"+(string)i,txt,Hi+Heigth*4*Point,t1,Blue);
     }

   t1=Time[0];
   t2=iTime(NULL,PERIOD_MN1,0);
   Hi=iHigh(NULL,PERIOD_MN1,0);
   Lo=iLow(NULL,PERIOD_MN1,0);

   PutRect("UP"+(string)0,t1,Lo+(Mid/Count)*Point,t2,Lo+(Mid/Count)*Point+Heigth*Point,Red);
   PutRect("DN"+(string)0,t1,Hi-(Mid/Count)*Point,t2,Hi-(Mid/Count)*Point-Heigth*Point,Blue);

   Comment("\n АТР "+(string)Count+" месяцев: ",(int)Mid/Count);
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+


Редактирован: 26 января 2017, 05:27
avatar

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

  • 26 января 2017, 05:03
+
0
Андрей Спасибо. Всё классно получилось.
Добавил для себя отображение циферками на текущий месяц
а вот как на истории отобразить циферки несоображу


Редактирован: 28 января 2017, 11:50
avatar

  15  DKOLIA Автор Сообщений: 33

  • 28 января 2017, 11:49
+
0
Прикольный индикатор
avatar

  3  crediteuropebank1 Сообщений: 54 - Александр

  • 2 марта 2020, 16:30
+
0
Добавить бы выбор ТФ в индикаторе… чтоб не только MN, но и любой другой ТФ выставлять…
avatar

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

  • 26 января 2017, 14:13
+
0
Приветствую.Спасибо за индикатор..) индикатор удаляет некоторые объекты с графика, которые не относятся к индикатору.Если что то надо изменить в коде, скажите пожалуйста что и где?
Редактирован: 29 января 2017, 19:17
avatar

  17  Bluesman Сообщений: 67

  • 29 января 2017, 14:41
+
0
не доделанный индюк, ктобы доделал, я уже написал всем кому мог, все молчат
avatar

  9  lafler356 Сообщений: 305

  • 28 августа 2017, 20:49
+
+1
Андрей извиняюсь за назойливость но замечен неправильный расчёт
АТР и отображение на истории. На скрине всё обьяснил.
Пожалуйста поправте

Редактирован: 29 января 2017, 17:34
avatar

  15  DKOLIA Автор Сообщений: 33

  • 29 января 2017, 17:33
+
0
Почему по атр у меня выходит одно число а по вашему индикатору совсем другое разница в 20
avatar

  9  lafler356 Сообщений: 305

  • 17 августа 2017, 18:43

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