//+------------------------------------------------------------------+
//|                                               2MA_Last_Cross.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright     "Copyright 2017, Khalil Abokwaik"
#property link          "https://www.mql5.com/en/users/abokwaik"
#property description   "Script showing time and price of 2 moving avergaes last cross"
#property version   "1.00"
#property strict
#property show_inputs
input int   ma1_period  =20;
input ENUM_MA_METHOD   ma1_method  =MODE_EMA;
input int   ma2_period  =50;
input ENUM_MA_METHOD   ma2_method  =MODE_EMA;
input int   max_history =2000;
//+------------------------------------------------------------------+
int cross_shift=0;
double cross_price=0;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   for(int i=1;1<max_history-1;i++)
   {
      double ma1=iMA(Symbol(),0,ma1_period,0,ma1_method,PRICE_CLOSE,i);
      double ma2=iMA(Symbol(),0,ma2_period,0,ma2_method,PRICE_CLOSE,i);
      double pma1=iMA(Symbol(),0,ma1_period,0,ma1_method,PRICE_CLOSE,i+1);
      double pma2=iMA(Symbol(),0,ma2_period,0,ma2_method,PRICE_CLOSE,i+1);
      if((ma1>ma2 && pma1<pma2) ||(ma2>ma1 && pma2<pma1))
      {
         cross_shift=i;
         cross_price=Open[i];
         break;
      }
   }
   if(cross_shift>0)
   {
      Comment("Last Cross Time : "+TimeToStr(iTime(Symbol(),0,cross_shift))+" @ "+DoubleToStr(cross_price,Digits));
   }
   else Comment("No cross in the last "+IntegerToString(max_history)+" bars");
   
  }
//+------------------------------------------------------------------+
