Ramil81
RamR3

 
Уровень 5

  Торгую в компаниях:


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

Рейтинг 2087



РЕКОМЕНДУЮ



индикатор (отредактированное)
[*]

Здравствуйте, Андрей. Предыдущий заказ был трудоёмким, поэтому хотел бы попросить доработать индикатор из заказа zakaz.opentraders.ru/45413.html#comments.

Суть доработки должна заключаться в следующем
1)Композиция из сигналов всех индикаторов должна уместиться не более чем в двух барах;
2)возможность включения/отключения каждого индикатора, составляющего итоговый индикатор а также «в 1-м / в 2-х барах»
  • 0
  • Просмотров: 2172
  • 5 июня 2018, 12:42
  • Ramil81
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
индикатор (продолжение)
Следующая запись в группе  
Индикатор не отображается
04 июня 2018
05 июня 2018

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

+
0
1)Композиция из сигналов всех индикаторов должна уместиться не более чем в двух барах


вот этот момент мне непонятен
avatar

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

  • 5 июня 2018, 18:22
+
0
если в настройках выбираем «в одном баре», то стрелка будет рисоваться если сигналы всех индикаторов появляются на одном и том же баре,
а если «в двух барах», то стрелка будет отображаться если сигнал одного индикатора в одном баре а сигнал (однонаправленный) другого индикатора появляется в следующем баре
avatar

  5  Ramil81 Автор Сообщений: 52 - RamR3

  • 6 июня 2018, 00:51
+
0
Сделал вариант. Если неверно покажите на скринах что именно.



//+------------------------------------------------------------------+
//|                                                         3IN1.mq4 |
//|                                              Copyright 2018, AM2 |
//|                                      http://www.forexsyatems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, AM2"
#property link      "http://www.forexsyatems.biz"
#property version   "1.00"
#property strict
#property indicator_chart_window

#property indicator_buffers 2
#property indicator_color1 Yellow
#property indicator_width1 2
#property indicator_color2 Red
#property indicator_width2 2         

extern int Count=100;      // баров для расчета
extern int Shift=1;        // на каком баре сигнал индикатора
extern int Mode=1;         // 1-1    2-2

extern string IndName1="s-StochFlet";
extern int KPeriod=21;
extern int DPeriod=12;
extern int Slowing=3;
extern int method=0;//0-Простое скользящее среднее,1-Экспоненциальное скользящее среднее, //2-Сглаженное скользящее среднее,3-Линейно-взвешенное скользящее среднее
extern int price=0;//0 - Low/High или 1 - Close/Close
extern string для_WPR="";
extern int ExtWPRPeriod=14;
extern double ZoneHighPer= 70;
extern double ZoneLowPer = 30;

extern string IndName2="Waddah_Attar_Explosion";
extern int  Sensetive=150;
extern int  DeadZonePip=15;
extern int  ExplosionPower=15;
extern int  TrendPower=15;

