Navigation:Home > Content >

Alert_SMA-EMA_CrossOver1.mq4

Time: 2016-01-17 | Download file:Alert_SMA-EMA_CrossOver1.mq4

//+------------------------------------------------------------------+
//|                                      Alert SMA-EMA CrossOver.mq4 |
//|                      Copyright © 2007, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Red
#property indicator_color2 Aqua
#property indicator_color3 DodgerBlue
#property indicator_color4 Magenta

//---- Variables Externes
extern int SMAPeriod = 13;
extern int EMAPeriod = 6;
extern int TimeFrame = 240;
extern bool Email    = True;

//---- Indicateurs
double SMACurrent, SMAPrevious, EMACurrent, EMAPrevious;
int    nShift, digit, digits;
int    i,j,limit,counted_bars;

//---- Buffers
double ExtMapBuffer1[];    //SMA
double ExtMapBuffer2[];    //EMA
double ExtMapBuffer3[];    //Fleche Haut
double ExtMapBuffer4[];    //Fleche Bas
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
   {
//---- indicators
//---- Styles et couleur des Lignes
      SetIndexStyle(0,DRAW_LINE);
      SetIndexBuffer(0,ExtMapBuffer1);
      SetIndexStyle(1,DRAW_LINE);
      SetIndexBuffer(1,ExtMapBuffer2);
//---- Styles et couleur des Fleches      
      SetIndexStyle(2, DRAW_ARROW, 0, 1);    // Fleche vers le haut
      SetIndexArrow(2, 233);
      SetIndexBuffer(2, ExtMapBuffer3);
      SetIndexStyle(3, DRAW_ARROW, 0, 1);    // Fleche vers le bas
      SetIndexArrow(3, 234);
      SetIndexBuffer(3, ExtMapBuffer4);
//----       
      switch(Period())
         {
            case     1: nShift = 1;   break;
            case     5: nShift = 3;   break;
            case    15: nShift = 5;   break;
            case    30: nShift = 10;  break;
            case    60: nShift = 15;  break;
            case   240: nShift = 20;  break;
            case  1440: nShift = 80;  break;
            case 10080: nShift = 100; break;
            case 43200: nShift = 200; break;
         }
//----
      digits = MarketInfo(Symbol(),MODE_DIGITS);
//----
      return(0);
   }

//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
   {
//----
   
//----
      return(0);
   }

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
   {
      counted_bars=IndicatorCounted();
//----
      if(counted_bars<0) 
         return(-1);
      if(counted_bars>0) 
         counted_bars--;
      limit=Bars-counted_bars;
   
      for(i=0; i SMACurrent+ digit*Point) && ( EMAPrevious <= SMACurrent))  // Croisement WMA8  up bord supйrieur du tunnel
               {
                  ExtMapBuffer3[i] = Low[i] - nShift*Point;
                  Alert("SMA-EMA CrossOver Going for a BUY Trend Sesion ",SMACurrent," Price ",Close[1]," for ", Symbol(),"-",Period());
                  PlaySound("alert.wav");
                  if (Email)
                     {
                        SendMail("SMA-EMA CrossOver", "SMA-EMA CrossOver Going for a BUY Trend Sesion "+DoubleToStr(SMACurrent, digits)+" Price "+DoubleToStr(Close[1], digits)+" for "+Symbol()+"-"+Period());
                     }
               }
//---- Sell
            if((SMACurrent > EMACurrent+ digit*Point) && ( EMAPrevious >= SMACurrent))  // Croisement WMA8  down bord infйrieur du tunnel
               {
                  ExtMapBuffer4[i] = High[i] + nShift*Point;
                  Alert("SMA-EMA CrossOver Going for a SELL Trend Sesion ",SMACurrent," Price ",Close[1]," for ", Symbol(),"-",Period());
                  PlaySound("alert.wav");
                  if (Email)
                     {
                        SendMail("SMA-EMA CrossOver", "SMA-EMA CrossOver Going for a SELL Trend Sesion "+DoubleToStr(SMACurrent, digits)+" Price "+DoubleToStr(Close[1], digits)+" for "+Symbol()+"-"+Period());
                     }
               }
         }
//----
      return(0);
   }
//+------------------------------------------------------------------+

Recommend