//+------------------------------------------------------------------+
//|                                                    HMA Cross.mq4 |
//|                         Revamped and Formatted For HMA By BLUR71 |
//|                   Original Code By Kalenzo, Modded By Newdigital |
//+------------------------------------------------------------------+
#property copyright "BLUR71"
#property link      "blrobertsjr@hotmail.com"
#property link      "www.forex-tsd.com"  
#property indicator_chart_window
#property indicator_color1 Aqua
#property indicator_color2 Magenta
#property indicator_width1 3
#property indicator_width2 3
#property indicator_buffers 2
extern string HMAFile    = "HMA Color NRP";
extern double HMAPeriod1 =  7,
              HMAPrice1  =  6,
              HMAType1   =  3,
              HMAPeriod2 = 12,
              HMAPrice2  =  6,
              HMAType2   =  3,
              SellFilter =  0,
              BuyFilter  =  0;
extern string AlertFile  = "Alert.wav";
extern bool   AlertCross = true,
              AlertSound = false,
              AlertInfo  = false,
              DataSelect = false;
//----
double UpBuffer[],
       DnBuffer[],
       alertBar;
//----
int init()
  {SetIndexStyle(0,DRAW_ARROW,EMPTY);
   SetIndexStyle(1,DRAW_ARROW,EMPTY);
   SetIndexBuffer(0,UpBuffer);
   SetIndexBuffer(1,DnBuffer);
   SetIndexArrow(0,233);
   SetIndexArrow(1,234);
   SetIndexLabel(0,"Up");
   SetIndexLabel(1,"Down");
   if(DataSelect==false)
   SetIndexLabel(0,NULL);
   SetIndexLabel(1,NULL);
   return(0);}
//----
int deinit()
 { return(0); }
//----
int start()
  {int limit,
       counted_bars=IndicatorCounted();
   if(counted_bars<0) counted_bars=0;
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
   for(int i = 0 ;i < limit ;i++)
     {double PrevHMA1 = iCustom(NULL,0,HMAFile,HMAPeriod1,HMAPrice1,HMAType1,0,i+1),
             CurrHMA1 = iCustom(NULL,0,HMAFile,HMAPeriod1,HMAPrice1,HMAType1,0,i),
             PrevHMA2 = iCustom(NULL,0,HMAFile,HMAPeriod2,HMAPrice2,HMAType2,0,i+1),
             CurrHMA2 = iCustom(NULL,0,HMAFile,HMAPeriod2,HMAPrice2,HMAType2,0,i);
//----
     if( CurrHMA1 > (CurrHMA2 +(BuyFilter*Point)) && PrevHMA1 <= PrevHMA2)
      {UpBuffer[i] = iLow(Symbol(),0,i)-(3*Point);
       DnBuffer[i] = EMPTY_VALUE;
      if (AlertSound==1) PlaySound(AlertFile);
      if (AlertCross==1 && Bars>alertBar) {Alert(Symbol(),Period()," HMA "+DoubleToStr(HMAPeriod1,0)+" x "+
                                           DoubleToStr(HMAPeriod2,0)+" Buy");alertBar = Bars;}
      if (AlertInfo==1) Comment (" HMA X Buy @ Ask:",Ask,", Bid:",Bid,", ",TimeToStr(CurTime(),TIME_DATE)," ",
                        TimeHour(CurTime()),":",TimeMinute(CurTime()),", ",Symbol()," ",Period());}
      else if( PrevHMA1 >= PrevHMA2 && CurrHMA1 < (CurrHMA2 - (SellFilter*Point)))
      {UpBuffer[i] = EMPTY_VALUE;
       DnBuffer[i] = iHigh(Symbol(),0,i)+(3*Point);
      if (AlertSound==1) PlaySound(AlertFile);
      if (AlertCross==1 && Bars>alertBar) {Alert(Symbol(),Period()," HMA "+DoubleToStr(HMAPeriod1,0)+" x "+
                                           DoubleToStr(HMAPeriod2,0)+" Sell");alertBar = Bars;} 
      if (AlertInfo==1) Comment (" HMA X Sell @ Ask:",Ask,", Bid:",Bid,", ",TimeToStr(CurTime(),TIME_DATE)," ",
                                  TimeHour(CurTime()),":",TimeMinute(CurTime()),", ",Symbol()," ",Period());}
      else
      {DnBuffer[i] = EMPTY_VALUE;
       UpBuffer[i] = EMPTY_VALUE;}}
//----
  return(0);}
//----