//+------------------------------------------------------------------+
//|                                               rectangle_week.mq4 |
//|                                         Himma Youssef for khat17 |
//|                              https://www.fiverr.com/share/Q9RQYp |
//+------------------------------------------------------------------+
#property copyright "Himma Youssef for khat17"
#property link      "https://www.fiverr.com/share/Q9RQYp"
#property version   "1.30"
#property strict
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   


//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---

      
   if(Period()!=60*4)Comment("Please to use 4H TimeFrame!");
   else
    Comment("4H High Low Rectangle Weekly");
ObjectDelete(TimeToString(iTime(NULL,10080,0),TIME_DATE));
         ObjectCreate(TimeToString(iTime(NULL,10080,0),TIME_DATE), OBJ_RECTANGLE, 0, Time[iBarShift(NULL,0,iTime(NULL,10080,0),0)-1], 
         High[iHighest(NULL,0,MODE_HIGH,Bars_numbers,iBarShift(NULL,0,iTime(NULL,10080,0),0)-Bars_numbers)], Time[0], 
         Low[iLowest(NULL,0,MODE_LOW,Bars_numbers,iBarShift(NULL,0,iTime(NULL,10080,0),0)-Bars_numbers)]);
/*ObjectDelete("BullUptxt");
         ObjectCreate("BullUptxt", OBJ_TEXT, 0, Time[iBarShift(NULL,0,iTime(NULL,10080,0),0)-10], 
         High[iHighest(NULL,0,MODE_HIGH,Bars_numbers,iBarShift(NULL,0,iTime(NULL,10080,0),0)-Bars_numbers)]);
   ObjectSet("BullUptxt",OBJPROP_COLOR,clrWhite);
   ObjectSetString("BullUptxt","BullUptxt",OBJPROP_TEXT,TimeToString(iTime(NULL,10080,0),TIME_DATE));
   */
   
ObjectDelete(TimeToString(iTime(NULL,10080,1),TIME_DATE));
         ObjectCreate(TimeToString(iTime(NULL,10080,1),TIME_DATE), OBJ_RECTANGLE, 0, Time[iBarShift(NULL,0,iTime(NULL,10080,1),0)-1], 
         High[iHighest(NULL,0,MODE_HIGH,Bars_numbers,iBarShift(NULL,0,iTime(NULL,10080,1),0)-Bars_numbers)], Time[iBarShift(NULL,0,iTime(NULL,10080,0),0)-1], 
         Low[iLowest(NULL,0,MODE_LOW,Bars_numbers,iBarShift(NULL,0,iTime(NULL,10080,1),0)-Bars_numbers)]);
   /*    ObjectDelete("BullUp1txt");
         ObjectCreate("BullUp1txt", OBJ_TEXT, 0, Time[iBarShift(NULL,0,iTime(NULL,10080,1),0)-10], 
         High[iHighest(NULL,0,MODE_HIGH,Bars_numbers,iBarShift(NULL,0,iTime(NULL,10080,1),0)-Bars_numbers)]);
   ObjectSet("BullUp1txt",OBJPROP_COLOR,clrWhite);
   ObjectSetString("BullUp1txt","BullUp1txt",OBJPROP_TEXT,TimeToString(iTime(NULL,10080,1),TIME_DATE));
     */
ObjectDelete(TimeToString(iTime(NULL,10080,2),TIME_DATE));
         ObjectCreate(TimeToString(iTime(NULL,10080,2),TIME_DATE), OBJ_RECTANGLE, 0, Time[iBarShift(NULL,0,iTime(NULL,10080,2),0)-1], 
         High[iHighest(NULL,0,MODE_HIGH,Bars_numbers,iBarShift(NULL,0,iTime(NULL,10080,2),0)-Bars_numbers)], Time[iBarShift(NULL,0,iTime(NULL,10080,1),0)-1], 
         Low[iLowest(NULL,0,MODE_LOW,Bars_numbers,iBarShift(NULL,0,iTime(NULL,10080,2),0)-Bars_numbers)]);
 /*  ObjectDelete("BullUp2txt");
         ObjectCreate("BullUp2txt", OBJ_TEXT, 0, Time[iBarShift(NULL,0,iTime(NULL,10080,2),0)-10], 
         High[iHighest(NULL,0,MODE_HIGH,Bars_numbers,iBarShift(NULL,0,iTime(NULL,10080,2),0)-Bars_numbers)]);
   ObjectSet("BullUp2txt",OBJPROP_COLOR,clrWhite);
   ObjectSetString("BullUp2txt","BullUp2txt",OBJPROP_TEXT,TimeToString(iTime(NULL,10080,2),TIME_DATE));
   */
