//+------------------------------------------------------------------+
//|                                            Multi_Zone_Candle.mq4 |
//|                                                            Dadas |
//|                                   http://www.fx-nvatc.comeze.com |
//+------------------------------------------------------------------+
#property copyright "Dadas"
#property link      "http://www.fx-nvatc.comeze.com"

#property indicator_chart_window

//Rectangles section:
extern color HL_Color = Moccasin; 
extern color HH_Color = Moccasin; 
//Y1_Rectangle:
extern bool Show_Y1_Rectangle = false;
extern color Y1_Rectangle_Color = Gainsboro;
extern bool  Y1_Rectangle_Bckg = true ;

int   Y1_Rectangle_Frame = 2 ;
int   Y1_Rectangle_Tf    = 518400;
int Y1_Rectangle_Offset = 1;
datetime Y1_Rectangle_time1,Y1_Rectangle_time2;
double Y1_Rectangle_price1,Y1_Rectangle_price2,Y1_Rectangle_price3,Y1_Rectangle_price4,Y1_Rectangle_price5,Y1_Rectangle_price6;
int Y1_Rectangle_shift;
//MN_Rectangle:
extern bool Show_MN_Rectangle = false;
extern int   MN_Rectangle_shift=1;
extern color MN_Rectangle_Color = Gainsboro;
extern bool  MN_Rectangle_Bckg = true ;

int   MN_Rectangle_Frame = 2 ;
int   MN_Rectangle_Tf    = 43200;
int MN_Rectangle_Offset = 1;
datetime MN_Rectangle_time1,MN_Rectangle_time2;
double MN_Rectangle_price1,MN_Rectangle_price2,MN_Rectangle_price3,MN_Rectangle_price4,MN_Rectangle_price5,MN_Rectangle_price6;
// int MN_Rectangle_shift;
//W1_Rectangle:
extern bool Show_W1_Rectangle = false;
extern int   W1_Rectangle_shift=1;
extern color W1_Rectangle_Color = Gainsboro;
extern bool  W1_Rectangle_Bckg = true ;

int   W1_Rectangle_Frame = 2 ;
int   W1_Rectangle_Tf    = 10080;
int W1_Rectangle_Offset = 1;
datetime W1_Rectangle_time1,W1_Rectangle_time2;
double W1_Rectangle_price1,W1_Rectangle_price2,W1_Rectangle_price3,W1_Rectangle_price4,W1_Rectangle_price5,W1_Rectangle_price6;
// int W1_Rectangle_shift;
//D1_Rectangle:
extern bool Show_D1_Rectangle = false;
extern int   D1_Rectangle_shift=1;
extern color D1_Rectangle_Color = Gainsboro;
extern bool  D1_Rectangle_Bckg = true ;

int   D1_Rectangle_Frame = 2 ;
int   D1_Rectangle_Tf    = 1440;
int D1_Rectangle_Offset = 1;
datetime D1_Rectangle_time1,D1_Rectangle_time2;
double D1_Rectangle_price1,D1_Rectangle_price2,D1_Rectangle_price3,D1_Rectangle_price4,D1_Rectangle_price5,D1_Rectangle_price6;
// int D1_Rectangle_shift;
//H4_Rectangle:
extern bool Show_H4_Rectangle = false;
extern int   H4_Rectangle_shift=1;
extern color H4_Rectangle_Color = Gainsboro;
extern bool  H4_Rectangle_Bckg = true ;

int   H4_Rectangle_Frame = 2 ;
int   H4_Rectangle_Tf    = 240;
int H4_Rectangle_Offset = 1;
datetime H4_Rectangle_time1,H4_Rectangle_time2;
double H4_Rectangle_price1,H4_Rectangle_price2,H4_Rectangle_price3,H4_Rectangle_price4,H4_Rectangle_price5,H4_Rectangle_price6;
// int H4_Rectangle_shift;
//H1_Rectangle:
extern bool Show_H1_Rectangle = false;
extern int   H1_Rectangle_shift=1;
extern color H1_Rectangle_Color = Gainsboro;
extern bool  H1_Rectangle_Bckg = true ;

