//+------------------------------------------------------------------+
//|                                                         TAULEVELS|
//+------------------------------------------------------------------+
//With Gratitude to Nikita-Kiev


#property  indicator_chart_window
#property  indicator_buffers 8
#property indicator_color1  Red
#property indicator_color2  Blue
#property indicator_color3  Red
#property indicator_color4  Blue
#property indicator_color5  Red
#property indicator_color6   Blue
#property indicator_color7  DarkGray
#property indicator_color8 Red
 //+--------------
   extern bool Line_ring_percent = false ; 
    extern int   Line_ring_percents =50;
   extern string  Alert_will_shut_up = "if set to  -1 point, "; 
   extern int   AlertLine_HL_points =-1; 
   extern int   Alert_MAsound =-1;
   extern int   Alert_sound_percents=-1;
   extern int   Alert_TrendLine=-1;
     extern bool  Grid_25_points =  False  ; 
  extern string show_Daily_Weekly = "raw code, going to change";     
  extern bool  show_range_Daily  =  false ;
   extern bool  show_range_Weekly =  false ;
   extern bool Open_AboveOrUnder_Trendline = false ;
  extern bool  Close_Н4_MT4 =  false  ;
  extern bool  Close_Н4_GMT= false ;
  extern bool  Percent_UpDn =false;
  extern bool  paintBars =false ;
  extern int    PERIOD_=240;
  extern bool  n_PERIOD = false ;
  extern bool  range_0_1_2_bars = false ;
  extern bool  Expected_Range_Week = false ;
    extern bool  calculated_Range_Day = false ;
  extern bool  MA_TF1 =  false ;
 extern string Period_TF1_1440_240_120_60_30 = "0 = current Period ";//     
  extern int  Period_TF1=0 ;
  extern int  Ma_TF1 = 3;
    extern  int    shift_Point_MA_TF1 = 4;
   extern bool    PopupON  = false ;
   extern string  MA_0_1_2_3 = "3=1000 pp,2=100 pp,1=10 ppв,0=0 pp ";
   extern  int  MA_0_1_2=2;
   extern int  col_days = 6;
  //+-------------- 
      extern bool  GannGrid_Daily = false ;
   extern bool GannGrid_Weekly = false  ;
  extern bool  GannGrid_Weekly2 = false ;
  string         AlertSound="alert.wav"; 
  string         Alert_ring= "timeout.wav";
  bool Sound_Alert=true; 
 extern bool      clock = false  ;
 extern  int     clock_font = 8; 
  double Days[][6];  double Days1[][6];
  double Up [],Down [],Up1[],Down1[],Up2[],Down2[],Up3[],Buffer1[],Buffer2[],Buffer3[];       
  double         nPoint = 0;
  //+-----------------------------------------------------------------
 int init() {
  ArrayCopyRates(Days1,Symbol(),PERIOD_W1);
 ArrayCopyRates(Days,Symbol(),PERIOD_D1);
      SetIndexStyle(0,DRAW_HISTOGRAM);  SetIndexBuffer(0,Up ); SetIndexDrawBegin(0,0);
   SetIndexStyle(1,DRAW_HISTOGRAM);  SetIndexBuffer(1,Down);  SetIndexDrawBegin(1,0);
   SetIndexStyle(2, DRAW_LINE,0,3); SetIndexBuffer(2, Up1);  
  SetIndexLabel( 2, "High_MA_TF1(" + Ma_TF1 + "," +Period_TF1 +")");
   SetIndexStyle(3, DRAW_LINE,0,3);   SetIndexBuffer(3, Down1);
   SetIndexLabel( 3,  "Low_MA_TF1(" +  Ma_TF1 + "," +Period_TF1+")");
   SetIndexStyle(4,DRAW_ARROW,1, 3);   SetIndexArrow(4,160); 
   SetIndexBuffer(4,Buffer1);   SetIndexLabel( 4, "Close_H4_______________________GMT"); 
                          
      SetIndexStyle(5,DRAW_ARROW,1, 3);   SetIndexArrow(5,160); 
   SetIndexBuffer(5,Buffer2);   SetIndexLabel( 5, "Close__________________H4_MT4");
   
     SetIndexStyle(6,DRAW_ARROW,1, 1);    SetIndexArrow(6,160);
   SetIndexBuffer(6,Up3); 
     //  SetIndexStyle(7,DRAW_ARROW,1, 2);   SetIndexArrow(7,115);  //свободный буфер
  // SetIndexBuffer(7,Buffer3);   SetIndexLabel( 7, "==========");  
  //+---------------------------
   ObjectCreate( "clock GMT", OBJ_LABEL,   0,0,0); 
   ObjectSet( "clock GMT", OBJPROP_CORNER, 2); 
   ObjectSet( "clock GMT", OBJPROP_XDISTANCE, 244);   ObjectSet( "clock GMT", OBJPROP_YDISTANCE, 1); 
   ObjectSetText( "clock GMT", "", clock_font, "Arial Black", Blue );  // Цвет_часов_слева_GMT
   //+------ 
      ObjectCreate( "time_Tokio", OBJ_LABEL, 0,0,0,0,0,0,0); 
   ObjectSet( "time_Tokio", OBJPROP_CORNER, 2); 
   ObjectSet( "time_Tokio", OBJPROP_XDISTANCE, 1);   ObjectSet( "time_Tokio", OBJPROP_YDISTANCE, 1);  
   ObjectSetText( "time_Tokio", "", clock_font, "Arial ", Gray); 
   //+------ 
         ObjectCreate( "time_NewYork", OBJ_LABEL,  0,0,0); 
   ObjectSet( "time_NewYork", OBJPROP_CORNER,  3 );
   ObjectSet( "time_NewYork", OBJPROP_XDISTANCE, 1);   ObjectSet( "time_NewYork", OBJPROP_YDISTANCE, 1);  
   ObjectSetText( "time_NewYork", "", clock_font, "Arial", Gray); 
   return(0);
  }
int deinit()
  {
    ObjectDelete("UpperLevel_2WeekChannel_byHigh"); 
  ObjectDelete("LoweLevel_2WeekChannel_byHigh");            
  ObjectDelete("UpperLevel_2WeekChannel_byLow");  ObjectDelete("ParallelTrendLine_byDayClose");
  ObjectDelete("LowerLevel_2WeekChannel_byLow");     ObjectDelete("mirror_TrendLine_byDayClose"); 
  ObjectDelete("Comment");   ObjectDelete("expected_Close_Yesterday");  ObjectDelete("clock GMT");
   ObjectDelete("time_Tokio");ObjectDelete("time_NewYork");   ObjectDelete("2WeekAgo Open");
  ObjectDelete("Line_byClose");  ObjectDelete("channel line by Low"); ObjectDelete("1WeekAgo Open");
  ObjectDelete("channel line by High");  ObjectDelete("Close of 0 bar n_PERIOD");  
  ObjectDelete("Close_Bar_1");  ObjectDelete("Close_Bar_2");   ObjectDelete("High last month"); 
  ObjectDelete("Bar_0");  ObjectDelete("Bar_1");  ObjectDelete("Bar_2"); 
  ObjectDelete("Расстояние от цены до Low last Week");   ObjectDelete("Low last month"); 
  ObjectDelete("Линия по Close");  ObjectDelete("channel line by Low"); 
  ObjectDelete("Расстояние от цены до High last Week");  ObjectDelete("Low last_week");  
  ObjectDelete("High_last_week");  ObjectDelete("Channel 111"); ObjectDelete("Channel 11"); 
  ObjectDelete("LowLine");   ObjectDelete("HighLine");   ObjectDelete("Low 2days ago");
  ObjectDelete("High 2days ago");  ObjectDelete("channel line by Low"); 
  ObjectDelete("channel line by High");  ObjectDelete("Close_Bar_0");  
  ObjectDelete("expected Close,  Weekly");   
 ObjectDelete("High yesterday");  ObjectDelete("Low yesterday"); 
  ObjectDelete("Close 3 Day назад");  ObjectDelete("Close 2days ago"); 
  ObjectDelete("Close yesterday");  ObjectDelete("Close last Week"); 
  ObjectDelete("Week  Open");  ObjectDelete("ecpected Close today"); 
  ObjectDelete("channel line by High");  ObjectDelete("Close_Bar_0");  
  ObjectDelete("Today\'s Open");   ObjectDelete("next H4 period"); 
     ObjectDelete("range of 0 bar_PERIOD");   ObjectDelete("expected range  Day");   
   ObjectDelete("High_TF1"); ObjectDelete("Low_TF1");   ObjectDelete("High_TF2");  ObjectDelete("Low_TF2"); 
   ObjectDelete("expected range  this Week");   ObjectDelete("expected range  next Week"); 
  ObjectDelete("STOPLEVEL по Low");  ObjectDelete("STOPLEVEL по High");  ObjectDelete("STOPLEVEL по High плюс спред"); 
     ObjectDelete("Close of 0 bar"); ObjectDelete("Close 1 bar");ObjectDelete("Close 2 bar"); ObjectDelete("Close 3 bar");
  ObjectDelete("Close 4 bar"); ObjectDelete("Close 5 bar");ObjectDelete("Close 6 bar"); ObjectDelete("Close 7 bar");
 ObjectDelete("Trendline Close"); ObjectDelete("Trendline LOW");ObjectDelete("Trendline High"); ObjectDelete("Диапазон 2 bar");
 ObjectDelete("range of 1st bar"); ObjectDelete("Диапазон of 0 bar");  ObjectDelete("High of 0 bar n_PERIOD"); ObjectDelete("Low of 0 bar n_PERIOD");  
   ObjectDelete("percent Max Growth Week");   ObjectDelete("percent Max Fall Week"); 
  ObjectDelete("Month Open"); ObjectDelete("Last Month Open");ObjectDelete("2MonthAgo Open");
  ObjectDelete("percent Max Growth Month");  ObjectDelete("percent Max Fall Month"); ObjectDelete("expected Close,  last Week"); 
   ObjectDelete("range between High of 0 bar and price");   ObjectDelete("range between Low of0 bar and price"); 
  ObjectDelete("range between High of 1 bar and price"); ObjectDelete("range between Low of 1 bar and price");       
  ObjectDelete("range between High of 2 bar and price");     ObjectDelete("range between Low of 2 bar and price"); 
  ObjectDelete("LineAlert_percent_ofHL_Daily");ObjectDelete("Line_ring_percent"); ObjectDelete("1"); 
  ObjectDelete("High Daily");ObjectDelete("LowLine Daily");ObjectDelete("Line 50%_thisWeek"); 
 ObjectDelete("2"); ObjectDelete("TrendLine 2");ObjectDelete("TrendLine 1");
  ObjectDelete("Line ring  50% range Weekly");ObjectDelete("Line 50% Month range ");
   ObjectDelete("level of expected close, Weekly 0"); ObjectDelete("level of expected open, next Weekly 0-1"); 
  ObjectDelete("expected Close,  last Weekly 1"); ObjectDelete("Уровень   рассчитанного открытия, this Week"); 
   ObjectDelete("level of expected close, Weekly 2"); ObjectDelete("level of expected open,  Weekly 1"); 
     ObjectDelete("level of expected close, Weekly 3"); ObjectDelete("level of expected open,  Weekly 2"); 
 ObjectDelete("expected Close level 2days ago");ObjectDelete("expected Close level yesterday");
 ObjectDelete("expected Close level today"); 
  ObjectDelete("calculated level Open, this month");ObjectDelete("calculated level Open, last month");
 ObjectDelete("calculated level Open, next month");       ObjectDelete("percent Max Growth - Last Month");  ObjectDelete("percent Max Fall - Last Month"); 
    ObjectDelete("Upper level of Weekly channel by High");ObjectDelete("Lower level of Weekly channel by High");  
  ObjectDelete("Upper level of Weekly channel by Low");     ObjectDelete("Lower level of Weekly channel by Low");         
  ObjectDelete("Upper level of Daily channel by High");   ObjectDelete("Lower level of Daily channel by High");  
  ObjectDelete("Upper level of Daily channel by Low"); ObjectDelete("Lower level of Daily channel by Low");
   ObjectDelete("Line 50% range 2Weekly"); ObjectDelete("Line 50% range 3Weekly");   ObjectDelete("50% last_week"); 
    ObjectDelete("Line 50% range 2Daily");    ObjectDelete("Line 50% range 3Daily"); ObjectDelete("Open below Trendline"); 
   ObjectDelete("two Open together"); ObjectDelete("Open above Trendline"); 
    ObjectDelete("10");  ObjectDelete("11"); ObjectDelete("12");  ObjectDelete("13"); ObjectDelete("14");
      ObjectDelete("15"); ObjectDelete("16"); ObjectDelete("17"); ObjectDelete("18");  ObjectDelete("19");  
   ObjectDelete("20");  ObjectDelete("21"); ObjectDelete("22");  ObjectDelete("23"); ObjectDelete("24");
      ObjectDelete("25"); ObjectDelete("26"); ObjectDelete("27"); ObjectDelete("28");  ObjectDelete("29");   ObjectDelete("expected range  next Week");  
   ObjectDelete("expected range   Week"); ObjectDelete("expected range  this Week");
   ObjectDelete("expected range  next Day"); ObjectDelete("expected Today\'s range"); ObjectDelete("expected range  this Day"); 
    //----------------------------------------------
   for (int ii = col_days; ii >= 0; ii--) {
     ObjectDelete("Weekly"+ii);   ObjectDelete("Day"+ii); 
 }  return(0); }
