//+------------------------------------------------------------------+
//|                                                 mn MoveAlert.mq4 |
//+------------------------------------------------------------------+
#property copyright "Mn"

#property indicator_chart_window

extern double mMove = 35;
extern int mStartHour = 10, mTF = 60;
extern color mColour1 = Blue, mColour2 = Red;

int mPipFact, mUpTime, mDownTime;
double mHigh = 0, mLow = 0;
bool mUpAlert = false, mDnAlert = false;

//+------------------------------------------------------------------+
int init()
  {
    if(Digits == 3 || Digits == 5)
      mPipFact = 10;
    else
       mPipFact = 1;
       
    mMove = mMove * Point * mPipFact;   
    
     ObjectCreate("mRangeH", OBJ_HLINE, 0, 0, 0, 0, 0);
     ObjectSet("mRangeH", OBJPROP_COLOR, mColour1);
     
     ObjectCreate("mRangeL", OBJ_HLINE, 0, 0, 0, 0, 0);
     ObjectSet("mRangeL", OBJPROP_COLOR, mColour2);
    
   return(0);
  }

//+------------------------------------------------------------------+
int deinit()
  {
   ObjectDelete("mRangeH");
   ObjectDelete("mRangeL");
   
   return(0);
  }

//+------------------------------------------------------------------+
int start()
  {
    string mStr = "";
    
    if(TimeHour(Time[0]) == mStartHour)
      {
       mHigh = iOpen(NULL, 60, 0) + mMove;
       mLow  = iOpen(NULL, 60, 0) - mMove;
       
       ObjectSet("mRangeH", OBJPROP_PRICE1, mHigh);
       ObjectSet("mRangeL", OBJPROP_PRICE1, mLow);
      }
    
       if(Close[0] >= mHigh && !mUpAlert && iTime(NULL, mTF, 0) > mUpTime)
         {
           Alert("Move Alert ", Symbol(), " UP move ");
           mUpTime = Time[0];
           mUpAlert = true; mDnAlert = false;
           mStr = Symbol() + " Opening range broken UP";
           SendMail("OpenRange Alert", mStr);
         }
    
       if(Close[0] <= mLow && !mDnAlert  && iTime(NULL, mTF, 0) > mDownTime)
         {
           Alert("Move Alert ", Symbol(), " DOWN move ");
           mDownTime = Time[0];
           mUpAlert = false; mDnAlert = true;
           mStr = Symbol() + " Opening range broken DOWN";
           SendMail("OpenRange Alert", mStr);
         }

   return(0);
  }
//+------------------------------------------------------------------+