int   H1_Rectangle_Frame = 2 ;
int   H1_Rectangle_Tf    = 60;
int H1_Rectangle_Offset = 1;
datetime H1_Rectangle_time1,H1_Rectangle_time2;
double H1_Rectangle_price1,H1_Rectangle_price2,H1_Rectangle_price3,H1_Rectangle_price4,H1_Rectangle_price5,H1_Rectangle_price6;
// int H1_Rectangle_shift;
//----

//Candle Index section:
extern bool Show_Candle_Index = true;
extern color Candle_Index_ArrowColor = Black;

int   Candle_Index_ArrowCode = 158;
int Candle_Index_Arrow;
double Candle_Index_price;
//----
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
// Candle Index section:

   Candle_Index_Arrow = Bars;

  for(int Candle_Index_i = 0 ; Candle_Index_i < Candle_Index_Arrow ; Candle_Index_i++)
  {
      Candle_Index_CreateArrow("Candle_Index = "+Candle_Index_i ,Candle_Index_ArrowColor,Candle_Index_ArrowCode);
  }
//----
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
//Rectangles section:
  ObjectDelete("Y1_Rectangle"); 
  ObjectDelete("MN_Rectangle");  
  ObjectDelete("W1_Rectangle");  
  ObjectDelete("D1_Rectangle");  
  ObjectDelete("H4_Rectangle"); 
  ObjectDelete("H1_Rectangle"); 

  ObjectDelete("Y1_Rectangle_HL");   
  ObjectDelete("MN_Rectangle_HL");  
  ObjectDelete("W1_Rectangle_HL");  
  ObjectDelete("D1_Rectangle_HL");  
  ObjectDelete("H4_Rectangle_HL"); 
  ObjectDelete("H1_Rectangle_HL");

  ObjectDelete("Y1_Rectangle_HH");  
  ObjectDelete("MN_Rectangle_HH");  
  ObjectDelete("W1_Rectangle_HH");  
  ObjectDelete("D1_Rectangle_HH");  
  ObjectDelete("H4_Rectangle_HH"); 
  ObjectDelete("H1_Rectangle_HH");
//----

//Candle Index section:
  Candle_Index_Arrow = Bars;
  for(int Candle_Index_i = 0 ; Candle_Index_i < Candle_Index_Arrow ; Candle_Index_i++)
  {
     ObjectDelete("Candle_Index = "+Candle_Index_i);      
  }  
//----    
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
//----
//Rectangles section:
//Y1_Rectangle:
if(Show_Y1_Rectangle==true&&Period()==43200)
  {

if(Month()==1){int start_price_shift = 12; int end_price_shift = 1;}
if(Month()==2){ start_price_shift = 13; end_price_shift = 2;}
if(Month()==3){ start_price_shift = 14; end_price_shift = 3;}
if(Month()==4){ start_price_shift = 15; end_price_shift = 4;}
if(Month()==5){ start_price_shift = 16; end_price_shift = 5;}
if(Month()==6){ start_price_shift = 17; end_price_shift = 6;}
if(Month()==7){ start_price_shift = 18; end_price_shift = 7;}
if(Month()==8){ start_price_shift = 19; end_price_shift = 8;}
if(Month()==9){ start_price_shift = 20; end_price_shift = 9;}
if(Month()==10){ start_price_shift = 21; end_price_shift = 10;}
if(Month()==11){ start_price_shift = 22; end_price_shift = 11;} 
if(Month()==12){ start_price_shift = 23; end_price_shift = 12;} 
Y1_Rectangle_price1 = High[iHighest(NULL, 43200, MODE_HIGH,12,end_price_shift)];
Y1_Rectangle_price2 = Low[iLowest(NULL, 43200, MODE_LOW,12,end_price_shift)];

if(iOpen(NULL,43200,start_price_shift)<iClose(NULL,43200,end_price_shift))
  {
Y1_Rectangle_price3 = Y1_Rectangle_price1;
Y1_Rectangle_price4 = iClose(NULL, 43200, end_price_shift);
Y1_Rectangle_price5 = iOpen(NULL, 43200, start_price_shift);
Y1_Rectangle_price6 = Y1_Rectangle_price2;
  }
if(iOpen(NULL,43200,start_price_shift)>iClose(NULL,43200,end_price_shift))
  {
Y1_Rectangle_price3 = Y1_Rectangle_price1;
Y1_Rectangle_price4 = iOpen(NULL, 43200, start_price_shift);
Y1_Rectangle_price5 = iClose(NULL, 43200, end_price_shift);
Y1_Rectangle_price6 = Y1_Rectangle_price2;
  }

Y1_Rectangle_time1 = iTime(NULL, Period(), Bars); // start_price_shift);
Y1_Rectangle_time2 = iTime(NULL, 43200, end_price_shift)+Y1_Rectangle_Tf*60*Y1_Rectangle_Offset;
//----
if(Period()==43200)
  {
     ObjectDelete("Y1_Rectangle");
     ObjectCreate("Y1_Rectangle", OBJ_RECTANGLE,0,Y1_Rectangle_time1,Y1_Rectangle_price1,Y1_Rectangle_time2,Y1_Rectangle_price2);
     ObjectSet("Y1_Rectangle", OBJPROP_BACK,Y1_Rectangle_Bckg);
     ObjectSet("Y1_Rectangle", OBJPROP_COLOR,Y1_Rectangle_Color); 
     ObjectSet("Y1_Rectangle", OBJPROP_WIDTH,Y1_Rectangle_Frame);
   
     ObjectDelete("Y1_Rectangle_HL");
     ObjectCreate("Y1_Rectangle_HL", OBJ_RECTANGLE,0,Y1_Rectangle_time1,Y1_Rectangle_price3,Y1_Rectangle_time2,Y1_Rectangle_price4);
     ObjectSet("Y1_Rectangle_HL", OBJPROP_BACK,Y1_Rectangle_Bckg);
     ObjectSet("Y1_Rectangle_HL", OBJPROP_COLOR,HL_Color); 
     ObjectSet("Y1_Rectangle_HL", OBJPROP_WIDTH,Y1_Rectangle_Frame);
      
     ObjectDelete("Y1_Rectangle_HH");
     ObjectCreate("Y1_Rectangle_HH", OBJ_RECTANGLE,0,Y1_Rectangle_time1,Y1_Rectangle_price5,Y1_Rectangle_time2,Y1_Rectangle_price6);
     ObjectSet("Y1_Rectangle_HH", OBJPROP_BACK,Y1_Rectangle_Bckg);
     ObjectSet("Y1_Rectangle_HH", OBJPROP_COLOR,HH_Color); 
     ObjectSet("Y1_Rectangle_HH", OBJPROP_WIDTH,Y1_Rectangle_Frame);  
    } 
  }  
 // }   
//----
//MN_Rectangle:
if(Show_MN_Rectangle==true)
  {

MN_Rectangle_price1 = iHigh(NULL, MN_Rectangle_Tf, MN_Rectangle_shift);
MN_Rectangle_price2 = iLow(NULL, MN_Rectangle_Tf, MN_Rectangle_shift);
if(iOpen(NULL,MN_Rectangle_Tf,MN_Rectangle_shift)<iClose(NULL,MN_Rectangle_Tf,MN_Rectangle_shift))
  {
MN_Rectangle_price3 = iHigh(NULL, MN_Rectangle_Tf, MN_Rectangle_shift);
MN_Rectangle_price4 = iClose(NULL, MN_Rectangle_Tf, MN_Rectangle_shift);
MN_Rectangle_price5 = iOpen(NULL, MN_Rectangle_Tf, MN_Rectangle_shift);
MN_Rectangle_price6 = iLow(NULL, MN_Rectangle_Tf, MN_Rectangle_shift);
  }
if(iOpen(NULL,MN_Rectangle_Tf,MN_Rectangle_shift)>iClose(NULL,MN_Rectangle_Tf,MN_Rectangle_shift))
  {
MN_Rectangle_price3 = iHigh(NULL, MN_Rectangle_Tf, MN_Rectangle_shift);
MN_Rectangle_price4 = iOpen(NULL, MN_Rectangle_Tf, MN_Rectangle_shift);
MN_Rectangle_price5 = iClose(NULL, MN_Rectangle_Tf, MN_Rectangle_shift);
MN_Rectangle_price6 = iLow(NULL, MN_Rectangle_Tf, MN_Rectangle_shift);
  }
MN_Rectangle_time1 = iTime(NULL, Period(), Bars); // MN_Rectangle_shift);
MN_Rectangle_time2 = iTime(NULL, MN_Rectangle_Tf, 0)+MN_Rectangle_Tf*60*MN_Rectangle_Offset;
//----
     ObjectDelete("MN_Rectangle");
     ObjectCreate("MN_Rectangle", OBJ_RECTANGLE,0,MN_Rectangle_time1,MN_Rectangle_price1,MN_Rectangle_time2,MN_Rectangle_price2);
     ObjectSet("MN_Rectangle", OBJPROP_BACK,MN_Rectangle_Bckg);
     ObjectSet("MN_Rectangle", OBJPROP_COLOR,MN_Rectangle_Color); 
     ObjectSet("MN_Rectangle", OBJPROP_WIDTH,MN_Rectangle_Frame);
     
     ObjectDelete("MN_Rectangle_HL");
     ObjectCreate("MN_Rectangle_HL", OBJ_RECTANGLE,0,MN_Rectangle_time1,MN_Rectangle_price3,MN_Rectangle_time2,MN_Rectangle_price4);
     ObjectSet("MN_Rectangle_HL", OBJPROP_BACK,MN_Rectangle_Bckg);
     ObjectSet("MN_Rectangle_HL", OBJPROP_COLOR,HL_Color); 
     ObjectSet("MN_Rectangle_HL", OBJPROP_WIDTH,MN_Rectangle_Frame);
      
     ObjectDelete("MN_Rectangle_HH");
     ObjectCreate("MN_Rectangle_HH", OBJ_RECTANGLE,0,MN_Rectangle_time1,MN_Rectangle_price5,MN_Rectangle_time2,MN_Rectangle_price6);
     ObjectSet("MN_Rectangle_HH", OBJPROP_BACK,MN_Rectangle_Bckg);
     ObjectSet("MN_Rectangle_HH", OBJPROP_COLOR,HH_Color); 
     ObjectSet("MN_Rectangle_HH", OBJPROP_WIDTH,MN_Rectangle_Frame);     
  }     
//----
//W1_Rectangle:
if(Show_W1_Rectangle==true)
  {

W1_Rectangle_price1 = iHigh(NULL, 10080, W1_Rectangle_shift);
W1_Rectangle_price2 = iLow(NULL, 10080, W1_Rectangle_shift);
if(iOpen(NULL,W1_Rectangle_Tf,W1_Rectangle_shift)<iClose(NULL,W1_Rectangle_Tf,W1_Rectangle_shift))
  {
W1_Rectangle_price3 = iHigh(NULL, W1_Rectangle_Tf, W1_Rectangle_shift);
W1_Rectangle_price4 = iClose(NULL, W1_Rectangle_Tf, W1_Rectangle_shift);
W1_Rectangle_price5 = iOpen(NULL, W1_Rectangle_Tf, W1_Rectangle_shift);
W1_Rectangle_price6 = iLow(NULL, W1_Rectangle_Tf, W1_Rectangle_shift);
  }
if(iOpen(NULL,W1_Rectangle_Tf,W1_Rectangle_shift)>iClose(NULL,W1_Rectangle_Tf,W1_Rectangle_shift))
  {
W1_Rectangle_price3 = iHigh(NULL, W1_Rectangle_Tf, W1_Rectangle_shift);
W1_Rectangle_price4 = iOpen(NULL, W1_Rectangle_Tf, W1_Rectangle_shift);
W1_Rectangle_price5 = iClose(NULL, W1_Rectangle_Tf, W1_Rectangle_shift);
W1_Rectangle_price6 = iLow(NULL, W1_Rectangle_Tf, W1_Rectangle_shift);
  }
W1_Rectangle_time1 = iTime(NULL, Period(), Bars); // W1_Rectangle_shift);
W1_Rectangle_time2 = iTime(NULL, 10080, 0)+10080*60*W1_Rectangle_Offset;
//----
     ObjectDelete("W1_Rectangle");
     ObjectCreate("W1_Rectangle", OBJ_RECTANGLE,0,W1_Rectangle_time1,W1_Rectangle_price1,W1_Rectangle_time2,W1_Rectangle_price2);
     ObjectSet("W1_Rectangle", OBJPROP_BACK,W1_Rectangle_Bckg);
     ObjectSet("W1_Rectangle", OBJPROP_COLOR,W1_Rectangle_Color); 
     ObjectSet("W1_Rectangle", OBJPROP_WIDTH,W1_Rectangle_Frame);
     
     ObjectDelete("W1_Rectangle_HL");
     ObjectCreate("W1_Rectangle_HL", OBJ_RECTANGLE,0,W1_Rectangle_time1,W1_Rectangle_price3,W1_Rectangle_time2,W1_Rectangle_price4);
     ObjectSet("W1_Rectangle_HL", OBJPROP_BACK,W1_Rectangle_Bckg);
     ObjectSet("W1_Rectangle_HL", OBJPROP_COLOR,HL_Color); 
     ObjectSet("W1_Rectangle_HL", OBJPROP_WIDTH,W1_Rectangle_Frame);
      
     ObjectDelete("W1_Rectangle_HH");
     ObjectCreate("W1_Rectangle_HH", OBJ_RECTANGLE,0,W1_Rectangle_time1,W1_Rectangle_price5,W1_Rectangle_time2,W1_Rectangle_price6);
     ObjectSet("W1_Rectangle_HH", OBJPROP_BACK,W1_Rectangle_Bckg);
     ObjectSet("W1_Rectangle_HH", OBJPROP_COLOR,HH_Color); 
     ObjectSet("W1_Rectangle_HH", OBJPROP_WIDTH,W1_Rectangle_Frame);    
       }     
//----
//D1_Rectangle:
if(Show_D1_Rectangle==true)
  {

    if(DayOfWeek()==1) {D1_Rectangle_shift=2;}
D1_Rectangle_price1 = iHigh(NULL, D1_Rectangle_Tf, D1_Rectangle_shift);
D1_Rectangle_price2 = iLow(NULL, D1_Rectangle_Tf, D1_Rectangle_shift);
if(iOpen(NULL,D1_Rectangle_Tf,D1_Rectangle_shift)<iClose(NULL,D1_Rectangle_Tf,D1_Rectangle_shift))
  {
D1_Rectangle_price3 = iHigh(NULL, D1_Rectangle_Tf, D1_Rectangle_shift);
D1_Rectangle_price4 = iClose(NULL, D1_Rectangle_Tf, D1_Rectangle_shift);
D1_Rectangle_price5 = iOpen(NULL, D1_Rectangle_Tf, D1_Rectangle_shift);
D1_Rectangle_price6 = iLow(NULL, D1_Rectangle_Tf, D1_Rectangle_shift);
  }
if(iOpen(NULL,D1_Rectangle_Tf,D1_Rectangle_shift)>iClose(NULL,D1_Rectangle_Tf,D1_Rectangle_shift))
  {
D1_Rectangle_price3 = iHigh(NULL, D1_Rectangle_Tf, D1_Rectangle_shift);
D1_Rectangle_price4 = iOpen(NULL, D1_Rectangle_Tf, D1_Rectangle_shift);
D1_Rectangle_price5 = iClose(NULL, D1_Rectangle_Tf, D1_Rectangle_shift);
D1_Rectangle_price6 = iLow(NULL, D1_Rectangle_Tf, D1_Rectangle_shift);
  }
D1_Rectangle_time1 = iTime(NULL, Period(), Bars); // D1_Rectangle_shift);
D1_Rectangle_time2 = iTime(NULL, D1_Rectangle_Tf, 0)+D1_Rectangle_Tf*60*D1_Rectangle_Offset;
//----
     ObjectDelete("D1_Rectangle");
     ObjectCreate("D1_Rectangle", OBJ_RECTANGLE,0,D1_Rectangle_time1,D1_Rectangle_price1,D1_Rectangle_time2,D1_Rectangle_price2);
     ObjectSet("D1_Rectangle", OBJPROP_BACK,D1_Rectangle_Bckg);
     ObjectSet("D1_Rectangle", OBJPROP_COLOR,D1_Rectangle_Color); 
     ObjectSet("D1_Rectangle", OBJPROP_WIDTH,D1_Rectangle_Frame);
     
     ObjectDelete("D1_Rectangle_HL");
     ObjectCreate("D1_Rectangle_HL", OBJ_RECTANGLE,0,D1_Rectangle_time1,D1_Rectangle_price3,D1_Rectangle_time2,D1_Rectangle_price4);
     ObjectSet("D1_Rectangle_HL", OBJPROP_BACK,D1_Rectangle_Bckg);
     ObjectSet("D1_Rectangle_HL", OBJPROP_COLOR,HL_Color); 
     ObjectSet("D1_Rectangle_HL", OBJPROP_WIDTH,D1_Rectangle_Frame);
      
     ObjectDelete("D1_Rectangle_HH");
     ObjectCreate("D1_Rectangle_HH", OBJ_RECTANGLE,0,D1_Rectangle_time1,D1_Rectangle_price5,D1_Rectangle_time2,D1_Rectangle_price6);
     ObjectSet("D1_Rectangle_HH", OBJPROP_BACK,D1_Rectangle_Bckg);
     ObjectSet("D1_Rectangle_HH", OBJPROP_COLOR,HH_Color); 
     ObjectSet("D1_Rectangle_HH", OBJPROP_WIDTH,D1_Rectangle_Frame);       
  }     
//----
//H4_Rectangle:
if(Show_H4_Rectangle==true)
  {

H4_Rectangle_price1 = iHigh(NULL, H4_Rectangle_Tf, H4_Rectangle_shift);
H4_Rectangle_price2 = iLow(NULL, H4_Rectangle_Tf, H4_Rectangle_shift);
if(iOpen(NULL,H4_Rectangle_Tf,H4_Rectangle_shift)<iClose(NULL,H4_Rectangle_Tf,H4_Rectangle_shift))
  {
H4_Rectangle_price3 = iHigh(NULL, H4_Rectangle_Tf, H4_Rectangle_shift);
H4_Rectangle_price4 = iClose(NULL, H4_Rectangle_Tf, H4_Rectangle_shift);
H4_Rectangle_price5 = iOpen(NULL, H4_Rectangle_Tf, H4_Rectangle_shift);
H4_Rectangle_price6 = iLow(NULL, H4_Rectangle_Tf, H4_Rectangle_shift);
  }
if(iOpen(NULL,H4_Rectangle_Tf,H4_Rectangle_shift)>iClose(NULL,H4_Rectangle_Tf,H4_Rectangle_shift))
  {
H4_Rectangle_price3 = iHigh(NULL, H4_Rectangle_Tf, H4_Rectangle_shift);
H4_Rectangle_price4 = iOpen(NULL, H4_Rectangle_Tf, H4_Rectangle_shift);
H4_Rectangle_price5 = iClose(NULL, H4_Rectangle_Tf, H4_Rectangle_shift);
H4_Rectangle_price6 = iLow(NULL, H4_Rectangle_Tf, H4_Rectangle_shift);
  }
H4_Rectangle_time1 = iTime(NULL, Period(), Bars); // H4_Rectangle_shift);
H4_Rectangle_time2 = iTime(NULL, H4_Rectangle_Tf, 0)+H4_Rectangle_Tf*60*H4_Rectangle_Offset;
//----
     ObjectDelete("H4_Rectangle");
     ObjectCreate("H4_Rectangle", OBJ_RECTANGLE,0,H4_Rectangle_time1,H4_Rectangle_price1,H4_Rectangle_time2,H4_Rectangle_price2);
     ObjectSet("H4_Rectangle", OBJPROP_BACK,H4_Rectangle_Bckg);
     ObjectSet("H4_Rectangle", OBJPROP_COLOR,H4_Rectangle_Color); 
     ObjectSet("H4_Rectangle", OBJPROP_WIDTH,H4_Rectangle_Frame);
     
     ObjectDelete("H4_Rectangle_HL");
     ObjectCreate("H4_Rectangle_HL", OBJ_RECTANGLE,0,H4_Rectangle_time1,H4_Rectangle_price3,H4_Rectangle_time2,H4_Rectangle_price4);
     ObjectSet("H4_Rectangle_HL", OBJPROP_BACK,H4_Rectangle_Bckg);
     ObjectSet("H4_Rectangle_HL", OBJPROP_COLOR,HL_Color); 
     ObjectSet("H4_Rectangle_HL", OBJPROP_WIDTH,H4_Rectangle_Frame);
      
     ObjectDelete("H4_Rectangle_HH");
     ObjectCreate("H4_Rectangle_HH", OBJ_RECTANGLE,0,H4_Rectangle_time1,H4_Rectangle_price5,H4_Rectangle_time2,H4_Rectangle_price6);
     ObjectSet("H4_Rectangle_HH", OBJPROP_BACK,H4_Rectangle_Bckg);
     ObjectSet("H4_Rectangle_HH", OBJPROP_COLOR,HH_Color); 
     ObjectSet("H4_Rectangle_HH", OBJPROP_WIDTH,H4_Rectangle_Frame);       
    }     
