//+------------------------------------------------------------------+
//|                                                  mn LineSets.mq4 |
//+------------------------------------------------------------------+
#property copyright "Mn"

#property indicator_chart_window

extern color mCol = Red, mCol2 = Black;
extern int mLines = 5, mWid = 1;
extern double  mLineSpace1 = 20, mLineSpace2 = 20, mLineSpace3 = 10,mLineSpace4 = 10;
extern bool mLinesUp = true;
double mSpace = 20, mSpaceTab[5];

//+------------------------------------------------------------------+
int init()
  {
    ArrayInitialize(mSpaceTab, 0.0);
    mSpaceTab[1] = mLineSpace1 * Point;
    mSpaceTab[2] = mLineSpace2 * Point;
    mSpaceTab[3] = mLineSpace3 * Point;
    mSpaceTab[4] = mLineSpace4 * Point;
    mSpace *= Point;
    
    if(Digits == 3 || Digits == 5)
     {
       mSpace *= 10;
       for(int j = 0; j < mLines; j++)
         mSpaceTab[j] *= 10;
     }
      
    for(int i = 0; i < mLines; i++)
     {
      ObjectCreate("mMyLine"+i, OBJ_HLINE, 0, 0, 0, 0, 0);
      ObjectSet("mMyLine"+i, OBJPROP_STYLE, STYLE_SOLID);
      ObjectSet("mMyLine"+i, OBJPROP_PRICE1, Close[1] + mSpace);
      ObjectSet("mMyLine"+i, OBJPROP_WIDTH, mWid);
      ObjectSet("mMyLine"+i, OBJPROP_COLOR, mCol);
     }
    for(i = 1; i < mLines; i++)
     {
      ObjectCreate("mMyDLine"+i, OBJ_HLINE, 0, 0, 0, 0, 0);
      ObjectSet("mMyDLine"+i, OBJPROP_STYLE, STYLE_SOLID);
      ObjectSet("mMyDLine"+i, OBJPROP_PRICE1, Close[1] - mSpace);
      ObjectSet("mMyDLine"+i, OBJPROP_WIDTH, mWid);
      ObjectSet("mMyDLine"+i, OBJPROP_COLOR, mCol);
     }
    
    ObjectSet("mMyLine0", OBJPROP_COLOR, mCol2);
      ObjectSet("mMyLine0", OBJPROP_PRICE1, Close[1]);
    mSpaceTab[0] = Close[1];
    
   return(0);
  }

//+------------------------------------------------------------------+
int deinit()
  {
    for(int i = 0; i < mLines; i++)
     {
      ObjectDelete("mMyLine"+i);
      ObjectDelete("mMyDLine"+i);
     }
   
   return(0);
  }

//+------------------------------------------------------------------+
int start()
  {
    double mLastPrice = mSpaceTab[0], mTotSpace = 0, mTotDSpace = 0;
    
    mSpaceTab[0] = ObjectGet("mMyLine0", OBJPROP_PRICE1);
    if(mSpaceTab[0] != mLastPrice)
      {
        for(int i = 1; i < mLines; i++)
          {
              mTotSpace += mSpaceTab[i];
              mTotDSpace -= mSpaceTab[i];
              ObjectSet("mMyLine"+i, OBJPROP_PRICE1, mSpaceTab[0] + mTotSpace);
              ObjectSet("mMyDLine"+i, OBJPROP_PRICE1, mSpaceTab[0] + mTotDSpace);
          }
          
         mLastPrice = mSpaceTab[0];
      }

    return(0);
  }
//+------------------------------------------------------------------+