ObjectDelete(TimeToString(iTime(NULL,10080,3),TIME_DATE));
         ObjectCreate(TimeToString(iTime(NULL,10080,3),TIME_DATE), OBJ_RECTANGLE, 0, Time[iBarShift(NULL,0,iTime(NULL,10080,3),0)-1], 
         High[iHighest(NULL,0,MODE_HIGH,Bars_numbers,iBarShift(NULL,0,iTime(NULL,10080,3),0)-Bars_numbers)], Time[iBarShift(NULL,0,iTime(NULL,10080,2),0)-1], 
         Low[iLowest(NULL,0,MODE_LOW,Bars_numbers,iBarShift(NULL,0,iTime(NULL,10080,3),0)-Bars_numbers)]);
  /* ObjectDelete("BullUp3txt");
         ObjectCreate("BullUp3txt", OBJ_TEXT, 0, Time[iBarShift(NULL,0,iTime(NULL,10080,3),0)-10], 
         High[iHighest(NULL,0,MODE_HIGH,Bars_numbers,iBarShift(NULL,0,iTime(NULL,10080,3),0)-Bars_numbers)]);
   ObjectSet("BullUp3txt",OBJPROP_COLOR,clrWhite);
   ObjectSetString("BullUp3txt","BullUp3txt",OBJPROP_TEXT,TimeToString(iTime(NULL,10080,3),TIME_DATE));
  */ 
ObjectDelete(TimeToString(iTime(NULL,10080,4),TIME_DATE));
         ObjectCreate(TimeToString(iTime(NULL,10080,4),TIME_DATE), OBJ_RECTANGLE, 0, Time[iBarShift(NULL,0,iTime(NULL,10080,4),0)-1], 
         High[iHighest(NULL,0,MODE_HIGH,Bars_numbers,iBarShift(NULL,0,iTime(NULL,10080,4),0)-Bars_numbers)], Time[iBarShift(NULL,0,iTime(NULL,10080,3),0)-1], 
         Low[iLowest(NULL,0,MODE_LOW,Bars_numbers,iBarShift(NULL,0,iTime(NULL,10080,4),0)-Bars_numbers)]);
 //  ObjectDelete("BullUp4txt");
    //     ObjectCreate("BullUp4txt", OBJ_TEXT, 0, Time[iBarShift(NULL,0,iTime(NULL,10080,4),0)-10], 
   //      High[iHighest(NULL,0,MODE_HIGH,Bars_numbers,iBarShift(NULL,0,iTime(NULL,10080,4),0)-Bars_numbers)]);
  // ObjectSet("BullUp4txt",OBJPROP_COLOR,clrWhite);
  // ObjectSetString("BullUp4txt","BullUp4txt",OBJPROP_TEXT,TimeToString(iTime(NULL,10080,4),TIME_DATE));
   
ObjectDelete(TimeToString(iTime(NULL,10080,5),TIME_DATE));
         ObjectCreate(TimeToString(iTime(NULL,10080,5),TIME_DATE), OBJ_RECTANGLE, 0, Time[iBarShift(NULL,0,iTime(NULL,10080,5),0)-1], 
         High[iHighest(NULL,0,MODE_HIGH,Bars_numbers,iBarShift(NULL,0,iTime(NULL,10080,5),0)-Bars_numbers)], Time[iBarShift(NULL,0,iTime(NULL,10080,4),0)-1], 
         Low[iLowest(NULL,0,MODE_LOW,Bars_numbers,iBarShift(NULL,0,iTime(NULL,10080,5),0)-Bars_numbers)]);
  //       ObjectDelete("BullUp5txt");
    //     ObjectCreate("BullUp5txt", OBJ_TEXT, 0, Time[iBarShift(NULL,0,iTime(NULL,10080,5),0)-10], 
     //    High[iHighest(NULL,0,MODE_HIGH,Bars_numbers,iBarShift(NULL,0,iTime(NULL,10080,5),0)-Bars_numbers)]);
 //  ObjectSet("BullUp5txt",OBJPROP_COLOR,clrWhite);
  // ObjectSetString("BullUp5txt","BullUp5txt",OBJPROP_TEXT,TimeToString(iTime(NULL,10080,5),TIME_DATE));
   
ObjectSet(TimeToString(iTime(NULL,10080,0),TIME_DATE),OBJPROP_COLOR,Rectangle_1);
ObjectSet(TimeToString(iTime(NULL,10080,1),TIME_DATE),OBJPROP_COLOR,Rectangle_2);
ObjectSet(TimeToString(iTime(NULL,10080,2),TIME_DATE),OBJPROP_COLOR,Rectangle_3);
ObjectSet(TimeToString(iTime(NULL,10080,3),TIME_DATE),OBJPROP_COLOR,Rectangle_4);
ObjectSet(TimeToString(iTime(NULL,10080,4),TIME_DATE),OBJPROP_COLOR,Rectangle_5);
ObjectSet(TimeToString(iTime(NULL,10080,5),TIME_DATE),OBJPROP_COLOR,Rectangle_6);

   
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+


extern int Bars_numbers=4;
extern color Rectangle_1=clrBlue;
extern color Rectangle_2=clrBlue;
extern color Rectangle_3=clrBlue;
extern color Rectangle_4=clrBlue;
extern color Rectangle_5=clrBlue;
extern color Rectangle_6=clrBlue;



