//+------------------------------------------------------------------+
//|                                                        mn RN.mq4 |
//+------------------------------------------------------------------+
#property copyright "Mn"

#property indicator_chart_window
extern int mLevels = 5;
extern int mMain = 100;
extern int mSub = 25;

color LineColorMain = Blue;
int mLineStyleMain = STYLE_SOLID;
color mCol = Blue;
int mLineStyleSub = STYLE_DOT;

//+------------------------------------------------------------------+
int init()
{
  if(Digits == 3 || Digits == 5)
    {
      mMain *= 10;
      mSub *= 10;
    }
    
   return(0);
}

int deinit()
{
   int obj_total = ObjectsTotal();
   
   for (int i = obj_total; i >= 0; i--) {
      string name= ObjectName(i);
    
      if (StringSubstr(name, 0, 3)=="mRN") 
         ObjectDelete(name);
   }
   
   return(0);
}

//+------------------------------------------------------------------+
int start()
{
   static datetime mLastTime= 0;
    
   if (TimeCurrent() - mLastTime < 1000)
      return (0);
      
   int i, mRN, style, mRNsub, mWidth; 
   double mRNlvl;
   color linecolor;
   
   mRN= Bid / Point;
   mRN= mRN - mRN % mSub;

    for (i = -mLevels; i < mLevels; i++)
   {
      mRNsub = mRN + (i * mSub); 
      
      if (mRNsub % mMain == 0) {
         style = mLineStyleMain;
         linecolor = LineColorMain;
      }
      else {
         style = mLineStyleSub;
         linecolor = mCol;
      }
      
      mWidth = 1;
      
      if (mRNsub % (mMain*10) == 0) {
         mWidth = 2;      
      }

      if (mRNsub % (mMain*100) == 0) {
         mWidth = 3;      
      }
      
      mRNlvl = mRNsub * Point;
      SetLevel(DoubleToStr(mRNlvl, Digits), mRNlvl,  linecolor, style, mWidth, Time[10]);
      mLastTime = TimeCurrent();
   }

   return(0);
}

//+------------------------------------------------------------------+
void SetLevel(string text, double level, color col1, int linestyle, int mWidth, datetime startofday)
 {
   int digits= Digits;
   string mLine= "mRN" + text,
          pricelabel; 

   if (ObjectFind(mLine) != 0)
    {
      ObjectCreate(mLine, OBJ_HLINE, 0, 0, level);
      ObjectSet(mLine, OBJPROP_STYLE, linestyle);
      ObjectSet(mLine, OBJPROP_COLOR, col1);
      ObjectSet(mLine, OBJPROP_WIDTH, mWidth);
      ObjectSet(mLine, OBJPROP_BACK, True);
    }
   else
    {
      ObjectMove(mLine, 0, Time[0], level);
    }
 }
//+------------------------------------------------------------------+


