//+------------------------------------------------------------------+
//|                                    JRissaPreviousCloseLevels.mq4 |
//+------------------------------------------------------------------+

#property indicator_chart_window

extern color  LineColor    =  Aqua;
extern int    LineStyle    =  2;
extern int    LineWidth    =  0;
extern bool   SetLineOnTop = true;
extern color  TrendColor   =  Red;
extern int    TrendStyle   =  2;
extern int    TrendWidth   =  0;
extern int    BarsBack     =  1;
extern int    BetweenBars  =  14;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   ObjectDelete("closeline");
   ObjectDelete("closeline2");
   ObjectDelete("trendline");
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {

  Level("closeline",0,Close[BarsBack], Time[0],LineWidth,LineStyle,LineColor,true);
  Level("closeline2",0,Close[BarsBack+BetweenBars], Time[0],LineWidth,LineStyle,LineColor,true);                      
  Trend_Line(Time[BarsBack+BetweenBars],Time[BarsBack],Close[BarsBack+BetweenBars],Close[BarsBack],TrendColor,TrendStyle,TrendWidth);                  
   return(0);
  }
  
  
void Level(string Levels, int Window,double start,double time,double w, double s,color clr, bool Delete)
  {
   if (Delete) ObjectDelete(Levels);
   if(ObjectFind(Levels)!=0)
     { 
   ObjectCreate(Levels, OBJ_HLINE, 0, Time[0], start,0);
   ObjectSet(Levels, OBJPROP_COLOR, clr);
   ObjectSet(Levels,OBJPROP_BACK,!SetLineOnTop);
   ObjectSet(Levels,OBJPROP_WIDTH,w);
   ObjectSet(Levels,OBJPROP_STYLE,s);
   ObjectSet(Levels,OBJPROP_TIME1,time);
     }
   else
   ObjectMove(Levels, 0, 0, Time[0]);
  } 
void Trend_Line(
    datetime x1, datetime x2, double y1, 
    double y2, color lineColor, double style, int w)
    {
    //~~~~~~~~~~
    string label = "trendline";
    ObjectDelete(label);
    ObjectCreate(label, OBJ_TREND, 0, x1, y1, x2, y2, 0, 0);
    ObjectSet(label, OBJPROP_RAY, 1);
    ObjectSet(label,OBJPROP_BACK,!SetLineOnTop);
    ObjectSet(label, OBJPROP_COLOR, lineColor);
    ObjectSet(label, OBJPROP_STYLE, style);
    ObjectSet(label, OBJPROP_WIDTH, w);
    }
