//+------------------------------------------------------------------+
//|WLWH_V1.mq4                                                       |
//|Programmed by Me                                                  |
//+------------------------------------------------------------------+

#property indicator_chart_window

extern int Shift_CurrWeekly_LABEL = 8;
extern int Shift_Num_Bars = 48;
extern int CurrWeekly_LineStyle = 1;
extern color line_color_CurrWeeklyUPPER = clrFireBrick;
extern color line_color_CurrWeeklyLOWER = clrDarkGreen;

double WHigh, WLow;
datetime lastTime_TF;
 
void ObjDel()
{
    ObjectDelete("CurrentWeeklyHi");
    ObjectDelete("CurrentWeeklyLo");
    ObjectDelete("WHILO");
    ObjectDelete("WHILO1");
}
                  
int init()
{
    IndicatorShortName("WLWH_V1");
    
    Comment("");
    ObjDel();
    
    WHigh = iHigh(NULL, PERIOD_W1, 0);
    WLow = iLow(NULL, PERIOD_W1, 0);
    
    return(0);
}
   
   
int deinit()
{  
    Comment("");
    ObjDel();
    
    return(0);
}

int start()
{
    datetime tickTime_TF;
    
    tickTime_TF = iTime(NULL, PERIOD_M1, 0);
    if (tickTime_TF != lastTime_TF) 
    {    
	    lastTime_TF = tickTime_TF;
	    
	    ObjDel();
        PlotLineDLY("CurrentWeeklyHi", WHigh, line_color_CurrWeeklyUPPER, 0);
        PlotLineDLY("CurrentWeeklyLo", WLow, line_color_CurrWeeklyLOWER, 0);
      
        if (ObjectFind("WHILO") != 0)
        {
            ObjectCreate("WHILO", OBJ_TEXT, 0, Time[Shift_CurrWeekly_LABEL], WHigh);  
            ObjectSetText("WHILO", "WH", 8, "Arial", line_color_CurrWeeklyUPPER);
        }
        else
        {  
            ObjectMove("WHILO", 0, Time[Shift_CurrWeekly_LABEL], WHigh);
        }
      
        if (ObjectFind("WHILO1") != 0)
        {
            ObjectCreate("WHILO1", OBJ_TEXT, 0, Time[Shift_CurrWeekly_LABEL], WLow);
            ObjectSetText("WHILO1", "WL", 8, "Arial", line_color_CurrWeeklyLOWER);
        }
        else
        {  
            ObjectMove("WHILO1", 0, Time[Shift_CurrWeekly_LABEL], WLow);
        }
    }
  
    return(0);
}

  
void PlotLineDLY(string dayname, double value, double col, double style)
{
    ObjectCreate(dayname, OBJ_TREND, 0, Time[Shift_Num_Bars], value, Time[0], value);
    ObjectSet(dayname, OBJPROP_WIDTH, 1);
    ObjectSet(dayname, OBJPROP_STYLE, CurrWeekly_LineStyle );
    ObjectSet(dayname, OBJPROP_RAY, false);
    ObjectSet(dayname, OBJPROP_BACK, true);
    ObjectSet(dayname, OBJPROP_COLOR, col);
}
  
         