//----
//H1_Rectangle:
if(Show_H1_Rectangle==true)
  {

H1_Rectangle_price1 = iHigh(NULL, H1_Rectangle_Tf, H1_Rectangle_shift);
H1_Rectangle_price2 = iLow(NULL, H1_Rectangle_Tf, H1_Rectangle_shift);
if(iOpen(NULL,H1_Rectangle_Tf,H1_Rectangle_shift)<iClose(NULL,H1_Rectangle_Tf,H1_Rectangle_shift))
  {
H1_Rectangle_price3 = iHigh(NULL, H1_Rectangle_Tf, H1_Rectangle_shift);
H1_Rectangle_price4 = iClose(NULL, H1_Rectangle_Tf, H1_Rectangle_shift);
H1_Rectangle_price5 = iOpen(NULL, H1_Rectangle_Tf, H1_Rectangle_shift);
H1_Rectangle_price6 = iLow(NULL, H1_Rectangle_Tf, H1_Rectangle_shift);
  }
if(iOpen(NULL,H1_Rectangle_Tf,H1_Rectangle_shift)>iClose(NULL,H1_Rectangle_Tf,H1_Rectangle_shift))
  {
H1_Rectangle_price3 = iHigh(NULL, H1_Rectangle_Tf, H1_Rectangle_shift);
H1_Rectangle_price4 = iOpen(NULL, H1_Rectangle_Tf, H1_Rectangle_shift);
H1_Rectangle_price5 = iClose(NULL, H1_Rectangle_Tf, H1_Rectangle_shift);
H1_Rectangle_price6 = iLow(NULL, H1_Rectangle_Tf, H1_Rectangle_shift);
  }
H1_Rectangle_time1 = iTime(NULL, Period(), Bars); // H1_Rectangle_shift);
H1_Rectangle_time2 = iTime(NULL, H1_Rectangle_Tf, 0)+H1_Rectangle_Tf*60*H1_Rectangle_Offset;
//----
     ObjectDelete("H1_Rectangle");
     ObjectCreate("H1_Rectangle", OBJ_RECTANGLE,0,H1_Rectangle_time1,H1_Rectangle_price1,H1_Rectangle_time2,H1_Rectangle_price2);
     ObjectSet("H1_Rectangle", OBJPROP_BACK,H1_Rectangle_Bckg);
     ObjectSet("H1_Rectangle", OBJPROP_COLOR,H1_Rectangle_Color); 
     ObjectSet("H1_Rectangle", OBJPROP_WIDTH,H1_Rectangle_Frame);
     
     ObjectDelete("H1_Rectangle_HL");
     ObjectCreate("H1_Rectangle_HL", OBJ_RECTANGLE,0,H1_Rectangle_time1,H1_Rectangle_price3,H1_Rectangle_time2,H1_Rectangle_price4);
     ObjectSet("H1_Rectangle_HL", OBJPROP_BACK,H1_Rectangle_Bckg);
     ObjectSet("H1_Rectangle_HL", OBJPROP_COLOR,HL_Color); 
     ObjectSet("H1_Rectangle_HL", OBJPROP_WIDTH,H1_Rectangle_Frame);
      
     ObjectDelete("H1_Rectangle_HH");
     ObjectCreate("H1_Rectangle_HH", OBJ_RECTANGLE,0,H1_Rectangle_time1,H1_Rectangle_price5,H1_Rectangle_time2,H1_Rectangle_price6);
     ObjectSet("H1_Rectangle_HH", OBJPROP_BACK,H1_Rectangle_Bckg);
     ObjectSet("H1_Rectangle_HH", OBJPROP_COLOR,HH_Color); 
     ObjectSet("H1_Rectangle_HH", OBJPROP_WIDTH,H1_Rectangle_Frame);       
      }     
//---- 

// Candle Index section:
if(Show_Candle_Index==true)
  {
    Candle_Index_Arrow = Bars;
  
  if(Candle_Index_IsNewBar())
   {
   
     for(int Candle_Index_i = 0 ; Candle_Index_i < Candle_Index_Arrow ; Candle_Index_i++)
     {
      Candle_Index_price = Low[Candle_Index_i]-5*Point ;
         
      Candle_Index_SetArrow("Candle_Index = "+Candle_Index_i ,Candle_Index_price,Time[Candle_Index_i]);      
     }   
   }
   }
 //----  
//----
   return(0);
  }
//+------------------------------------------------------------------+
// Candle Index section:
//+------------------------------------------------------------------+
void Candle_Index_CreateArrow(string Candle_Index_name,color Candle_Index_c,int Candle_Index_code)
{
    ObjectCreate(Candle_Index_name ,OBJ_ARROW,0,0,0);
    ObjectSet(Candle_Index_name, OBJPROP_ARROWCODE,Candle_Index_code);
    ObjectSet(Candle_Index_name ,OBJPROP_COLOR,Candle_Index_c);
}
//+------------------------------------------------------------------+
void Candle_Index_SetArrow(string Candle_Index_name,double Candle_Index_price,datetime Candle_Index_time)
{
    ObjectSet(Candle_Index_name, OBJPROP_PRICE1,Candle_Index_price);
    ObjectSet(Candle_Index_name, OBJPROP_TIME1,Candle_Index_time);
}

//+------------------------------------------------------------------+

bool Candle_Index_IsNewBar()
{ 
  static datetime Candle_Index_prevTime1 = -1;
  
  if(Candle_Index_prevTime1 != Time[6])
  { 
   Candle_Index_prevTime1 = Time[6]; 
       
   return(true);  
  } 

  return(false); 
}
//+------------------------------------------------------------------+