double up[];
double dn[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexStyle(0,DRAW_ARROW);
   SetIndexStyle(1,DRAW_ARROW);
   SetIndexArrow(0,233);
   SetIndexArrow(1,234);
   SetIndexBuffer(0,up);
   SetIndexBuffer(1,dn);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| 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[])
  {

   double buy=0,sell=0,green=0,red=0;

   if(Mode==1)
     {
      for(int i=0;i<Count;i++)
        {
         //stoflet         
         buy=iCustom(NULL,0,IndName1,KPeriod,DPeriod,Slowing,method,price,для_WPR,ExtWPRPeriod,ZoneHighPer,ZoneLowPer,2,i);
         sell=iCustom(NULL,0,IndName1,KPeriod,DPeriod,Slowing,method,price,для_WPR,ExtWPRPeriod,ZoneHighPer,ZoneLowPer,3,i);

         //wada
         green=iCustom(NULL,0,IndName2,Sensetive,DeadZonePip,ExplosionPower,TrendPower,0,i);
         red=iCustom(NULL,0,IndName2,Sensetive,DeadZonePip,ExplosionPower,TrendPower,1,i);

         if(buy>0 && green>0) up[i]=low[i];//buy
         if(sell>0 && red>0) dn[i]=high[i];//sell
        }
     }
/**/
   if(Mode==2)
     {
      for(int i=0;i<Count;i++)
        {
         //stoflet
         buy=iCustom(NULL,0,IndName1,KPeriod,DPeriod,Slowing,method,price,для_WPR,ExtWPRPeriod,ZoneHighPer,ZoneLowPer,2,i+1);
         sell=iCustom(NULL,0,IndName1,KPeriod,DPeriod,Slowing,method,price,для_WPR,ExtWPRPeriod,ZoneHighPer,ZoneLowPer,3,i+1);

         //wada
         green=iCustom(NULL,0,IndName2,Sensetive,DeadZonePip,ExplosionPower,TrendPower,0,i);
         red=iCustom(NULL,0,IndName2,Sensetive,DeadZonePip,ExplosionPower,TrendPower,1,i);

         if(buy>0 && green>0) up[i+1]=low[i+1];
         if(sell>0 && red>0) dn[i+1]=high[i+1];
        }
     }
     
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

Редактирован: 6 июня 2018, 07:42
avatar

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

  • 6 июня 2018, 07:29
+
0
спасибо, вроде бы всё правильно. Хотел бы спросить по п.№2, и именно *из техзадания*«возможность включения/отключения каждого индикатора, составляющего итоговый индикатор а также «в 1-м / в 2-х барах». Это возможно реализовать? чтобы в настройках можно было включать/выключать работу кажого из индикаторов, составляющих итоговый? и еще два вопроса, если можно,
1)есть ли потенциальная возможность отключить перерисовку s-Stochastic в настройках (в следующем месяце, разумеется)? 2)в откорректированном индикаторе вы отключили работу по TVI потому что он не даёт сигналов?..
Спасибо еще раз за проделанную Вами работу.
Редактирован: 8 июня 2018, 08:26
avatar

  5  Ramil81 Автор Сообщений: 52 - RamR3

  • 8 июня 2018, 08:24
+
0
смотрите вариант:


//+------------------------------------------------------------------+
//|                                                         3IN1.mq4 |
//|                                              Copyright 2018, AM2 |
//|                                      http://www.forexsyatems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, AM2"
#property link      "http://www.forexsyatems.biz"
#property version   "1.00"
#property strict
#property indicator_chart_window

#property indicator_buffers 2
#property indicator_color1 Yellow
#property indicator_width1 2
#property indicator_color2 Red
#property indicator_width2 2         

extern int Count=100;      // баров для расчета
extern int Shift=1;        // на каком баре сигнал индикатора
extern int Mode=1;         // 1-1    2-2

extern string IndName1="s-StochFlet";
extern int KPeriod=21;
extern int DPeriod=12;
extern int Slowing=3;
extern int method=0;//0-Простое скользящее среднее,1-Экспоненциальное скользящее среднее, //2-Сглаженное скользящее среднее,3-Линейно-взвешенное скользящее среднее
extern int price=0;//0 - Low/High или 1 - Close/Close
extern string для_WPR="";
extern int ExtWPRPeriod=14;
extern double ZoneHighPer= 70;
extern double ZoneLowPer = 30;

extern string IndName2="Waddah_Attar_Explosion";
extern int  Sensetive=150;
extern int  DeadZonePip=15;
extern int  ExplosionPower=15;
extern int  TrendPower=15;

extern bool Sto=1;
extern bool Wada=1;

