Индикаторы: Индикатор пересечения 2-х МА.

 

Индикатор пересечения 2-х МА.:

Индикатор пересечения 2-х МА.

Author: IURII TOKMAN

 

Чем отличается этот индикатор от МАСД?

В МАСД пересечение 2-х МА - это смена знака...

 
kharko:

Чем отличается этот индикатор от МАСД?

В МАСД пересечение 2-х МА - это смена знака...

Индикатор создан чтобы анализировать ложные пересечения :

 

Ложных пересечений 2-х МА не бывает... Бывают ложные сигналы...

А если в качестве сигнала взять расстояние между кривыми МА, например, в 5 п, а не 0, как в вашем случаи ... Как можно отследить этот сигнал вашим индикатором?

 

Индикатор весьма не плохой. У меня только один вопрос. Как отключить звуковые сигналы, а еще лучше сигналы вообще? 

Потому как они сильно недоработаны и не всегда нужны. Возможность отключить полюбому нужна.

 
XenoX:

Индикатор весьма не плохой. У меня только один вопрос. Как отключить звуковые сигналы, а еще лучше сигналы вообще?

Потому как они сильно недоработаны и не всегда нужны. Возможность отключить полюбому нужна.

удалите строчки

Alert("Downwards "," Period:",Period()," TimeFrame:",GetNameTF());

там их две

 
satop:
XenoX:

Индикатор весьма не плохой. У меня только один вопрос. Как отключить звуковые сигналы, а еще лучше сигналы вообще?

Потому как они сильно недоработаны и не всегда нужны. Возможность отключить полюбому нужна.

удалите строчки

Alert("Downwards "," Period:",Period()," TimeFrame:",GetNameTF());

там их две


Появились 2 ошибки при компиляции

 
XenoX:

Появились 2 ошибки при компиляции


//+------------------------------------------------------------------+
//|                                                         2xMA.mq4 |
//|                                                     Yuriy Tokman |
//|                                            yuriytokman@gmail.com |
//+------------------------------------------------------------------+
#property copyright "Yuriy Tokman"
#property link      "yuriytokman@gmail.com"
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Yellow
#property indicator_color2 Red
#property indicator_color3 Yellow
#property indicator_color4 Red
extern bool Надоел_звук = true;
extern string __1__        = "Fast MA";
extern int PeriodMA_1      = 5;
extern int ma_method_1     = 1;//0-3
extern int applied_price_1 = 6;//0-6
extern string __2__        = "Slow MA";
extern int PeriodMA_2      = 12;
extern int ma_method_2     = 1;//0-3
extern int applied_price_2 = 6;//0-6
extern string __3__ = "Another";
extern int shift           = 0;
extern int arrow_code_up   = 218;
extern int arrow_code_down = 217;
extern int width           = 3;
double ExtMapBuffer0[];
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
datetime LastTime=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtMapBuffer0);
   
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1,ExtMapBuffer1);
   
   SetIndexStyle(2,DRAW_ARROW,EMPTY,width);
   SetIndexArrow(2,arrow_code_up);
   SetIndexBuffer(2,ExtMapBuffer2);
   SetIndexEmptyValue(2,0.0);
   
   SetIndexStyle(3,DRAW_ARROW,EMPTY,width);
   SetIndexArrow(3,arrow_code_down);
   SetIndexBuffer(3,ExtMapBuffer3);
   SetIndexEmptyValue(3,0.0);
   
   IndicatorShortName("2xMA ("+PeriodMA_1+")");
   
   SetIndexLabel(0," ISQ#481971287  ");
   SetIndexLabel(1," yuriytokman@gmail.com  ");
   SetIndexLabel(2," ISQ#481971287  ");
   SetIndexLabel(3," yuriytokman@gmail.com  ");   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
//----
   int limit;
   int counted_bars=IndicatorCounted();
   
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
   for(int i=limit; i>=0; i--)
   {
     double MA_1_0    = iMA(NULL,0,PeriodMA_1,0,ma_method_1,applied_price_1,i+shift);
     double MA_1_1    = iMA(NULL,0,PeriodMA_1,0,ma_method_1,applied_price_1,i+shift+1);
     double MA_2_0    = iMA(NULL,0,PeriodMA_2,0,ma_method_2,applied_price_2,i+shift);
     double MA_2_1    = iMA(NULL,0,PeriodMA_2,0,ma_method_2,applied_price_2,i+shift+1);
     ExtMapBuffer0[i] = MA_1_0;
     ExtMapBuffer1[i] = MA_2_0;
     
     if (MA_1_1>=MA_2_1 && MA_1_0<MA_2_0 && Time[i]!= LastTime)
      {
       ExtMapBuffer2[i]=High[i]+5*Point;
       LastTime = Time[i];
       if(!Надоел_звук)Alert("Downwards "," Period:",Period()," TimeFrame:",GetNameTF());
      }
     
     if (MA_1_1<=MA_2_1 && MA_1_0>MA_2_0 && Time[i]!= LastTime)
      {
       ExtMapBuffer3[i]=Low[i]-5*Point;
       LastTime = Time[i];
       if(!Надоел_звук)Alert("Upwards "," Period:",Period()," TimeFrame:",GetNameTF());
      }        
   }
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 01.09.2005                                                     |
//|  Описание : Возвращает наименование таймфрейма                             |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    TimeFrame - таймфрейм (количество секунд)      (0 - текущий ТФ)         |
//+----------------------------------------------------------------------------+
string GetNameTF(int TimeFrame=0) {
  if (TimeFrame==0) TimeFrame=Period();
  switch (TimeFrame) {
    case PERIOD_M1:  return("M1");
    case PERIOD_M5:  return("M5");
    case PERIOD_M15: return("M15");
    case PERIOD_M30: return("M30");
    case PERIOD_H1:  return("H1");
    case PERIOD_H4:  return("H4");
    case PERIOD_D1:  return("Daily");
    case PERIOD_W1:  return("Weekly");
    case PERIOD_MN1: return("Monthly");
    default:         return("UnknownPeriod");
  }
}
 
kharko:

Чем отличается этот индикатор от МАСД?

В МАСД пересечение 2-х МА - это смена знака...

подробнее что такое Макд, как применять (и чем отличается) здесь:
https://www.metatrader5.com/ru/terminal/help/indicators/oscillators/macd

п.с. (особено в в системах использующих и ма кроссы, и макд, -использовать несколько макдов вместо простых стрелок-указателелей пересечений ... вообще-то можно... если Вам удобней...)

 
kharko:

А если в качестве сигнала взять расстояние между кривыми МА, например, в 5 п, а не 0, как в вашем случаи ... Как можно отследить этот сигнал вашим индикатором?

совершенно также как Вашим Макдом

 

Satop, а что это на вас так набросились - люди что, никогда МА креста не видели?

Причина обращения: