EMA-alert and email alert





//+------------------------------------------------------------------+
//|                                                   EMA-alert.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 1

//---- input parameters
extern int ema_period = 34;
//---- buffers
double ExtMapBuffer1[];
extern bool Box_Alert=true;
extern bool Sound_Alert=true;
extern bool Email_Alert=false;
extern int pip_distance = 10;
datetime lastimealert;
//----
double ema_value;
  
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
  
    SetIndexBuffer(0, ExtMapBuffer1);

//---- name for DataWindow and indicator subwindow label
  
//----
   
    return(0);
  }
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
    return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
    int limit;
    int counted_bars = IndicatorCounted();
//---- check for possible errors
    if(counted_bars < 0) 
        return(-1);
//---- last counted bar will be recounted
    if(counted_bars > 0) 
        counted_bars--;
    limit = Bars - counted_bars;
//----
   
   
   
   
    for(int i = 0; i < limit; i++)
      {
       ema_value= iMA(NULL,0,ema_period,0,MODE_EMA,PRICE_CLOSE,i);
        //----
        ExtMapBuffer1[i] = ema_value-Ask ;
        if(MathAbs(ema_value-Bid)<=pip_distance*Point&& lastimealert!= Time[0] )
            {
            
            if(Box_Alert) Alert("Price is within ",pip_distance," pips of ",ema_period," period EMA");
            if(Sound_Alert) PlaySound("alert.wav");
            if(Email_Alert) SendMail("Price Alert on "+Symbol(),"Price is within "+pip_distance+" pips of "+ema_period+" period EMA");
            lastimealert= Time[0];
            }
            
        }




//----
    return(0);
  }
//+------------------------------------------------------------------+





Sample





Analysis



Market Information Used:

Series array that contains open time of each bar


Indicator Curves created:



Indicators Used:

Moving average indicator


Custom Indicators Used:

Order Management characteristics:

Other Features:

It issuies visual alerts to the screen
It plays sound alerts
It sends emails