double up[];
double dn[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexStyle(0,DRAW_ARROW);
   SetIndexStyle(1,DRAW_ARROW);
   SetIndexArrow(0,233);
   SetIndexArrow(1,234);
   SetIndexBuffer(0,up);
   SetIndexBuffer(1,dn);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| 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[])
  {

   double buy=0,sell=0,green=0,red=0;

   if(Mode==1)
     {
      for(int i=0;i<Count;i++)
        {
         //stoflet         
         buy=iCustom(NULL,0,IndName1,KPeriod,DPeriod,Slowing,method,price,для_WPR,ExtWPRPeriod,ZoneHighPer,ZoneLowPer,2,i);
         sell=iCustom(NULL,0,IndName1,KPeriod,DPeriod,Slowing,method,price,для_WPR,ExtWPRPeriod,ZoneHighPer,ZoneLowPer,3,i);

         //wada
         green=iCustom(NULL,0,IndName2,Sensetive,DeadZonePip,ExplosionPower,TrendPower,0,i);
         red=iCustom(NULL,0,IndName2,Sensetive,DeadZonePip,ExplosionPower,TrendPower,1,i);

         if(Sto && Wada)
           {
            if(buy>0 && green>0) up[i]=low[i];//buy
            if(sell>0 && red>0) dn[i]=high[i];//sell
           }

         if(Sto)
           {
            if(buy>0) up[i]=low[i];//buy
            if(sell>0) dn[i]=high[i];//sell
           }

         if(Wada)
           {
            if(green>0) up[i]=low[i];//buy
            if(red>0) dn[i]=high[i];//sell
           }
        }
     }
/**/
   if(Mode==2)
     {
      for(int i=0;i<Count;i++)
        {
         //stoflet
         buy=iCustom(NULL,0,IndName1,KPeriod,DPeriod,Slowing,method,price,для_WPR,ExtWPRPeriod,ZoneHighPer,ZoneLowPer,2,i+1);
         sell=iCustom(NULL,0,IndName1,KPeriod,DPeriod,Slowing,method,price,для_WPR,ExtWPRPeriod,ZoneHighPer,ZoneLowPer,3,i+1);

         //wada
         green=iCustom(NULL,0,IndName2,Sensetive,DeadZonePip,ExplosionPower,TrendPower,0,i);
         red=iCustom(NULL,0,IndName2,Sensetive,DeadZonePip,ExplosionPower,TrendPower,1,i);

         if(Sto && Wada)
           {
            if(buy>0 && green>0) up[i+1]=low[i+1];
            if(sell>0 && red>0) dn[i+1]=high[i+1];
           }

         if(Sto)
           {
            if(buy>0) up[i+1]=low[i+1];
            if(sell>0) dn[i+1]=high[i+1];
           }

         if(Wada)
           {
            if(green>0) up[i+1]=low[i+1];
            if(red>0) dn[i+1]=high[i+1];
           }
        }
     }

//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

avatar

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

  • 8 июня 2018, 10:23
+
0
сообщение на емейл он может отправлять?
Редактирован: 8 июня 2018, 20:09
avatar

  4  MicroN Сообщений: 29 - Рауль

  • 8 июня 2018, 20:07
+
0
Спасибо, просмотрел эту версию, не совсем так как нужно конечно. Посмотрите пожалуйста скрин
на ситуации №1 стрелка указана правильно, т.к. появился однонаправленный сигнал от Waddah Attar и от s-Stochastic; на ситуации №2 стрелка указана неправильно, т.к. сигнал WaddahAttar противоречит s-Stochastic;
на ситуации №3 стрелки отображать не нужно, т.к. уже есть стрелка того же направления;
на ситуации №4 стрелки отображаются неправильно так как т.к. сигнал WaddahAttar противоречит s-Stochastic;
Хотел спросить, что-то из этого можно скорректировать? хотя бы по ситуациям 1-2-3
Редактирован: 9 июня 2018, 11:07
avatar

  5  Ramil81 Автор Сообщений: 52 - RamR3

  • 9 июня 2018, 11:04
+
0
если не получилось быстро сделать, значит к платному.
avatar

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

  • 9 июня 2018, 11:21
+
0
принято, благодарю Вас за проделанную работу. Возможно ли скорректировать индикатор хотя бы по ситуации №2? Хотя бы в следующем месяце
avatar

  5  Ramil81 Автор Сообщений: 52 - RamR3

  • 9 июня 2018, 12:24
+
0
можно. только на скринах все покажите как должно быть.
avatar

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

  • 9 июня 2018, 12:38
+
0

Стрелки, указанной зелёным, не должно быть, так как сигнал по WaddahAttar в кружочке (указан красным) показывает BUY (зелёный бар), что не совпадает с сигналом по s-Stochastic (указано синим), s-Stochastic показывает Sell, так как красная линия в этом месте выше голубой. И ещё вопрос, можно ли сделать кнопку в настройках, включающую и выключающую перерисовку? Если с кнопкой — трудоёмко, то хотя бы первое. Заранее благодарен.
avatar

  5  Ramil81 Автор Сообщений: 52 - RamR3

  • 9 июня 2018, 19:44

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