//+------------------------------------------------------------------+
//|                                       rvi and ma cross alert.mq4 |
//|                                                           .....h |
//|                                                  ibfx forum crew |
//+------------------------------------------------------------------+
#property copyright ".....h"
#property link      "ibfx forum crew"

extern int period         =100;

extern double rvilevel    =0.0;


extern int rvialert       =  1;
extern int maalert        =  1;

extern int fast_pds       =  9;
extern int fast_method    =  0;
extern int fast_price     =  0; 

extern int slow_pds       = 90;
extern int slow_method    =  0;
extern int slow_price     =  0; 



#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   
//----
   double rvi1=iRVI(NULL, 0, period,MODE_MAIN,1);

   double rvi2=iRVI(NULL, 0, period,MODE_MAIN,2);
   
   double fastma1=iMA(NULL,0, fast_pds, 0,fast_method,fast_price,1);
   
   double fastma2=iMA(NULL,0, fast_pds, 0,fast_method,fast_price,2);
 
   double slowma1=iMA(NULL,0, slow_pds, 0,slow_method,slow_price,1);
   
   double slowma2=iMA(NULL,0, slow_pds, 0,slow_method,slow_price,2);  
   
   
   if (rvialert==1 && rvi2 < rvilevel && rvi1 > rvilevel )
   Alert(Symbol()+" rvi closed above rvi alert level");
//----

 
   if (rvialert==1 && rvi2 >rvilevel && rvi1 < rvilevel  )
   Alert(Symbol()+" rvi closed below rvi alert level");
//----
   
   if (maalert==1 && fastma1 > slowma1 && fastma2 < slowma2  )
   Alert(Symbol()+"fast ma crossed above slow ma");
//----

 
   if (maalert==1 && fastma1 < slowma1 && fastma2 > slowma2  )
   Alert(Symbol()+"fast ma crossed below slow ma");
   
//----
   return(0);
  }
//+------------------------------------------------------------------+