Navigation:Home > Content >

CrossMA.mq4

Time: 2017-07-28 | Download file:CrossMA.mq4

//+------------------------------------------------------------------+
//|                                                         CrossMA.mq4 |
//|                      Copyright © 2011, MetaQuotes Software Corp. |
//|                             http://www.forex-tools.tk |
//-------------------------------------------------------------------+

//-------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Green
#property indicator_color2 Red
#property indicator_color3 Green
#property indicator_color4 Red
#property indicator_width1 2
#property indicator_width2 2
#property indicator_width3 1  
#property indicator_width4 1  
//-------------------------------------------------------------------+
extern bool Alerts   = false;
//-------------------------------------------------------------------+
extern int  MAPeriod = 9;
extern int  MAPeriod2 = 18;
extern int  MAMode   = 1; // 0=SMA,1=EMA,2=SSMA,3=LWMA
//-------------------------------------------------------------------+
 
//+------------------------------------------------------------------+
//|            DO NOT MODIFY ANYTHING BELOW THIS LINE!!!             |
//+------------------------------------------------------------------+
 
//-------------------------------------------------------------------+
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
double trend[];
datetime barTime = 0;
double prevTicTrend = 0;
//+------------------------------------------------------------------+
int init()
{
  IndicatorBuffers(5);
  SetIndexBuffer(0,ExtMapBuffer1);
  SetIndexBuffer(1,ExtMapBuffer2);
  SetIndexBuffer(2,ExtMapBuffer3); SetIndexStyle(2,DRAW_ARROW); SetIndexArrow(2,233);
  SetIndexBuffer(3,ExtMapBuffer4); SetIndexStyle(3,DRAW_ARROW); SetIndexArrow(3,234);
  SetIndexBuffer(4,trend);
  StempelCrossMA();
  return(0);
}
int deinit()
{ 
  return(0);
}
//+------------------------------------------------------------------+
int start()
{
  int counted_bars=IndicatorCounted();
  int limit;
//-----   
  if(counted_bars<0) return(-1);
  if(counted_bars>0) counted_bars--;
  limit=MathMin(Bars-counted_bars,Bars-1);
//-----   
  for(int i=limit; i>=0; i--)
  {
  ExtMapBuffer1[i] = iMA(NULL,0,MAPeriod,0,MAMode,PRICE_CLOSE,i);
  ExtMapBuffer2[i] = iMA(NULL,0,MAPeriod2,0,MAMode,PRICE_CLOSE,i);
  ExtMapBuffer3[i] = EMPTY_VALUE;
  ExtMapBuffer4[i] = EMPTY_VALUE;
  trend[i]         = trend[i+1];
//-----     
  double dist = iATR(NULL,0,0,i);           
  double diff = (ExtMapBuffer1[i]-ExtMapBuffer2[i]);
//-----
  if(diff > 0) trend[i] =  1;
  if(diff < 0) trend[i] = -1;
  if(trend[i]!=trend[i+1])
  if(trend[i]==1)
       ExtMapBuffer3[i] = ExtMapBuffer1[i]-dist;
  else ExtMapBuffer4[i] = ExtMapBuffer1[i]+dist;
//+------------------------------------------------------------------+   
    if(Alerts && i == 0 && trend[0] != trend[i+1])
    {
      if(barTime != Time[0])
      {
        if (trend[0] == 1)
        {
          Alert("CrossMA BUY! " + Symbol() + " " + Period());
        } 
        if(trend[0] == -1)
        {
          Alert("CrossMA SELL! " + Symbol() + " " + Period());
        }
      }
      barTime = Time[0];
      if(prevTicTrend != trend[0])
      {
        PlaySound("alert.wav");
      }
      prevTicTrend = trend[0];            
    }            
  }
  return(0);
}
void StempelCrossMA() {
   ObjectCreate("Original Created by SEFC", OBJ_LABEL, 0, 0, 0);
   ObjectSetText("Original Created by SEFC", " ", 10, "Comic Sans MS", Lime);
   ObjectSet("Original Created by SEFC", OBJPROP_CORNER, 2);
   ObjectSet("Original Created by SEFC", OBJPROP_XDISTANCE, 5);
   ObjectSet("Original Created by SEFC", OBJPROP_YDISTANCE, 10);
 }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+




Recommend