//--------------------------------------------------------------   
int start()
  {
        nPoint = GetPoint(Symbol());
           double HighLine = iHigh(NULL,PERIOD_D1,0) ; 
           double LowLine = iLow(NULL,PERIOD_D1,0) ; 
     //+--------- Добавлен индикатор, Диапазон последних баров ------------------- 
   string name, value,H_L,  data; 
 for (int w = 3; w >= 0; w--){ 
 data = DoubleToStr(High[w]/nPoint-Low[w]/nPoint,0); 
   if (Close[w] > Open[w])  { value = " +" + data; 
 } if (Close[w] < Open[w]) {  value = " -" + data; 
 } if (Close[w] == Open[w]) { value =  " :" + data;
 }   name = name + value; 
       H_L = DoubleToStr((HighLine-LowLine)/nPoint,0); 
        Comment(   "                     Spread = ", (Ask-Bid)/nPoint,",     Daily   = " ,H_L+" p,    ", name +" p, ", 
"     MT4   = ",TimeToStr(TimeCurrent(), TIME_MINUTES));    
   }
  if (clock) ObjectSetText("clock GMT", TimeToStr( CurTime()-7200, TIME_MINUTES ), clock_font, "Arial Black", SlateGray);   
   if (clock)ObjectSetText("time_NewYork",  TimeToStr(CurTime()- 21600, TIME_MINUTES) ,   clock_font, "Arial Black", SlateGray);    
 if (clock)ObjectSetText("time_Tokio",   TimeToStr(CurTime()+25200, TIME_MINUTES) , clock_font, "Arial Black", SlateGray);  
  //+---------------------------------------------------------------------------------------            
  int  Counted_bars=IndicatorCounted(); // Количество просчитанных баров 
  int i=Bars-Counted_bars-1;            // Индекс первого непосчитанного  
  int  old_bar=1440/Period()*col_days;      
   if (i>old_bar-1)                 // Если много баров то ..
      i=old_bar-1;                  // ..рассчитывать заданное колич.      
   while(i>=0)
     {
       int bb = HighBar(Symbol(), 0, i, Period_TF1);   
       if(bb == -1)    continue; 
 //+------------------------------------------------------------------+      
   double r  = iMA(Symbol(), Period_TF1, Ma_TF1, 0, 0, PRICE_HIGH, bb);   
  double	rr  = iMA(Symbol(), Period_TF1, Ma_TF1, 0, 0, PRICE_HIGH, bb+1);
//+------------------------------     
  double  r1    = iMA(Symbol(), Period_TF1, Ma_TF1, 0, 0, PRICE_LOW, bb);
 double	rr1   = iMA(Symbol(), Period_TF1, Ma_TF1, 0, 0, PRICE_LOW, bb+1);  
//+------------------------------  
  Up3 [i]=NormalizeDouble(iMA(NULL,0,3 ,0,MODE_SMMA,PRICE_CLOSE,i  ),Digits- MA_0_1_2);
    //+--------------------------------------------------------- 
 Buffer1[i]=0; Buffer2[i]=0; 
 if (Close_Н4_GMT) if (TimeHour(Time[i]) == 1 && TimeHour(Time[i-1]) != 1)  Buffer1[i]  = Close[i]; 
 if ( Close_Н4_MT4) if (TimeHour(Time[i]) == 3 && TimeHour(Time[i-1]) != 3)  Buffer2[i]  = Close[i];  
 if (Close_Н4_GMT) if (TimeHour(Time[i]) == 5 && TimeHour(Time[i-1]) != 5)  Buffer1[i]  = Close[i]; 
 if ( Close_Н4_MT4) if (TimeHour(Time[i]) == 7 && TimeHour(Time[i-1]) != 7)  Buffer2[i]  = Close[i];  
 if (Close_Н4_GMT) if (TimeHour(Time[i]) == 9 && TimeHour(Time[i-1]) != 9)  Buffer1[i]  = Close[i];   
 if ( Close_Н4_MT4) if (TimeHour(Time[i]) == 11 && TimeHour(Time[i-1]) != 11)  Buffer2[i]  = Close[i]; 
 if (Close_Н4_GMT) if (TimeHour(Time[i]) == 13 && TimeHour(Time[i-1]) != 13)  Buffer1[i]  = Close[i]; //+--------------------------------------------------------- 
 if ( Close_Н4_MT4) if (TimeHour(Time[i]) == 15 && TimeHour(Time[i-1]) != 15)  Buffer2[i]  = Close[i];  
 if (Close_Н4_GMT) if (TimeHour(Time[i]) == 17 && TimeHour(Time[i-1]) != 17)  Buffer1[i]  = Close[i]; 
 if ( Close_Н4_MT4) if (TimeHour(Time[i]) == 19 && TimeHour(Time[i-1]) != 19)  Buffer2[i]  = Close[i]; 
 if (Close_Н4_GMT) if (TimeHour(Time[i]) == 21 && TimeHour(Time[i-1]) != 21)  Buffer1[i]  = Close[i];  
 if ( Close_Н4_MT4) if (TimeHour(Time[i]) == 23 && TimeHour(Time[i-1]) != 23)  Buffer2[i]  = Close[i]; 
  //+--------------------------------------------------------- 
  //+---------------------------------------------------------    
 if (rr>r || rr1>r1 )              //   !!!!!!   && =?   ||= ?  !!!!!!!      
 {
    if (paintBars)    Up [i]=High[i];
    if (paintBars)    Down[i]=Low[i];  
 if (MA_TF1)  Up1  [i] =r +shift_Point_MA_TF1 *nPoint ;  //  к High прибавляем сдвиг_МА_TF1,   От LOW отнимаем 
   if (ObjectFind("High_TF1")==-1){ ObjectCreate("High_TF1", OBJ_TREND, 0, 0,0, 0, 0);  // 
  } ObjectSet("High_TF1",OBJPROP_TIME1,Time[i]);          
   ObjectSet("High_TF1",OBJPROP_PRICE1,  Up1 [i]); 
   ObjectSet("High_TF1",OBJPROP_TIME2,Time[i]+3600);           
   ObjectSet("High_TF1",OBJPROP_PRICE2, Up1 [i]); 
    ObjectSet("High_TF1",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M1 |OBJ_PERIOD_M5|
   OBJ_PERIOD_M15 | OBJ_PERIOD_M30| OBJ_PERIOD_H1 );
   ObjectSet("High_TF1", OBJPROP_COLOR, Goldenrod);   ObjectSet("High_TF1",OBJPROP_RAY,false); 
      ObjectSet("High_TF1",OBJPROP_STYLE,2); 
       double val2=ObjectGetValueByShift("High_TF1", 0); 
         if (Bid-Alert_MAsound*nPoint <= val2 && Bid+Alert_MAsound*nPoint >= val2) 
     { if (Sound_Alert) PlaySound (AlertSound); 
       if (PopupON) Alert (Symbol()," price within ",Alert_MAsound," pips of ","High_TF1"); 
   } } 
 //+---------------------------------------------------------  
 if (r>rr    ||  r1>rr1  )            //   !!!!!!  && =?   ||= ?   !!!!!!!          
 {
  if (paintBars) 	Up [i]=Low[i];
  if (paintBars)  Down  [i]=High[i];
 if (MA_TF1) Down1 [i]=r1-shift_Point_MA_TF1 *nPoint  ; 
    if (ObjectFind("Low_TF1")==-1){ ObjectCreate("Low_TF1", OBJ_TREND, 0, 0,0, 0, 0);  
  } ObjectSet("Low_TF1",OBJPROP_TIME1,Time[i]);          
   ObjectSet("Low_TF1",OBJPROP_PRICE1, Down1 [i]); 
   ObjectSet("Low_TF1",OBJPROP_TIME2,Time[i]+3600);           
   ObjectSet("Low_TF1",OBJPROP_PRICE2,Down1 [i]);
       ObjectSet("Low_TF1",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M1 |OBJ_PERIOD_M5|
   OBJ_PERIOD_M15 | OBJ_PERIOD_M30| OBJ_PERIOD_H1 ); 
   ObjectSet("Low_TF1", OBJPROP_COLOR, LimeGreen);   ObjectSet("Low_TF1",OBJPROP_RAY,false); 
      ObjectSet("Low_TF1",OBJPROP_STYLE,2); 
           double val1=ObjectGetValueByShift("Low_TF1", 0); 
         if (Bid-Alert_MAsound*nPoint <= val1 && Bid+Alert_MAsound*nPoint >= val1) 
    {   if (Sound_Alert) PlaySound (AlertSound); 
         if (PopupON) Alert (Symbol()," price within ",Alert_MAsound," pips of ","Low_TF1"); 
  } }
//+---------------------------------------------------------  
 //======================================================================================= 
      i--;                          // Расчёт индекса следующего bar
 //======================================================================================= 
    //+------------------------------------------------------------------+ 
        if (ObjectFind("High Daily")==-1){ ObjectCreate("High Daily", OBJ_CHANNEL, 0, 0,0,0, 0,0, 0);  
  } ObjectSet("High Daily",OBJPROP_TIME1,Time[1]);  ObjectSet("High Daily",OBJPROP_PRICE1,HighLine);            
   ObjectSet("High Daily",OBJPROP_TIME2,Time[0]);  ObjectSet("High Daily",OBJPROP_PRICE2,HighLine);  
   //  ObjectSet("High Daily",OBJPROP_TIME3,Time[0]);  ObjectSet("High Daily",OBJPROP_PRICE3,HighLine);        
   ObjectSet("High Daily", OBJPROP_COLOR, SlateGray);   ObjectSet("High Daily",OBJPROP_RAY,0);   
       ObjectSet("High Daily",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M5|OBJ_PERIOD_M15|OBJ_PERIOD_M30|OBJ_PERIOD_H1|OBJ_PERIOD_H4);
  //+--------- 
        if    (ObjectFind("HighLine")==-1){ ObjectCreate("HighLine",OBJ_TEXT, 0, 0, 0); 
   } ObjectSetText("HighLine",DoubleToStr(MathAbs((NormalizeDouble(Bid,Digits)-NormalizeDouble 
   (ObjectGetValueByShift("High Daily" ,0),Digits))*MathPow(10,Digits)),0),7,"Arial",SlateGray); 
     ObjectSet("HighLine",OBJPROP_PRICE1,NormalizeDouble(ObjectGetValueByShift("High Daily"  ,0),Digits)+8*nPoint); 
             ObjectSet("HighLine",OBJPROP_TIME1,Time[0]) ;    
      double val41=ObjectGetValueByShift("High Daily", 0); 
     if (Bid-AlertLine_HL_points*nPoint <= val41 && Bid+AlertLine_HL_points*nPoint >= val41) 
     {    PlaySound (AlertSound); 
         if (PopupON) Alert (Symbol()," price within ",AlertLine_HL_points," pips of ","High Daily"); 
      }          
 //+-----------------------------------------------------------------------------------------------          
        if (ObjectFind("LowLine Daily")==-1){ ObjectCreate("LowLine Daily", OBJ_CHANNEL, 0, 0,0,0, 0,0, 0);  
  } ObjectSet("LowLine Daily",OBJPROP_TIME1,Time[1]);  ObjectSet("LowLine Daily",OBJPROP_PRICE1,LowLine);            
   ObjectSet("LowLine Daily",OBJPROP_TIME2,Time[0]);  ObjectSet("LowLine Daily",OBJPROP_PRICE2,LowLine);  
   //  ObjectSet("LowLine Daily",OBJPROP_TIME3,Time[0]);  ObjectSet("LowLine Daily",OBJPROP_PRICE3,LowLine);        
   ObjectSet("LowLine Daily", OBJPROP_COLOR, SlateGray);   ObjectSet("LowLine Daily",OBJPROP_RAY,0);  
     ObjectSet("LowLine Daily",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M5|OBJ_PERIOD_M15|OBJ_PERIOD_M30|OBJ_PERIOD_H1|OBJ_PERIOD_H4);  
  //+--------- 
         if    (ObjectFind("LowLine")==-1){ ObjectCreate("LowLine",OBJ_TEXT, 0, 0, 0); 
   } ObjectSetText("LowLine",DoubleToStr(MathAbs((NormalizeDouble(Bid,Digits)-NormalizeDouble 
   (ObjectGetValueByShift("LowLine Daily" ,0),Digits))*MathPow(10,Digits)),0),7,"Arial",SlateGray); 
     ObjectSet("LowLine",OBJPROP_PRICE1,NormalizeDouble(ObjectGetValueByShift("LowLine Daily" ,0),Digits)-2*nPoint);  
             ObjectSet("LowLine",OBJPROP_TIME1,Time[0]) ;  
      double val42=ObjectGetValueByShift("LowLine Daily", 0); 
     if (Bid-AlertLine_HL_points*nPoint <= val42 && Bid+AlertLine_HL_points*nPoint >= val42) 
     {     PlaySound (AlertSound); 
    if (PopupON) Alert (Symbol()," price within ",AlertLine_HL_points," pips of ","LowLine Daily"); 
      }         
       //+-----------------------------------------------------------------------------------
       //+-----------------------------------------------------------------------------------------------          
   if (Line_ring_percent)      if (ObjectFind("LineAlert_percent_ofHL_Daily")==-1){ ObjectCreate("LineAlert_percent_ofHL_Daily", OBJ_CHANNEL, 0, 0,0,0, 0,0, 0);  
  } ObjectSet("LineAlert_percent_ofHL_Daily",OBJPROP_TIME1,Time[2]);  ObjectSet("LineAlert_percent_ofHL_Daily",OBJPROP_PRICE1,LowLine + (HighLine-LowLine)* Line_ring_percents/100);            
   ObjectSet("LineAlert_percent_ofHL_Daily",OBJPROP_TIME2,Time[0]);  ObjectSet("LineAlert_percent_ofHL_Daily",OBJPROP_PRICE2,LowLine + (HighLine-LowLine)* Line_ring_percents/100);  
     ObjectSet("LineAlert_percent_ofHL_Daily",OBJPROP_TIME3,Time[0]);  ObjectSet("LineAlert_percent_ofHL_Daily",OBJPROP_PRICE3,LowLine + (HighLine-LowLine)* Line_ring_percents/100) ;        
   ObjectSet("LineAlert_percent_ofHL_Daily", OBJPROP_COLOR, SlateGray);   ObjectSet("LineAlert_percent_ofHL_Daily",OBJPROP_RAY,0);    
      ObjectSet("LineAlert_percent_ofHL_Daily",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M5|OBJ_PERIOD_M15|OBJ_PERIOD_M30|OBJ_PERIOD_H1);
   //+-------------     Можете востановить или убрать надпись к this линии   
  if (Line_ring_percent)   if    (ObjectFind("Line_ring_percent")==-1){ ObjectCreate("Line_ring_percent",OBJ_TEXT, 0, 0, 0);  } 
      ObjectSetText("Line_ring_percent", " " + DoubleToStr(( Line_ring_percents), 0)+" % GMT " + TimeToStr( CurTime()-7200, TIME_MINUTES ),  8,"Arial",SlateGray); 
      ObjectSet("Line_ring_percent",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M5|OBJ_PERIOD_M15|OBJ_PERIOD_M30|OBJ_PERIOD_H1);  // 
     ObjectSet("Line_ring_percent",OBJPROP_TIME1,Time[0]) ; ObjectSet("Line_ring_percent",OBJPROP_PRICE1,LowLine + (HighLine-LowLine)* Line_ring_percents/100);        
  // //   // //    //+----------------------------------------------------------------------------------------------- 
           double Limitka=LowLine + (HighLine-LowLine)* Line_ring_percents/100;    
  if (Line_ring_percent)   if (Bid-Alert_sound_percents*nPoint <= Limitka && Bid+Alert_sound_percents*nPoint >= Limitka)    {    PlaySound (Alert_ring); 
        if (PopupON) Alert (Symbol()," price within ",AlertLine_HL_points," pips of ","LineAlert_percent_ofHL_Daily"); 
      }  
 //+------------------------------------------------------------------------------------------------- 
//+------------------------------------------------------------------------------------------------- 
                    double High_Low_W = iLow(NULL,PERIOD_W1,0) + (iHigh(NULL,PERIOD_W1,0)-iLow(NULL,PERIOD_W1,0))/2 ; 
         //+-----------------------------------------------------------------------------------------------          
        if (ObjectFind("Line 50%_thisWeek")==-1){ ObjectCreate("Line 50%_thisWeek", OBJ_TREND, 0, 0,0, 0,0);  
  } ObjectSet("Line 50%_thisWeek",OBJPROP_TIME1,iTime(NULL,PERIOD_H4,5) );  ObjectSet("Line 50%_thisWeek",OBJPROP_PRICE1,High_Low_W);            
   ObjectSet("Line 50%_thisWeek",OBJPROP_TIME2,iTime(NULL,PERIOD_H4,3));  ObjectSet("Line 50%_thisWeek",OBJPROP_PRICE2,High_Low_W);    
   ObjectSet("Line 50%_thisWeek", OBJPROP_COLOR, Chocolate);   ObjectSet("Line 50%_thisWeek",OBJPROP_RAY,0); ObjectSet("Line 50%_thisWeek",OBJPROP_WIDTH,1);   
   //+-------------      Можете востановить надпись к this линии     
  //  if    (ObjectFind("Line ring  50% range Weekly")==-1){ ObjectCreate("Line ring  50% range Weekly",OBJ_TEXT, 0, 0, 0);  } 
  //     ObjectSetText("Line ring  50% range Weekly", " " + DoubleToStr(( 50), 0)+" % W " + TimeToStr( CurTime(), TIME_MINUTES ),  8,"Arial",SlateGray); 
  //   ObjectSet("Line ring  50% range Weekly",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M5|OBJ_PERIOD_M15|OBJ_PERIOD_M30|OBJ_PERIOD_H1); 
   //     ObjectSet("Line ring  50% range Weekly",OBJPROP_TIME1,iTime(NULL,PERIOD_H1,15)) ; ObjectSet("Line ring  50% range Weekly",OBJPROP_PRICE1,High_Low_W);        
         //+----------------------------------------------------------------------------------------------- 
                    double LimitkaW = High_Low_W;    
     if (Bid-Alert_sound_percents*nPoint <= LimitkaW && Bid+Alert_sound_percents*nPoint >= LimitkaW)    {    PlaySound (Alert_ring); 
     if (PopupON) Alert (Symbol()," price within ",AlertLine_HL_points," pips of ","Line 50% range Weekly"); 
      }  
 //+------------------------------------------------------------------------------------------------- 
                     double High_Low_MN1 = iLow(NULL,PERIOD_MN1,0) + (iHigh(NULL,PERIOD_MN1,0)-iLow(NULL,PERIOD_MN1,0))/2 ; 
         //+-----------------------------------------------------------------------------------------------          
        if (ObjectFind("Line 50% Month range ")==-1){ ObjectCreate("Line 50% Month range ", OBJ_TREND, 0, 0,0, 0,0);  
  } ObjectSet("Line 50% Month range ",OBJPROP_TIME1,iTime(NULL,PERIOD_D1,1) );  ObjectSet("Line 50% Month range ",OBJPROP_PRICE1,High_Low_MN1 );            
   ObjectSet("Line 50% Month range ",OBJPROP_TIME2,iTime(NULL,PERIOD_D1,0));  ObjectSet("Line 50% Month range ",OBJPROP_PRICE2,High_Low_MN1 );    
   ObjectSet("Line 50% Month range ", OBJPROP_COLOR, Chocolate);   ObjectSet("Line 50% Month range ",OBJPROP_RAY,0); ObjectSet("Line 50% Month range ",OBJPROP_STYLE,2);  
                      double LimitkaM = High_Low_MN1;    
     if (Bid-Alert_sound_percents*nPoint <= LimitkaM && Bid+Alert_sound_percents*nPoint >= LimitkaM)    {    PlaySound (Alert_ring); 
       if (PopupON) Alert (Symbol()," price within ",AlertLine_HL_points," pips of ","Line 50% Month range "); 
      }  
  //+------------------------------------------------------------------------------------------------- 
   
  if (range_0_1_2_bars)      ObjectCreate("range between High of 0 bar and price",OBJ_TEXT,  0, iTime(NULL,0,0), High[0]+22*nPoint); 
     ObjectSetText("range between High of 0 bar and price",DoubleToStr(High[0]/nPoint-Bid/nPoint,0),8,"Arial",SlateGray ); 
       ObjectSet("range between High of 0 bar and price",OBJPROP_TIMEFRAMES,OBJ_PERIOD_H4 );  
 //+---   
  if (range_0_1_2_bars)      ObjectCreate("range between Low of0 bar and price",OBJ_TEXT,  0, iTime(NULL,0,0), Low[0]-11*nPoint); 
    ObjectSetText("range between Low of0 bar and price",DoubleToStr(Bid/nPoint-Low[0]/nPoint,0),8,"Arial",SlateGray); 
         ObjectSet("range between Low of0 bar and price",OBJPROP_TIMEFRAMES,OBJ_PERIOD_H4 );        
 //+---       
 if (range_0_1_2_bars)        ObjectCreate("range between High of 1 bar and price",OBJ_TEXT,  0, iTime(NULL,0,1), High[1]+22*nPoint); 
     ObjectSetText("range between High of 1 bar and price",DoubleToStr(High[1]/nPoint-Bid/nPoint,0),8,"Arial",SlateGray);
          ObjectSet("range between High of 1 bar and price",OBJPROP_TIMEFRAMES,OBJ_PERIOD_H4|OBJ_PERIOD_D1 );  
 //+--- 
  if (range_0_1_2_bars)        ObjectCreate("range between Low of 1 bar and price",OBJ_TEXT,  0, iTime(NULL,0,1), Low[1]-11*nPoint); 
      ObjectSetText("range between Low of 1 bar and price",DoubleToStr(Bid/nPoint-Low[1]/nPoint,0),8,"Arial",SlateGray); 
          ObjectSet("range between Low of 1 bar and price",OBJPROP_TIMEFRAMES,OBJ_PERIOD_H4|OBJ_PERIOD_D1 );  
//+---      
  if (range_0_1_2_bars)      ObjectCreate("range between High of 2 bar and price",OBJ_TEXT,  0, iTime(NULL,0,2), High[2]+22*nPoint); 
      ObjectSetText( "range between High of 2 bar and price",DoubleToStr(High[2]/nPoint-Bid/nPoint,0),8,"Arial",SlateGray); 
          ObjectSet("range between High of 2 bar and price",OBJPROP_TIMEFRAMES,OBJ_PERIOD_H4|OBJ_PERIOD_D1 );  
//+---            
  if (range_0_1_2_bars)    ObjectCreate("range between Low of 2 bar and price",OBJ_TEXT,  0, iTime(NULL,0,2), Low[2]-11*nPoint); 
       ObjectSetText( "range between Low of 2 bar and price",DoubleToStr(Bid/nPoint-Low[2]/nPoint,0),8,"Arial",SlateGray);
            ObjectSet("range between Low of 2 bar and price",OBJPROP_TIMEFRAMES,OBJ_PERIOD_H4|OBJ_PERIOD_D1 );  
//+---  
 // ???????????????????????????????????????????????????????????????????????????????????????   

      if (n_PERIOD)     if (ObjectFind("Close of 0 bar n_PERIOD")==-1){   ObjectCreate("Close of 0 bar n_PERIOD",OBJ_TREND,0,0,0,0,0); 
  ObjectSet("Close of 0 bar n_PERIOD",OBJPROP_RAY,false);  ObjectSet("Close of 0 bar n_PERIOD",OBJPROP_STYLE,2);  ObjectSet("Close of 0 bar n_PERIOD",OBJPROP_COLOR,SlateGray); 
  ObjectSet("Close of 0 bar n_PERIOD",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M1 |OBJ_PERIOD_M5| OBJ_PERIOD_M15 | OBJ_PERIOD_M30 | OBJ_PERIOD_H1);   
 }   ObjectSet("Close of 0 bar n_PERIOD",OBJPROP_TIME1,iTime(NULL,PERIOD_,0)-60);ObjectSet("Close of 0 bar n_PERIOD",OBJPROP_PRICE1,    iClose(NULL,PERIOD_,1));   
      ObjectSet("Close of 0 bar n_PERIOD",OBJPROP_TIME2,iTime(NULL,PERIOD_,0)+(PERIOD_*60)-60);  ObjectSet("Close of 0 bar n_PERIOD",OBJPROP_PRICE2,  iClose(NULL,PERIOD_,0));    
  //+---------------------------
     if (n_PERIOD)    if (ObjectFind("High of 0 bar n_PERIOD")==-1){   ObjectCreate("High of 0 bar n_PERIOD",OBJ_CHANNEL,0,0,0,0,0); 
  ObjectSet("High of 0 bar n_PERIOD",OBJPROP_RAY,false);  ObjectSet("High of 0 bar n_PERIOD",OBJPROP_STYLE,2);  ObjectSet("High of 0 bar n_PERIOD",OBJPROP_COLOR,SlateGray);    
  ObjectSet("High of 0 bar n_PERIOD",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M1 |OBJ_PERIOD_M5| OBJ_PERIOD_M15 | OBJ_PERIOD_M30| OBJ_PERIOD_H1);    
 }   ObjectSet("High of 0 bar n_PERIOD",OBJPROP_TIME1,   iTime(NULL,PERIOD_,0)-60);  ObjectSet("High of 0 bar n_PERIOD",OBJPROP_PRICE1,    iHigh(NULL,PERIOD_,0));  
  ObjectSet("High of 0 bar n_PERIOD",OBJPROP_TIME2, iTime(NULL,PERIOD_,0)+(PERIOD_*60)-60);  ObjectSet("High of 0 bar n_PERIOD",OBJPROP_PRICE2,  iHigh(NULL,PERIOD_,0));  
  ObjectSet("High of 0 bar n_PERIOD",OBJPROP_TIME3,iTime(NULL,PERIOD_,0)+(PERIOD_*60)-60); ObjectSet("High of 0 bar n_PERIOD",OBJPROP_PRICE3,  iHigh(NULL,PERIOD_,0));  
  //+---------------------------  
  if (n_PERIOD)     if (ObjectFind("Low of 0 bar n_PERIOD")==-1){  ObjectCreate("Low of 0 bar n_PERIOD",OBJ_CHANNEL,0,0,0,0,0);  
  ObjectSet("Low of 0 bar n_PERIOD",OBJPROP_RAY,false);  ObjectSet("Low of 0 bar n_PERIOD",OBJPROP_STYLE,2);  ObjectSet("Low of 0 bar n_PERIOD",OBJPROP_COLOR,SlateGray); 
  ObjectSet("Low of 0 bar n_PERIOD",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M1 |OBJ_PERIOD_M5| OBJ_PERIOD_M15 | OBJ_PERIOD_M30 | OBJ_PERIOD_H1);   
 }   ObjectSet("Low of 0 bar n_PERIOD",OBJPROP_TIME1,iTime(NULL,PERIOD_,0)-60);  ObjectSet("Low of 0 bar n_PERIOD",OBJPROP_PRICE1,    iLow(NULL,PERIOD_,0));   
  ObjectSet("Low of 0 bar n_PERIOD",OBJPROP_TIME2,iTime(NULL,PERIOD_,0)+(PERIOD_*60)-60);    ObjectSet("Low of 0 bar n_PERIOD",OBJPROP_PRICE2,  iLow(NULL,PERIOD_,0));  
 ObjectSet("Low of 0 bar n_PERIOD",OBJPROP_TIME3,iTime(NULL,PERIOD_,0)+(PERIOD_*60)-60); ObjectSet("Low of 0 bar n_PERIOD",OBJPROP_PRICE3,  iLow(NULL,PERIOD_,0)); 
   //+--  
   if (n_PERIOD)    if (ObjectFind("range of 0 bar_PERIOD")==-1){   ObjectCreate("range of 0 bar_PERIOD",OBJ_TREND,0,0,0,0,0);  
  ObjectSet("range of 0 bar_PERIOD",OBJPROP_RAY,false);   ObjectSet("range of 0 bar_PERIOD",OBJPROP_STYLE,2);   
  ObjectSet("range of 0 bar_PERIOD",OBJPROP_COLOR,SlateGray); 
  ObjectSet("range of 0 bar_PERIOD",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M1 |OBJ_PERIOD_M5| OBJ_PERIOD_M15 | OBJ_PERIOD_M30| OBJ_PERIOD_H1); 
 }   ObjectSet("range of 0 bar_PERIOD",OBJPROP_TIME1,iTime(NULL,PERIOD_,0)+(PERIOD_*60)-60);   ObjectSet("range of 0 bar_PERIOD",OBJPROP_PRICE1,    iHigh(NULL,PERIOD_,0));  
  ObjectSet("range of 0 bar_PERIOD",OBJPROP_TIME2,iTime(NULL,PERIOD_,0)+(PERIOD_*60)-60);   ObjectSet("range of 0 bar_PERIOD",OBJPROP_PRICE2,  iLow(NULL,PERIOD_,0));   
 //+--  
       if (n_PERIOD)   ObjectCreate("range of 1st bar",OBJ_TREND,0,iTime(NULL,PERIOD_,0)-60,iHigh(NULL,PERIOD_,1),iTime(NULL,PERIOD_,0)-60,iLow(NULL,PERIOD_,1));  
  ObjectSet("range of 1st bar",OBJPROP_COLOR,SlateGray);   ObjectSet("range of 1st bar",OBJPROP_STYLE,2);  ObjectSet("range of 1st bar",OBJPROP_RAY,false); 
  ObjectSet("range of 1st bar",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M1 |OBJ_PERIOD_M5 | OBJ_PERIOD_M15| OBJ_PERIOD_M30 | OBJ_PERIOD_H1);    
 //+-- 
   if (n_PERIOD)   ObjectCreate("Диапазон 2 bar",OBJ_TREND,0,iTime(NULL,PERIOD_,1)-60, iHigh(NULL,PERIOD_,2),iTime(NULL,PERIOD_,1)-60,iLow(NULL,PERIOD_,2));
  ObjectSet("Диапазон 2 bar",OBJPROP_COLOR,SlateGray);   ObjectSet("Диапазон 2 bar",OBJPROP_STYLE,2);   ObjectSet("Диапазон 2 bar",OBJPROP_RAY,false); 
  ObjectSet("Диапазон 2 bar",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M1 |OBJ_PERIOD_M5 | OBJ_PERIOD_M15| OBJ_PERIOD_M30 | OBJ_PERIOD_H1);          
  //+-- 
   if (n_PERIOD)  ObjectCreate("Trendline Close",OBJ_CHANNEL,0,iTime(NULL,PERIOD_,1)-60,iClose(NULL,PERIOD_,2),iTime(NULL,PERIOD_,0)-60,iClose(NULL,PERIOD_,1),iTime(NULL,PERIOD_,0)-60,iClose(NULL,PERIOD_,1)); 
  ObjectSet("Trendline Close",OBJPROP_RAY,false);  ObjectSet("Trendline Close",OBJPROP_STYLE,2); ObjectSet("Trendline Close",OBJPROP_COLOR,SlateGray); 
  ObjectSet("Trendline Close",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M1 |OBJ_PERIOD_M5| OBJ_PERIOD_M15 | OBJ_PERIOD_M30 | OBJ_PERIOD_H1);   
   //+-- 
   if (n_PERIOD)  ObjectCreate("Trendline LOW",OBJ_CHANNEL,0,iTime(NULL,PERIOD_,1)-60, iLow(NULL,PERIOD_,2),iTime(NULL,PERIOD_,0)-60,iLow(NULL,PERIOD_,1),iTime(NULL,PERIOD_,0)-60,iLow(NULL,PERIOD_,1)); 
  ObjectSet("Trendline LOW",OBJPROP_RAY,false);   ObjectSet("Trendline LOW",OBJPROP_STYLE,2);   ObjectSet("Trendline LOW",OBJPROP_COLOR,SlateGray);  
  ObjectSet("Trendline LOW",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M1 |OBJ_PERIOD_M5| OBJ_PERIOD_M15 | OBJ_PERIOD_M30| OBJ_PERIOD_H1);    
  //+--- 
    if (n_PERIOD)   ObjectCreate("Trendline High",OBJ_CHANNEL,0,iTime(NULL,PERIOD_,1)-60,iHigh(NULL,PERIOD_,2),iTime(NULL,PERIOD_,0)-60,iHigh(NULL,PERIOD_,1),iTime(NULL,PERIOD_,0)-60,iHigh(NULL,PERIOD_,1)); 
  ObjectSet("Trendline High",OBJPROP_RAY,false);  ObjectSet("Trendline High",OBJPROP_STYLE,2);   ObjectSet("Trendline High",OBJPROP_COLOR,SlateGray);  
  ObjectSet("Trendline High",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M1 |OBJ_PERIOD_M5| OBJ_PERIOD_M15 | OBJ_PERIOD_M30| OBJ_PERIOD_H1); 
  //+--------------------------- 
if (n_PERIOD)  ObjectCreate("Close 1 bar",OBJ_TREND,0,iTime(NULL,PERIOD_,0)-60,iClose(NULL,PERIOD_,1),iTime(NULL,PERIOD_,0)+(PERIOD_*60)-60,iClose(NULL,PERIOD_,1));  
  ObjectSet("Close 1 bar",OBJPROP_RAY,false);  ObjectSet("Close 1 bar",OBJPROP_STYLE,2); ObjectSet("Close 1 bar",OBJPROP_COLOR,Red);
  ObjectSet("Close 1 bar",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M1 |OBJ_PERIOD_M5| OBJ_PERIOD_M15 | OBJ_PERIOD_M30 | OBJ_PERIOD_H1);   
 //+---------------------------
 if (n_PERIOD)  ObjectCreate("Close 2 bar",OBJ_TREND,0,iTime(NULL,PERIOD_,1)-60,  iClose(NULL,PERIOD_,2),iTime(NULL,PERIOD_,0) -60,iClose(NULL,PERIOD_,2)); 
  ObjectSet("Close 2 bar",OBJPROP_RAY,false); ObjectSet("Close 2 bar",OBJPROP_STYLE,2); ObjectSet("Close 2 bar",OBJPROP_COLOR,Red);     
  ObjectSet("Close 2 bar",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M1 |OBJ_PERIOD_M5| OBJ_PERIOD_M15 | OBJ_PERIOD_M30 | OBJ_PERIOD_H1);   
   //+---------------------------
 if (n_PERIOD)    ObjectCreate("Close 3 bar",OBJ_TREND,0,iTime(NULL,PERIOD_,2)-60, iClose(NULL,PERIOD_,3),iTime(NULL,PERIOD_,1) -60, iClose(NULL,PERIOD_,3)); 
  ObjectSet("Close 3 bar",OBJPROP_RAY,false);  ObjectSet("Close 3 bar",OBJPROP_STYLE,2); ObjectSet("Close 3 bar",OBJPROP_COLOR,Red);  
  ObjectSet("Close 3 bar",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M1 |OBJ_PERIOD_M5| OBJ_PERIOD_M15 | OBJ_PERIOD_M30 | OBJ_PERIOD_H1);   
  //+--------------------------- 
 if (n_PERIOD)    ObjectCreate("Close 4 bar",OBJ_TREND,0,iTime(NULL,PERIOD_,3)-60,iClose(NULL,PERIOD_,4),iTime(NULL,PERIOD_,2) -60, iClose(NULL,PERIOD_,4)); 
  ObjectSet("Close 4 bar",OBJPROP_RAY,false);ObjectSet("Close 4 bar",OBJPROP_STYLE,2);  ObjectSet("Close 4 bar",OBJPROP_COLOR,Red);   
  ObjectSet("Close 4 bar",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M1 |OBJ_PERIOD_M5| OBJ_PERIOD_M15 | OBJ_PERIOD_M30 | OBJ_PERIOD_H1);   
  //+--------------------------- 
 if (n_PERIOD)   ObjectCreate("Close 5 bar",OBJ_TREND,0,iTime(NULL,PERIOD_,4)-60,iClose(NULL,PERIOD_,5),iTime(NULL,PERIOD_,3) -60,iClose(NULL,PERIOD_,5));  
  ObjectSet("Close 5 bar",OBJPROP_RAY,false);  ObjectSet("Close 5 bar",OBJPROP_STYLE,2);   ObjectSet("Close 5 bar",OBJPROP_COLOR,Red);  
  ObjectSet("Close 5 bar",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M1 |OBJ_PERIOD_M5| OBJ_PERIOD_M15 | OBJ_PERIOD_M30 | OBJ_PERIOD_H1);   
  //+--------------------------- 
 if (n_PERIOD)   ObjectCreate("Close 6 bar",OBJ_TREND,0,iTime(NULL,PERIOD_,5)-60 , iClose(NULL,PERIOD_,6),iTime(NULL,PERIOD_,4) -60,iClose(NULL,PERIOD_,6)); 
  ObjectSet("Close 6 bar",OBJPROP_RAY,false);  ObjectSet("Close 6 bar",OBJPROP_STYLE,2);  ObjectSet("Close 6 bar",OBJPROP_COLOR,Red);  
  ObjectSet("Close 6 bar",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M1 |OBJ_PERIOD_M5| OBJ_PERIOD_M15 | OBJ_PERIOD_M30 | OBJ_PERIOD_H1);   
 //+---------------------------
  if (n_PERIOD)   ObjectCreate("Close 7 bar",OBJ_TREND,0,iTime(NULL,PERIOD_,6),iClose(NULL,PERIOD_,7),iTime(NULL,PERIOD_,5),iClose(NULL,PERIOD_,7)); 
  ObjectSet("Close 7 bar",OBJPROP_RAY,false);  ObjectSet("Close 7 bar",OBJPROP_STYLE,2);  ObjectSet("Close 7 bar",OBJPROP_COLOR,Red);  
  ObjectSet("Close 7 bar",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M1 |OBJ_PERIOD_M5| OBJ_PERIOD_M15 | OBJ_PERIOD_M30 | OBJ_PERIOD_H1);   
 //+---------------------------
    //+---- 
if (Percent_UpDn) ObjectCreate("percent Max Growth Week",OBJ_TEXT, 0, iTime(NULL,PERIOD_W1,0)+100800, iHigh(NULL,PERIOD_W1,0)+ 11*nPoint); 
 ObjectSetText("percent Max Growth Week","   рост  "+DoubleToStr ((iHigh(NULL,PERIOD_W1,0)-iOpen(NULL,PERIOD_W1,0))/(iOpen(NULL,PERIOD_W1,0)/100), 2)+" % за неделю",8,"Arial",SlateGray); 
 ObjectSet("percent Max Growth Week",OBJPROP_TIMEFRAMES,  OBJ_PERIOD_H1 ); 
//+---- 
 if (Percent_UpDn) ObjectCreate("percent Max Fall Week",OBJ_TEXT, 0, iTime(NULL,PERIOD_W1,0)+100800, iLow(NULL,PERIOD_W1,0)- 11*nPoint); 
ObjectSetText("percent Max Fall Week","   падение "+DoubleToStr((iLow(NULL,PERIOD_W1,0)-iOpen(NULL,PERIOD_W1,0))/(iOpen(NULL,PERIOD_W1,0)/100), 2)+" % за неделю",8,"Arial",SlateGray); 
 ObjectSet("percent Max Fall Week",OBJPROP_TIMEFRAMES, OBJ_PERIOD_H1 ); 
//+---- 
if (Percent_UpDn) ObjectCreate("percent Max Growth Month",OBJ_TEXT, 0, iTime(NULL,PERIOD_MN1,0)+100800, iHigh(NULL,PERIOD_MN1,0)+ 11*nPoint); 
ObjectSetText("percent Max Growth Month"," макс  рост  "+DoubleToStr((iHigh(NULL,PERIOD_MN1,0)-iOpen(NULL,PERIOD_MN1,0))/(iOpen(NULL,PERIOD_MN1,0)/100), 2)+" % за  месяц",8,"Arial",SlateGray); 
  ObjectSet("percent Max Growth Month",OBJPROP_TIMEFRAMES, OBJ_PERIOD_H1|OBJ_PERIOD_H4); 
 //+---- 
if (Percent_UpDn) ObjectCreate("percent Max Fall Month",OBJ_TEXT, 0, iTime(NULL,PERIOD_MN1,0)+201600, iLow(NULL,PERIOD_MN1,0)- 11*nPoint); 
  ObjectSetText("percent Max Fall Month","макс падение "+DoubleToStr((iLow(NULL,PERIOD_MN1,0)-iOpen(NULL,PERIOD_MN1,0))/(iOpen(NULL,PERIOD_MN1,0)/100), 2)+" % за  месяц",8,"Arial",SlateGray); 
 ObjectSet("percent Max Fall Month",OBJPROP_TIMEFRAMES, OBJ_PERIOD_H1|OBJ_PERIOD_H4); 
   //+-- 
   //+---- 
if (Percent_UpDn) ObjectCreate("percent Max Growth - Last Month",OBJ_TEXT, 0, iTime(NULL,PERIOD_MN1,1)+201600, iHigh(NULL,PERIOD_MN1,1)+ 11*nPoint); 
ObjectSetText("percent Max Growth - Last Month"," макс  рост  "+DoubleToStr((iHigh(NULL,PERIOD_MN1,1)-iOpen(NULL,PERIOD_MN1,1))/(iOpen(NULL,PERIOD_MN1,1)/100), 2)+" % за  месяц",8,"Arial",SlateGray); 
  ObjectSet("percent Max Growth - Last Month",OBJPROP_TIMEFRAMES, OBJ_PERIOD_H1|OBJ_PERIOD_H4); 
 //+---- 
if (Percent_UpDn) ObjectCreate("percent Max Fall - Last Month",OBJ_TEXT, 0, iTime(NULL,PERIOD_MN1,1)+201600, iLow(NULL,PERIOD_MN1,1)- 11*nPoint); 
  ObjectSetText("percent Max Fall - Last Month","макс падение "+DoubleToStr((iLow(NULL,PERIOD_MN1,1)-iOpen(NULL,PERIOD_MN1,1))/(iOpen(NULL,PERIOD_MN1,1)/100), 2)+" % за  месяц",8,"Arial",SlateGray); 
 ObjectSet("percent Max Fall - Last Month",OBJPROP_TIMEFRAMES, OBJ_PERIOD_H1|OBJ_PERIOD_H4); 
   //+--
  ObjectCreate("Month Open",OBJ_TREND,0,iTime(NULL,PERIOD_MN1,0),iOpen(NULL,PERIOD_MN1,0),iTime(NULL,PERIOD_D1,0)+172800,iOpen(NULL,PERIOD_MN1,0)); 
  ObjectSet("Month Open",OBJPROP_RAY,false);   ObjectSet("Month Open",OBJPROP_STYLE,2);  
    ObjectSet("Month Open",OBJPROP_COLOR,Chocolate); 
  ObjectSet("Month Open",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M5|OBJ_PERIOD_M15|OBJ_PERIOD_W1|OBJ_PERIOD_M30|OBJ_PERIOD_H1|OBJ_PERIOD_H4|OBJ_PERIOD_D1); 
  //+-- 
  ObjectCreate("Last Month Open",OBJ_TREND, 0,iTime(NULL,PERIOD_MN1,1),iOpen(NULL,PERIOD_MN1,1),iTime(NULL,PERIOD_MN1,0),iOpen(NULL,PERIOD_MN1,1)); 
  ObjectSet("Last Month Open",OBJPROP_RAY,false);  ObjectSet("Last Month Open",OBJPROP_STYLE,2);  
  ObjectSet("Last Month Open",OBJPROP_COLOR,Chocolate); 
  ObjectSet("Last Month Open",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M5|OBJ_PERIOD_M15|OBJ_PERIOD_W1|OBJ_PERIOD_M30|OBJ_PERIOD_H1|OBJ_PERIOD_H4|OBJ_PERIOD_D1); 
  //+-- 
  ObjectCreate("2MonthAgo Open",OBJ_TREND, 0,iTime(NULL,PERIOD_MN1,2),iOpen(NULL,PERIOD_MN1,2),iTime(NULL,PERIOD_MN1,1),iOpen(NULL,PERIOD_MN1,2)); 
  ObjectSet("2MonthAgo Open",OBJPROP_RAY,false);  ObjectSet("2MonthAgo Open",OBJPROP_STYLE,2);  
  ObjectSet("2MonthAgo Open",OBJPROP_COLOR,Chocolate); 
  ObjectSet("2MonthAgo Open",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M5|OBJ_PERIOD_M15|OBJ_PERIOD_W1|OBJ_PERIOD_M30|OBJ_PERIOD_H1|OBJ_PERIOD_H4|OBJ_PERIOD_D1); 
    //+--------------------------------------------------------------------------------------- 
  ObjectCreate("Week  Open",OBJ_TREND,0,iTime(NULL,PERIOD_W1,0),iOpen(NULL,PERIOD_W1,0),iTime(NULL,PERIOD_M5,1)+6000,iOpen(NULL,PERIOD_W1,0)); 
  ObjectSet("Week  Open",OBJPROP_RAY,false);    ObjectSet("Week  Open",OBJPROP_STYLE,2);  
  ObjectSet("Week  Open",OBJPROP_COLOR,Blue); 
    //+--     
  ObjectCreate("1WeekAgo Open",OBJ_TREND,0,iTime(NULL,PERIOD_W1,1),iOpen(NULL,PERIOD_W1,1),iTime(NULL,PERIOD_W1,0),iOpen(NULL,PERIOD_W1,1)); 
  ObjectSet("1WeekAgo Open",OBJPROP_RAY,false);   ObjectSet("1WeekAgo Open",OBJPROP_STYLE,2); 
   ObjectSet("1WeekAgo Open",OBJPROP_COLOR,Blue); 
       //+--     
  ObjectCreate("2WeekAgo Open",OBJ_TREND,0,iTime(NULL,PERIOD_W1,2),iOpen(NULL,PERIOD_W1,2),iTime(NULL,PERIOD_W1,1),iOpen(NULL,PERIOD_W1,2)); 
  ObjectSet("2WeekAgo Open",OBJPROP_RAY,false);   ObjectSet("2WeekAgo Open",OBJPROP_STYLE,2); 
   ObjectSet("2WeekAgo Open",OBJPROP_COLOR,Blue); 
              //+------------------------------------------------------------------+ 
     //===== Если цена Weekly  сразу не дошла до this уровня, значит понесется в другую сторону = проверяйте
   ObjectCreate("level of expected close, Weekly 0",OBJ_ARROW,0,iTime(NULL,PERIOD_D1,0)+86340,iClose(NULL,PERIOD_W1,1)+ (iClose(NULL,PERIOD_W1,1)-iClose(NULL,PERIOD_W1,2))); 
   ObjectSet("level of expected close, Weekly 0",OBJPROP_ARROWCODE,115); ObjectSet("level of expected close, Weekly 0",OBJPROP_COLOR,Blue);  
   ObjectSet("level of expected close, Weekly 0",OBJPROP_WIDTH ,1);  
    ObjectSet("level of expected close, Weekly 0",OBJPROP_TIMEFRAMES, OBJ_PERIOD_M15| OBJ_PERIOD_M30 | OBJ_PERIOD_H1 );
  //    
   ObjectCreate("level of expected open, next Weekly 0-1",OBJ_ARROW,0,iTime(NULL,PERIOD_D1,0)+86340,iOpen(NULL,PERIOD_W1,0)+ (iOpen(NULL,PERIOD_W1,0)-iOpen(NULL,PERIOD_W1,1))); 
    ObjectSet("level of expected open, next Weekly 0-1",OBJPROP_ARROWCODE,4); // 167 159 115 4 5 
   ObjectSet("level of expected open, next Weekly 0-1",OBJPROP_WIDTH ,1);  ObjectSet("level of expected open, next Weekly 0-1",OBJPROP_COLOR,SlateGray); 
    ObjectSet("level of expected open, next Weekly 0-1",OBJPROP_TIMEFRAMES, OBJ_PERIOD_M15| OBJ_PERIOD_M30 | OBJ_PERIOD_H1 );
  //+------------------------------------------------------------------+ 
 //    
   ObjectCreate("calculated level Open, next month",OBJ_ARROW,0,iTime(NULL,PERIOD_D1,0)+86340,iOpen(NULL,PERIOD_MN1,0)+ (iOpen(NULL,PERIOD_MN1,0)-iOpen(NULL,PERIOD_MN1,1))); 
    ObjectSet("calculated level Open, next month",OBJPROP_ARROWCODE,115); ObjectSet("calculated level Open, next month",OBJPROP_COLOR,Red);  
   ObjectSet("calculated level Open, next month",OBJPROP_WIDTH ,1);  
    ObjectSet("calculated level Open, next month",OBJPROP_TIMEFRAMES, OBJ_PERIOD_M15| OBJ_PERIOD_M30 | OBJ_PERIOD_H1 | OBJ_PERIOD_H4  | OBJ_PERIOD_D1 );
  //+------------------------------------------------------------------+ 
   ObjectCreate("calculated level Open, this month",OBJ_ARROW,0,iTime(NULL,PERIOD_MN1,0),iOpen(NULL,PERIOD_MN1,1)+ (iOpen(NULL,PERIOD_MN1,1)-iOpen(NULL,PERIOD_MN1,2))); 
    ObjectSet("calculated level Open, this month",OBJPROP_ARROWCODE,115); ObjectSet("calculated level Open, this month",OBJPROP_COLOR,Red);  
   ObjectSet("calculated level Open, this month",OBJPROP_WIDTH ,1);  
    ObjectSet("calculated level Open, this month",OBJPROP_TIMEFRAMES,   OBJ_PERIOD_M30 | OBJ_PERIOD_H1 | OBJ_PERIOD_H4  | OBJ_PERIOD_D1 );
  //+------------------------------------------------------------------+ 
   ObjectCreate("calculated level Open, last month",OBJ_ARROW,0,iTime(NULL,PERIOD_MN1,1),iOpen(NULL,PERIOD_MN1,2)+ (iOpen(NULL,PERIOD_MN1,2)-iOpen(NULL,PERIOD_MN1,3))); 
    ObjectSet("calculated level Open, last month",OBJPROP_ARROWCODE,115); ObjectSet("calculated level Open, last month",OBJPROP_COLOR,Red);  
   ObjectSet("calculated level Open, last month",OBJPROP_WIDTH ,1);  
    ObjectSet("calculated level Open, last month",OBJPROP_TIMEFRAMES,  OBJ_PERIOD_M30 | OBJ_PERIOD_H1 | OBJ_PERIOD_H4  | OBJ_PERIOD_D1 );
  //+------------------------------------------------------------------+ 
       ObjectCreate("expected Close,  last Weekly 1",OBJ_ARROW,0,iTime(NULL,PERIOD_W1,0)+86340,iClose(NULL,PERIOD_W1,2)+ (iClose(NULL,PERIOD_W1,2)-iClose(NULL,PERIOD_W1,3)));        
   ObjectSet("expected Close,  last Weekly 1",OBJPROP_ARROWCODE,115); ObjectSet("expected Close,  last Weekly 1",OBJPROP_COLOR,Blue);   
   ObjectSet("expected Close,  last Weekly 1",OBJPROP_WIDTH ,1); 
    ObjectSet("expected Close,  last Weekly 1",OBJPROP_TIMEFRAMES, OBJ_PERIOD_M15| OBJ_PERIOD_M30 | OBJ_PERIOD_H1  );   
      //    
   ObjectCreate("Уровень   рассчитанного открытия, this Week",OBJ_ARROW,0,iTime(NULL,PERIOD_W1,0)+86340,iOpen(NULL,PERIOD_W1,1)+ (iOpen(NULL,PERIOD_W1,1)-iOpen(NULL,PERIOD_W1,2))); 
    ObjectSet("Уровень   рассчитанного открытия, this Week",OBJPROP_ARROWCODE,4);  ObjectSet("Уровень   рассчитанного открытия, this Week",OBJPROP_COLOR,SlateGray);  
   ObjectSet("Уровень   рассчитанного открытия, this Week",OBJPROP_WIDTH ,1); 
    ObjectSet("Уровень   рассчитанного открытия, this Week",OBJPROP_TIMEFRAMES, OBJ_PERIOD_M15| OBJ_PERIOD_M30 | OBJ_PERIOD_H1 );
  //+------------------------------------------------------------------+ 
       ObjectCreate("level of expected close, Weekly 2",OBJ_ARROW,0,iTime(NULL,PERIOD_W1,1)+86340,iClose(NULL,PERIOD_W1,3)+ (iClose(NULL,PERIOD_W1,3)-iClose(NULL,PERIOD_W1,4)));        
   ObjectSet("level of expected close, Weekly 2",OBJPROP_ARROWCODE,115); // 167 159 115 4 5 
   ObjectSet("level of expected close, Weekly 2",OBJPROP_WIDTH ,1);  ObjectSet("level of expected close, Weekly 2",OBJPROP_COLOR,Blue); 
    ObjectSet("level of expected close, Weekly 2",OBJPROP_TIMEFRAMES, OBJ_PERIOD_M15| OBJ_PERIOD_M30 | OBJ_PERIOD_H1 );  
       //+---  
       ObjectCreate("level of expected open,  Weekly 1",OBJ_ARROW,0,iTime(NULL,PERIOD_W1,1)+86340,iOpen(NULL,PERIOD_W1,2)+ (iOpen(NULL,PERIOD_W1,2)-iOpen(NULL,PERIOD_W1,3))); 
    ObjectSet("level of expected open,  Weekly 1",OBJPROP_ARROWCODE,4);  ObjectSet("level of expected open,  Weekly 1",OBJPROP_COLOR,SlateGray);  
   ObjectSet("level of expected open,  Weekly 1",OBJPROP_WIDTH ,1); 
    ObjectSet("level of expected open,  Weekly 1",OBJPROP_TIMEFRAMES, OBJ_PERIOD_M15| OBJ_PERIOD_M30 | OBJ_PERIOD_H1 );
     //+------------------------------------------------------------------+ 
       //+------------------------------------------------------------------+ 
       ObjectCreate("level of expected close, Weekly 3",OBJ_ARROW,0,iTime(NULL,PERIOD_W1,2)+86340,iClose(NULL,PERIOD_W1,4)+ (iClose(NULL,PERIOD_W1,4)-iClose(NULL,PERIOD_W1,5)));        
   ObjectSet("level of expected close, Weekly 3",OBJPROP_ARROWCODE,115); // 167 159 115 4 5 
   ObjectSet("level of expected close, Weekly 3",OBJPROP_WIDTH ,1);  ObjectSet("level of expected close, Weekly 3",OBJPROP_COLOR,Blue); 
    ObjectSet("level of expected close, Weekly 3",OBJPROP_TIMEFRAMES, OBJ_PERIOD_M15| OBJ_PERIOD_M30 | OBJ_PERIOD_H1 );  
       //+---  
       ObjectCreate("level of expected open,  Weekly 2",OBJ_ARROW,0,iTime(NULL,PERIOD_W1,2)+86340,iOpen(NULL,PERIOD_W1,3)+ (iOpen(NULL,PERIOD_W1,3)-iOpen(NULL,PERIOD_W1,4))); 
    ObjectSet("level of expected open,  Weekly 2",OBJPROP_ARROWCODE,4);  ObjectSet("level of expected open,  Weekly 2",OBJPROP_COLOR,SlateGray);  
   ObjectSet("level of expected open,  Weekly 2",OBJPROP_WIDTH ,1); 
    ObjectSet("level of expected open,  Weekly 2",OBJPROP_TIMEFRAMES, OBJ_PERIOD_M15| OBJ_PERIOD_M30 | OBJ_PERIOD_H1 );
     //+------------------------------------------------------------------+ 
  ObjectCreate("Today\'s Open",OBJ_TREND,0,iTime(NULL,PERIOD_H4,0),iOpen(NULL,PERIOD_D1,0),iTime(NULL,PERIOD_M5,1)+6000,iOpen(NULL,PERIOD_D1,0)); 
  ObjectSet("Today\'s Open",OBJPROP_RAY,false); ObjectSet("Today\'s Open",OBJPROP_STYLE,2);  ObjectSet("Today\'s Open",OBJPROP_COLOR,Blue);  
  //+---
  //===== Если цена не дошла до this уровня, значит понесется в другую сторону = проверяйте
    ObjectCreate("expected Close level today",OBJ_ARROW,0, iTime(NULL,PERIOD_D1,0)+86200, iClose(NULL,PERIOD_D1,1)+ (iClose(NULL,PERIOD_D1,1)-iClose(NULL,PERIOD_D1,2))); 
    ObjectSet("expected Close level today",OBJPROP_ARROWCODE,115);  ObjectSet("expected Close level today",OBJPROP_COLOR,Blue);  
    ObjectSet("expected Close level today",OBJPROP_TIMEFRAMES, OBJ_PERIOD_M5| OBJ_PERIOD_M15 | OBJ_PERIOD_M30| OBJ_PERIOD_H1 );
  //+---       
    ObjectCreate("expected Close level yesterday",OBJ_ARROW,0, iTime(NULL,PERIOD_D1,1)+86200, iClose(NULL,PERIOD_D1,2)+ (iClose(NULL,PERIOD_D1,2)-iClose(NULL,PERIOD_D1,3))); 
    ObjectSet("expected Close level yesterday",OBJPROP_ARROWCODE,115);  ObjectSet("expected Close level yesterday",OBJPROP_COLOR,Blue);  
    ObjectSet("expected Close level yesterday",OBJPROP_TIMEFRAMES, OBJ_PERIOD_M5| OBJ_PERIOD_M15 | OBJ_PERIOD_M30| OBJ_PERIOD_H1 );
  //+---  
        ObjectCreate("expected Close level 2days ago",OBJ_ARROW,0, iTime(NULL,PERIOD_D1,2)+86200, iClose(NULL,PERIOD_D1,3)+ (iClose(NULL,PERIOD_D1,3)-iClose(NULL,PERIOD_D1,4))); 
    ObjectSet("expected Close level 2days ago",OBJPROP_ARROWCODE,115);  ObjectSet("expected Close level 2days ago",OBJPROP_COLOR,Blue);  
    ObjectSet("expected Close level 2days ago",OBJPROP_TIMEFRAMES, OBJ_PERIOD_M5| OBJ_PERIOD_M15 | OBJ_PERIOD_M30| OBJ_PERIOD_H1 );
  //+---
  ObjectCreate("Close 3 Day назад",OBJ_TREND,0,iTime(NULL,PERIOD_H4,1),iClose(NULL,PERIOD_D1,3),iTime(NULL,PERIOD_M5,1)+6000,iClose(NULL,PERIOD_D1,3)); 
  ObjectSet("Close 3 Day назад",OBJPROP_RAY,false); ObjectSet("Close 3 Day назад",OBJPROP_STYLE,2);    ObjectSet("Close 3 Day назад",OBJPROP_COLOR,Blue);  
 //+---  
  ObjectCreate("Close 2days ago",OBJ_TREND,0,iTime(NULL,PERIOD_H4,1),iClose(NULL,PERIOD_D1,2),iTime(NULL,PERIOD_M5,1)+6000,iClose(NULL,PERIOD_D1,2)); 
  ObjectSet("Close 2days ago",OBJPROP_RAY,false);   ObjectSet("Close 2days ago",OBJPROP_STYLE,2);  
  ObjectSet("Close 2days ago",OBJPROP_COLOR,Magenta); 
    //+--
  ObjectCreate("Low yesterday",OBJ_TREND, 0,iTime(NULL,PERIOD_H4,1), iLow(NULL,PERIOD_D1,1), iTime(NULL,PERIOD_M5,1)+6000, iLow(NULL,PERIOD_D1,1)); 
  ObjectSet("Low yesterday",OBJPROP_RAY,false);  ObjectSet("Low yesterday",OBJPROP_STYLE,2);  ObjectSet("Low yesterday",OBJPROP_COLOR,Blue);   
   //+-- 
   ObjectCreate("High yesterday",OBJ_TREND,0,iTime(NULL,PERIOD_H4,1),iHigh(NULL,PERIOD_D1,1),iTime(NULL,PERIOD_M5,1)+6000,iHigh(NULL,PERIOD_D1,1)); 
   ObjectSet("High yesterday",OBJPROP_RAY,false);    ObjectSet("High yesterday",OBJPROP_STYLE,2);   ObjectSet("High yesterday",OBJPROP_COLOR,Red); 
 //+------ 
   ObjectCreate("High 2days ago",OBJ_TREND,0,iTime(NULL,PERIOD_H4,1),iHigh(NULL,PERIOD_D1,2),iTime(NULL,PERIOD_M5,1)+6000,iHigh(NULL,PERIOD_D1,2)); 
   ObjectSet("High 2days ago",OBJPROP_RAY,false);   ObjectSet("High 2days ago",OBJPROP_STYLE,2);   ObjectSet("High 2days ago",OBJPROP_COLOR,Red); 
  //+---      
   ObjectCreate("Low 2days ago",OBJ_TREND,0,iTime(NULL,PERIOD_H4,1),iLow(NULL,PERIOD_D1,2),iTime(NULL,PERIOD_M5,1)+6000,iLow(NULL,PERIOD_D1,2)); 
  ObjectSet("Low 2days ago",OBJPROP_RAY,false);  ObjectSet("Low 2days ago",OBJPROP_STYLE,2); ObjectSet("Low 2days ago",OBJPROP_COLOR,Blue); 
   //+------------------------------------------------------------------+ 
  ObjectCreate("High_last_week", OBJ_TREND,0,iTime(NULL,PERIOD_H4,1),iHigh(NULL,PERIOD_W1,1),iTime(NULL,PERIOD_M5,1)+6000,iHigh(NULL,PERIOD_W1,1)); 
   ObjectSet("High_last_week", OBJPROP_COLOR, Red);   ObjectSet("High_last_week",OBJPROP_RAY,0); ObjectSet("High_last_week",OBJPROP_STYLE,2);  
  //+--------- 
 ObjectCreate("Low last_week", OBJ_TREND,0,iTime(NULL,PERIOD_H4,1),iLow(NULL,PERIOD_W1,1),iTime(NULL,PERIOD_M5,1)+6000,iLow(NULL,PERIOD_W1,1)); 
   ObjectSet("Low last_week", OBJPROP_COLOR, Blue);   ObjectSet("Low last_week",OBJPROP_RAY,0); ObjectSet("Low last_week",OBJPROP_STYLE,2);   
 //+--------- 
    //+------------------------------------------------------------------+ 
  ObjectCreate("50% last_week", OBJ_TREND,0,iTime(NULL,PERIOD_H4,5),iHigh(NULL,PERIOD_W1,1)*0.5 +iLow(NULL,PERIOD_W1,1)*0.5,iTime(NULL,PERIOD_H4,3),iHigh(NULL,PERIOD_W1,1)*0.5 +iLow(NULL,PERIOD_W1,1)*0.5); 
   ObjectSet("50% last_week", OBJPROP_COLOR, Chocolate);   ObjectSet("50% last_week",OBJPROP_RAY,0); ObjectSet("50% last_week",OBJPROP_STYLE,0);  
      //+------------------------------------------------------------------+ 
  ObjectCreate("High last month", OBJ_TREND,0,iTime(NULL,PERIOD_D1,1),iHigh(NULL,PERIOD_MN1,1),iTime(NULL,PERIOD_D1,0),iHigh(NULL,PERIOD_MN1,1)); 
   ObjectSet("High last month", OBJPROP_COLOR, Chocolate);   ObjectSet("High last month",OBJPROP_RAY,0);  ObjectSet("High last month",OBJPROP_STYLE,2);  
  //+--------- 
        //+------------------------------------------------------------------+ 
 ObjectCreate("Low last month", OBJ_TREND,0,iTime(NULL,PERIOD_D1,1),iLow(NULL,PERIOD_MN1,1),iTime(NULL,PERIOD_D1,0),iLow(NULL,PERIOD_MN1,1)); 
   ObjectSet("Low last month", OBJPROP_COLOR, Chocolate);   ObjectSet("Low last month",OBJPROP_RAY,0);  ObjectSet("Low last month",OBJPROP_STYLE,2);   
  //+--------- 
         if    (ObjectFind("Расстояние от цены до High last Week")==-1){ ObjectCreate("Расстояние от цены до High last Week",OBJ_TEXT, 0, 0, 0); 
   } ObjectSetText("Расстояние от цены до High last Week",DoubleToStr(MathAbs((NormalizeDouble(Bid,Digits)-NormalizeDouble 
   (ObjectGetValueByShift("High_last_week",0),Digits))*MathPow(10,Digits)),0),7,"Arial",SlateGray); 
     ObjectSet("Расстояние от цены до High last Week",OBJPROP_PRICE1,NormalizeDouble(ObjectGetValueByShift("High_last_week",0),Digits)+5*nPoint);  
             ObjectSet("Расстояние от цены до High last Week",OBJPROP_TIME1,iTime(NULL,PERIOD_H1,1)); 
             ObjectSet("Расстояние от цены до High last Week", OBJPROP_COLOR, Magenta);
 //+-------        
   if    (ObjectFind("Расстояние от цены до Low last Week")==-1){ ObjectCreate("Расстояние от цены до Low last Week",OBJ_TEXT, 0, 0, 0); 
   } ObjectSetText("Расстояние от цены до Low last Week",DoubleToStr(MathAbs((NormalizeDouble(Bid,Digits)-NormalizeDouble 
   (ObjectGetValueByShift("Low last_week",0),Digits))*MathPow(10,Digits)),0),7,"Arial",SlateGray); 
     ObjectSet("Расстояние от цены до Low last Week",OBJPROP_PRICE1,NormalizeDouble(ObjectGetValueByShift("Low last_week",0),Digits)-2*nPoint);  
             ObjectSet("Расстояние от цены до Low last Week",OBJPROP_TIME1,iTime(NULL,PERIOD_H1,1));
             ObjectSet("Расстояние от цены до Low last Week", OBJPROP_COLOR, Blue); 
      //+-----------------------------------------------------------------------------------------------  
        ObjectCreate("TrendLine 1", OBJ_TREND, 0,iTime(NULL,PERIOD_D1,1),iHigh(NULL,PERIOD_D1,1),iTime(NULL,PERIOD_D1,0)+86400,iHigh(NULL,PERIOD_D1,1)); 
         ObjectSet("TrendLine 1", OBJPROP_COLOR, Blue);       ObjectSet("TrendLine 1",OBJPROP_RAY,false);  ObjectSet("TrendLine 1",OBJPROP_STYLE,2);                                          
      if    (ObjectFind("1")==-1){ ObjectCreate("1",OBJ_TEXT, 0, 0, 0); 
   }  ObjectSetText("1",DoubleToStr(MathAbs((NormalizeDouble(Bid,Digits)-NormalizeDouble
     (ObjectGetValueByShift("Trendline "+1,0),Digits))*MathPow(10,Digits)),0),7,"Arial",Blue); 
      ObjectSet("1",OBJPROP_PRICE1,NormalizeDouble(ObjectGetValueByShift("Trendline "+1,0),Digits)); 
            ObjectSet("1",OBJPROP_TIME1,Time[1]) ;  
  //+---   //    
           double val77=ObjectGetValueByShift("Trendline 1", 0);
      if (Bid-Alert_TrendLine*nPoint <= val77 && Bid+Alert_TrendLine*nPoint >= val77) 
   {    PlaySound (AlertSound); if (PopupON) Alert (Symbol()," price within ",Alert_ring," pips of ","Trendline 1");
     }   
  //+-----------------------------------------------------------------------------------------------  
     //+-----------------------------------------------------------------------------------------------  
    ObjectCreate("TrendLine 2", OBJ_TREND, 0, iTime(NULL,PERIOD_D1,1),iLow(NULL,PERIOD_D1,1), iTime(NULL,PERIOD_D1,0)+86400, iLow(NULL,PERIOD_D1,1));
    ObjectSet("TrendLine 2", OBJPROP_COLOR, Blue);      ObjectSet("TrendLine 2",OBJPROP_RAY,false); ObjectSet("TrendLine 2",OBJPROP_STYLE,2); 
      if    (ObjectFind("2")==-1){ ObjectCreate("2",OBJ_TEXT, 0, 0, 0); 
   }  ObjectSetText("2",DoubleToStr(MathAbs((NormalizeDouble(Bid,Digits)-NormalizeDouble
     (ObjectGetValueByShift("Trendline "+2,0),Digits))*MathPow(10,Digits)),0),7,"Arial",Blue);        
      ObjectSet("2",OBJPROP_PRICE1,NormalizeDouble(ObjectGetValueByShift("Trendline "+2,0),Digits)); 
             ObjectSet("2",OBJPROP_TIME1,Time[1]) ; 
  //----  
      double val88=ObjectGetValueByShift("Trendline 2", 0);
      if (Bid-Alert_TrendLine*nPoint <= val88 && Bid+Alert_TrendLine*nPoint >= val88)//Alert_sound_percents
     {   PlaySound (AlertSound);  if (PopupON) Alert (Symbol()," price within ",Alert_ring," pips of ","Trendline 2"); 
    }     
 //+----------------------------------------------------------------------------------------------- 
          //+------------------------------------------------------------------+ 
   ObjectCreate("Upper level of Weekly channel by High",OBJ_ARROW,0,iTime(NULL,PERIOD_D1,0) ,iHigh(NULL,PERIOD_W1,1)+(iHigh(NULL,PERIOD_W1,1)-iHigh(NULL,PERIOD_W1,2))); 
 ObjectSet("Upper level of Weekly channel by High",OBJPROP_ARROWCODE,4); ObjectSet("Upper level of Weekly channel by High",OBJPROP_COLOR,Magenta);   
  //--------
 ObjectCreate("Lower level of Weekly channel by High",OBJ_ARROW,0,iTime(NULL,PERIOD_D1,0) ,iLow(NULL,PERIOD_W1,1)+(iHigh(NULL,PERIOD_W1,1)-iHigh(NULL,PERIOD_W1,2))); 
 ObjectSet("Lower level of Weekly channel by High",OBJPROP_ARROWCODE,4);  ObjectSet("Lower level of Weekly channel by High",OBJPROP_COLOR,Magenta);  
  //--------
 ObjectCreate("Upper level of Weekly channel by Low",OBJ_ARROW,0,iTime(NULL,PERIOD_D1,0) ,iHigh(NULL,PERIOD_W1,1)+(iLow(NULL,PERIOD_W1,1)-iLow(NULL,PERIOD_W1,2))); 
 ObjectSet("Upper level of Weekly channel by Low",OBJPROP_ARROWCODE,4);    ObjectSet("Upper level of Weekly channel by Low",OBJPROP_COLOR,Magenta); 
  //--------
 ObjectCreate("Lower level of Weekly channel by Low",OBJ_ARROW,0,iTime(NULL,PERIOD_D1,0) ,iLow(NULL,PERIOD_W1,1)+(iLow(NULL,PERIOD_W1,1)-iLow(NULL,PERIOD_W1,2))); 
 ObjectSet("Lower level of Weekly channel by Low",OBJPROP_ARROWCODE,4); ObjectSet("Lower level of Weekly channel by Low",OBJPROP_COLOR,Magenta);   
  //--------
 ObjectCreate("Upper level of Daily channel by High",OBJ_ARROW,0,iTime(NULL,PERIOD_D1,0) ,iHigh(NULL,PERIOD_D1,1)+(iHigh(NULL,PERIOD_D1,1)-iHigh(NULL,PERIOD_D1,2))); 
 ObjectSet("Upper level of Daily channel by High",OBJPROP_ARROWCODE,4);  ObjectSet("Upper level of Daily channel by High",OBJPROP_COLOR,Magenta);   
   //--------
 ObjectCreate("Lower level of Daily channel by High",OBJ_ARROW,0,iTime(NULL,PERIOD_D1,0) ,iLow(NULL,PERIOD_D1,1)+(iHigh(NULL,PERIOD_D1,1)-iHigh(NULL,PERIOD_D1,2))); 
 ObjectSet("Lower level of Daily channel by High",OBJPROP_ARROWCODE,4);    ObjectSet("Lower level of Daily channel by High",OBJPROP_COLOR,Magenta); 
//--------  
 ObjectCreate("Lower level of Daily channel by Low",OBJ_ARROW,0,iTime(NULL,PERIOD_D1,0) ,iLow(NULL,PERIOD_D1,1)+(iLow(NULL,PERIOD_D1,1)-iLow(NULL,PERIOD_D1,2))); 
 ObjectSet("Lower level of Daily channel by Low",OBJPROP_ARROWCODE,4);     ObjectSet("Lower level of Daily channel by Low",OBJPROP_COLOR,Magenta);  
   //--------
 ObjectCreate("Upper level of Daily channel by Low",OBJ_ARROW,0, iTime(NULL,PERIOD_D1,0) ,iHigh(NULL,PERIOD_D1,1)+(iLow(NULL,PERIOD_D1,1)-iLow(NULL,PERIOD_D1,2))); 
 ObjectSet("Upper level of Daily channel by Low",OBJPROP_ARROWCODE,4);  ObjectSet("Upper level of Daily channel by Low",OBJPROP_COLOR,Magenta);   
 //------------------------------------------------------------------------------------------------------------------------------------------  
 //------------------------------------------------------------------------------------------------------------------------------------------    
 //=========================================================================================== 
  double     TIMEd1 = iTime(NULL,PERIOD_D1,0)-60;   
  double     PRICEd1 = iClose(NULL,PERIOD_D1,1)+ (iClose(NULL,PERIOD_D1,1)-iClose(NULL,PERIOD_D1,2));  
   if (GannGrid_Daily)  ObjectCreate("Зеркальное изображение Тренд линии по закрытию Day",OBJ_CHANNEL,0,
  TIMEd1,iClose(NULL,PERIOD_D1,1)-10000*nPoint,TIMEd1 +86340,iClose(NULL,PERIOD_D1,2)-10000*nPoint,TIMEd1 , iClose(NULL,PERIOD_D1,1)); 
  ObjectSet("Зеркальное изображение Тренд линии по закрытию Day",OBJPROP_RAY,false); 
  ObjectSet("Зеркальное изображение Тренд линии по закрытию Day",OBJPROP_STYLE,2); //0 1 2 3 4 
  ObjectSet("Зеркальное изображение Тренд линии по закрытию Day",OBJPROP_COLOR,DarkGray); 
 ObjectSet("Зеркальное изображение Тренд линии по закрытию Day",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M1 |OBJ_PERIOD_M5| OBJ_PERIOD_M15 | OBJ_PERIOD_M30| OBJ_PERIOD_H1 );
//-------------------------------------------------------------------------------------------
  if (GannGrid_Daily)   ObjectCreate("parallel TrendLine by DayCloseю Day",OBJ_CHANNEL,0,
  TIMEd1, iClose(NULL,PERIOD_D1,1)-10000*nPoint,TIMEd1+86340,PRICEd1-10000*nPoint,TIMEd1 ,iClose(NULL,PERIOD_D1,1)); 
  ObjectSet("parallel TrendLine by DayClose",OBJPROP_RAY,false); 
  ObjectSet("parallel TrendLine by DayClose",OBJPROP_STYLE,2 ); //0 1 2 3 4 
  ObjectSet("parallel TrendLine by DayClose",OBJPROP_COLOR,DarkGray);  
  ObjectSet("parallel TrendLine by DayClose",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M1 |OBJ_PERIOD_M5| OBJ_PERIOD_M15 | OBJ_PERIOD_M30| OBJ_PERIOD_H1 ); 
//===========================================================================================  
 //=========Инструкция: таскайте эти линии по графику,(и на линейых графиках тоже), пока не увидите от них пользу.==========
  double     TIME_W = iTime(NULL,PERIOD_W1,0)-60; 
  double     PRICE_W =  iClose(NULL,PERIOD_W1,1)+ (iClose(NULL,PERIOD_W1,1)-iClose(NULL,PERIOD_W1,2)); 
 if (GannGrid_Weekly)  ObjectCreate("Зеркальное отображение Тренд линии по закрытию Week",OBJ_CHANNEL,0,
  TIME_W,iClose(NULL,PERIOD_W1,1)-10000*nPoint,TIME_W+518000, iClose(NULL,PERIOD_W1,2)-10000*nPoint, TIME_W, iClose(NULL,PERIOD_W1,1));
  ObjectSet("Зеркальное отображение Тренд линии по закрытию Week",OBJPROP_RAY,false); 
  ObjectSet("Зеркальное отображение Тренд линии по закрытию Week",OBJPROP_STYLE,2); //0 1 2 3 4 
  ObjectSet("Зеркальное отображение Тренд линии по закрытию Week",OBJPROP_COLOR,DarkGray); // Blue  Red
//-------------------------------------------------------------------------------------------
if (GannGrid_Weekly)   ObjectCreate("parallel TrendLine by DayCloseю Week",OBJ_CHANNEL,0,
  TIME_W,  iClose(NULL,PERIOD_W1,1)-10000*nPoint, TIME_W+518000,  PRICE_W -10000*nPoint,TIME_W,iClose(NULL,PERIOD_W1,1));
  ObjectSet("parallel TrendLine by DayCloseю Week",OBJPROP_RAY,false); 
  ObjectSet("parallel TrendLine by DayCloseю Week",OBJPROP_STYLE,2); //0 1 2 3 4 
  ObjectSet("parallel TrendLine by DayCloseю Week",OBJPROP_COLOR,DarkGray); 
   //===========================================================================================  
  double     TIME1 = iTime(NULL,PERIOD_W1,1)-60;    
  double     PRICE1 =  iClose(NULL,PERIOD_W1,2)+ (iClose(NULL,PERIOD_W1,2)-iClose(NULL,PERIOD_W1,3)); 
if (GannGrid_Weekly2)  ObjectCreate("Зеркальное отображение Тренд линии по закрытию last Week",OBJ_CHANNEL,0,
  TIME1,iClose(NULL,PERIOD_W1,2)-10000*nPoint,TIME1+518000,iClose(NULL,PERIOD_W1,3)-10000*nPoint,TIME1,iClose(NULL,PERIOD_W1,2)); 
  ObjectSet("Зеркальное отображение Тренд линии по закрытию last Week",OBJPROP_RAY,false); 
  ObjectSet("Зеркальное отображение Тренд линии по закрытию last Week",OBJPROP_STYLE,2); //0 1 2 3 4 
  ObjectSet("Зеркальное отображение Тренд линии по закрытию last Week",OBJPROP_COLOR,DarkGray); // Blue  Red
//------------------------------------------------------------------------------------------- 
 if (GannGrid_Weekly2) ObjectCreate("parallel TrendLine by DayCloseю last Week",OBJ_CHANNEL,0,
  TIME1, iClose(NULL,PERIOD_W1,2)-10000*nPoint,TIME1+518000,PRICE1-10000*nPoint,TIME1,iClose(NULL,PERIOD_W1,2)); 
  ObjectSet("parallel TrendLine by DayCloseю last Week",OBJPROP_RAY,false); 
  ObjectSet("parallel TrendLine by DayCloseю last Week",OBJPROP_STYLE,2); //0 1 2 3 4 
  ObjectSet("parallel TrendLine by DayCloseю last Week",OBJPROP_COLOR,DarkGray); // Blue  Red
//=========================================================================================== 
    if (Open[0]-Open[1]<= 2*nPoint && Open[0]-Open[1]>= -2*nPoint) 
      ObjectCreate("two Open together",   OBJ_ARROW, 0, Time[0],Open[0]);//
      ObjectSet("two Open together",   OBJPROP_ARROWCODE,4);//
      ObjectSet("two Open together",   OBJPROP_COLOR, Red);//
        ObjectSet("two Open together",OBJPROP_TIMEFRAMES,  OBJ_PERIOD_M30| OBJ_PERIOD_H1 | OBJ_PERIOD_H4 | OBJ_PERIOD_D1| OBJ_PERIOD_W1);   
          //----  Open_AboveOrUnder_Trendline работает только на периодах от Н1 и выше  
   if (Open_AboveOrUnder_Trendline)     if (Low [1]>Low [2] && Open[0] < Low [1]+(Low [1]-Low [2]) )  // 
     ObjectCreate("Open below Trendline", OBJ_ARROW, 0, Time[0],Open[0]);//
      ObjectSet("Open below Trendline", OBJPROP_ARROWCODE,115);
      ObjectSet("Open below Trendline", OBJPROP_COLOR, Red);
      ObjectSet("Open below Trendline",OBJPROP_TIMEFRAMES,  OBJ_PERIOD_M30| OBJ_PERIOD_H1 | OBJ_PERIOD_H4 | OBJ_PERIOD_D1| OBJ_PERIOD_W1);
  //---- 
   if (Open_AboveOrUnder_Trendline)     if (High[1]< High[2]  && Open[0]>= High [1]-(High [2]-High [1]) )   // // 
   ObjectCreate("Open above Trendline", OBJ_ARROW, 0, Time[0],Open[0]);
      ObjectSet("Open above Trendline" , OBJPROP_ARROWCODE,115);
      ObjectSet("Open above Trendline", OBJPROP_COLOR, Red);
       ObjectSet("Open above Trendline",OBJPROP_TIMEFRAMES,  OBJ_PERIOD_M30| OBJ_PERIOD_H1 | OBJ_PERIOD_H4 | OBJ_PERIOD_D1| OBJ_PERIOD_W1);
  //===========================================================================================================================================  
   // ???????????????????????????????????????????????????????????????????????????????????????
 // ???????????????????????????????????????????????????????????????????????????????????????
       double  W1_H =  iHigh(NULL,PERIOD_W1,1)-(iHigh(NULL,PERIOD_W1,2)-iHigh(NULL,PERIOD_W1,1)); 
      double  W1_L =  iLow(NULL,PERIOD_W1,1) +(iLow(NULL,PERIOD_W1,2) -iLow(NULL,PERIOD_W1,1 )); 
  if (Expected_Range_Week)     ObjectCreate("expected range  this Week",OBJ_RECTANGLE,0,
    iTime(NULL,PERIOD_W1,0)+86400 ,W1_H,iTime(NULL,PERIOD_W1,0)+86400*6,W1_L); 
  ObjectSet("expected range  this Week",OBJPROP_TIMEFRAMES,   OBJ_PERIOD_H4| OBJ_PERIOD_D1 );
  ObjectSet("expected range  this Week",OBJPROP_BACK,false );    //false true 
  ObjectSet("expected range  this Week",OBJPROP_STYLE,0); //0 1 2 3 4 
  ObjectSet("expected range  this Week",OBJPROP_COLOR,Red); 
     //+------------------------------------------------------------------+
         double  W1_H11 =  iHigh(NULL,PERIOD_W1,1)-(iHigh(NULL,PERIOD_W1,1)-iHigh(NULL,PERIOD_W1,2)); 
      double  W1_L11 =  iLow(NULL,PERIOD_W1,1) +(iLow(NULL,PERIOD_W1,1) -iLow(NULL,PERIOD_W1,2 )); 
    if (Expected_Range_Week)     ObjectCreate("expected range   Week",OBJ_RECTANGLE,0,
    iTime(NULL,PERIOD_W1,0)+86400 ,W1_H11,iTime(NULL,PERIOD_W1,0)+86400*6,W1_L11); 
  ObjectSet("expected range   Week",OBJPROP_TIMEFRAMES,   OBJ_PERIOD_H4| OBJ_PERIOD_D1 );
  ObjectSet("expected range   Week",OBJPROP_BACK,false );     
  ObjectSet("expected range   Week",OBJPROP_STYLE,0);   
  ObjectSet("expected range   Week",OBJPROP_COLOR,SlateGray); 
     //+------------------------------------------------------------------+
       double  W1_H1 =  iHigh(NULL,PERIOD_W1,0)-(iHigh(NULL,PERIOD_W1,1)-iHigh(NULL,PERIOD_W1,0)); 
      double  W1_L1 =  iLow(NULL,PERIOD_W1,0) +(iLow(NULL,PERIOD_W1,1) -iLow(NULL,PERIOD_W1,0 )); 
    if (Expected_Range_Week)   ObjectCreate("expected range  next Week",OBJ_RECTANGLE,0,
    iTime(NULL,PERIOD_W1,0)+86400 ,W1_H1,iTime(NULL,PERIOD_W1,0)+86400*6,W1_L1); 
  ObjectSet("expected range  next Week",OBJPROP_TIMEFRAMES,   OBJ_PERIOD_H4| OBJ_PERIOD_D1 );
  ObjectSet("expected range  next Week",OBJPROP_BACK,false );     
  ObjectSet("expected range  next Week",OBJPROP_STYLE,0); 
  ObjectSet("expected range  next Week",OBJPROP_COLOR,Blue); 
    // ??????????????????????????????????????????????????????????????????????????????????????? 
    //===========================================================================================================================================  
   // ???????????????????????????????????????????????????????????????????????????????????????
       double  D1_H =  iHigh(NULL,PERIOD_D1,1)-(iHigh(NULL,PERIOD_D1,1)-iHigh(NULL,PERIOD_D1,2)); 
      double  D1_L =  iLow(NULL,PERIOD_D1,1) +(iLow(NULL,PERIOD_D1,1) -iLow(NULL,PERIOD_D1,2 )); 
    if (calculated_Range_Day)     ObjectCreate("expected range  this Day",OBJ_RECTANGLE,0,
    iTime(NULL,PERIOD_D1,0) ,D1_H,iTime(NULL,PERIOD_D1,0)+82800,D1_L); 
  ObjectSet("expected range  this Day",OBJPROP_TIMEFRAMES, OBJ_PERIOD_H1 | OBJ_PERIOD_H4  );
  ObjectSet("expected range  this Day",OBJPROP_BACK,false );   ObjectSet("expected range  this Day",OBJPROP_STYLE,0);     
  ObjectSet("expected range  this Day",OBJPROP_COLOR,Red); 
     //+------------------------------------------------------------------+
         double  D1_H11 =  iHigh(NULL,PERIOD_D1,1)-(iHigh(NULL,PERIOD_D1,2)-iHigh(NULL,PERIOD_D1,1)); 
      double  D1_L11 =  iLow(NULL,PERIOD_D1,1) +(iLow(NULL,PERIOD_D1,2) -iLow(NULL,PERIOD_D1,1 )); 
    if (calculated_Range_Day)     ObjectCreate("expected Today\'s range",OBJ_RECTANGLE,0,
    iTime(NULL,PERIOD_D1,0) ,D1_H11,iTime(NULL,PERIOD_D1,0)+82800,D1_L11); 
  ObjectSet("expected Today\'s range",OBJPROP_TIMEFRAMES, OBJ_PERIOD_H1 |  OBJ_PERIOD_H4 );
  ObjectSet("expected Today\'s range",OBJPROP_BACK,false );   ObjectSet("expected Today\'s range",OBJPROP_STYLE,0);   
  ObjectSet("expected Today\'s range",OBJPROP_COLOR,SlateGray); 
   //+------------------------------------------------------------------+
       double  D1_H1 =  iHigh(NULL,PERIOD_D1,0)-(iHigh(NULL,PERIOD_D1,1)-iHigh(NULL,PERIOD_D1,0)); 
      double  D1_L1 =  iLow(NULL,PERIOD_D1,0) +(iLow(NULL,PERIOD_D1,1) -iLow(NULL,PERIOD_D1,0 )); 
    if (calculated_Range_Day)   ObjectCreate("expected range  next Day",OBJ_RECTANGLE,0,
    iTime(NULL,PERIOD_D1,0) ,D1_H1,iTime(NULL,PERIOD_D1,0)+82800,D1_L1); 
  ObjectSet("expected range  next Day",OBJPROP_TIMEFRAMES, OBJ_PERIOD_H1 | OBJ_PERIOD_H4  );
  ObjectSet("expected range  next Day",OBJPROP_BACK,false );   ObjectSet("expected range  next Day",OBJPROP_STYLE,0);     
  ObjectSet("expected range  next Day",OBJPROP_COLOR,Blue); 
 //+------------------------------------------------------------------+ 
    // ???????????????????????????????????????????????????????????????????????????????????????
   //===========================================================================================================================================      
   double line_1 = NormalizeDouble(iMA(NULL,0,2 ,0,MODE_SMMA,PRICE_CLOSE,0 ),Digits- 2); // для 5-значных ДЦ ставим  Digits- 3
   double line_2 = line_1 ;  string   Line1 = "1";  string   Line2 = "2";
      for (int l=0; l<9; l++) { int ll=0;   if (ll>=9) break; else  { 
 //+------------------------------------------------------------------+     
  if (Grid_25_points) ObjectCreate(Line1+l,OBJ_TREND,0,iTime(NULL,PERIOD_W1,0),line_1,iTime(NULL,0,0) ,line_1); 
ObjectSet(Line1+l,OBJPROP_RAY,1); ObjectSet(Line1+l,OBJPROP_STYLE,2); ObjectSet(Line1+l, OBJPROP_COLOR, DarkGray);  
 ObjectSet(Line1+l,OBJPROP_TIMEFRAMES, OBJ_PERIOD_M5|OBJ_PERIOD_M15|OBJ_PERIOD_M30 | OBJ_PERIOD_H1); 
                  line_1 = line_1 + 25*nPoint;
  //+------------------------------------------------------------------+            
  if (Grid_25_points) ObjectCreate(Line2+l,OBJ_TREND,0,iTime(NULL,PERIOD_W1,0),line_2,iTime(NULL,0,0) ,line_2); 
 ObjectSet(Line2+l,OBJPROP_RAY,1);  ObjectSet(Line2+l,OBJPROP_STYLE,2);ObjectSet (Line2+l,OBJPROP_COLOR,DarkGray);
 ObjectSet(Line2+l,OBJPROP_TIMEFRAMES, OBJ_PERIOD_M5|OBJ_PERIOD_M15|OBJ_PERIOD_M30 | OBJ_PERIOD_H1); 
                  line_2 = line_2 - 25*nPoint;
    ll++;   }   }  
//+------------------------------------------------------------------+
 // ???????????????????????????????????????????????????????????????????????????????????????   
     for (int ii = 0; ii <= col_days; ii++)  { 
    if (show_range_Daily)  ObjectCreate("Day"+ii,OBJ_RECTANGLE,0,Days[ii][0]+86400,Days[ii][3],Days[ii][0],Days[ii][2]);
      ObjectSet("Day"+ii,OBJPROP_COLOR,DarkGray);
    ObjectSet("Day"+ii,OBJPROP_STYLE,2); //
    ObjectSet("Day"+ii,OBJPROP_BACK,false );    //false true
  //--------------------------------------------------------------   
  if (show_range_Weekly)   ObjectCreate("Weekly"+ii,OBJ_RECTANGLE,0,Days1[ii][0]+86400*6,Days1[ii][3],Days1[ii][0],Days1[ii][2]);
     ObjectSet("Weekly"+ii,OBJPROP_COLOR,DarkGray);
      ObjectSet("Weekly"+ii,OBJPROP_STYLE,3);  
     ObjectSet("Weekly"+ii,OBJPROP_BACK,false );    //false true
   }  
 }
 //--------------------------------------------------------------
 return(0);
  }
 //+------------------------------------------------------------------+
int HighBar(string symbol,int TFLow,int BarLow,int TFHigh)                                                       
  {
   datetime BarTimeLow = iTime(symbol, TFLow, BarLow);    
   int error = GetLastError();
   if(error == 4066)   return (-1);
   int res = iBarShift(symbol, TFHigh, BarTimeLow, false);
   error = GetLastError();if(error == 4066) 
       return (-1);
   return (res);
 }
//+--------------------------------------------------------- 
  //+------------------------------------------------------------------+
double GetPoint(string vSymbol)
{
 int vres = StringFind(vSymbol,"JPY");
 if (vres == -1) return(0.0001);
 return(0.01);
}
//+-----------------------------------------------+ 

