//+------------------------------------------------------------------+
//|                                       Dadas_Lead_Zone_Script.mq4 |
//|                                                            Dadas |
//|                                              fx-nvatc.comeze.com |
//+------------------------------------------------------------------+
#property copyright "Dadas"
#property link      "fx-nvatc.comeze.com"

#property show_inputs


extern int   Lead_Zone_Candle_Tf  = 60;
extern color Lead_Zone_Color      = clrDimGray;
extern int   Fibo_Line_Width       = 0;
extern int   Fibo_Line_Style       = 2;
extern int   Fibo382_Line_Style    = 0;
extern color Fibo_Line_Color_Up    = clrLimeGreen; 
extern color Fibo_Line_Color_Down  = clrRed; 

bool  Bckg = true ;

extern string Trend_Lines_Settings = "Trend_Lines_Settings";
extern color Line_Color_Up = clrBlue;
extern color Line_Color_Down = clrRed;
extern int Line_Width = 2;
extern int Line_Style = 0;
extern bool Line_Back = true;
extern bool Line_Ray = true;
extern bool Line_Selectable = true;
extern color Rect_Color = clrDarkSlateGray;
extern color Pivot_Line_Color = clrKhaki;

datetime check_time,time1,time2;
double ph,pl,po,pc,Fibo786_Price,Fibo618_Price,Fibo382_Price,Fibo236_Price,
       Fibo1618_Price,Fibo2618_Price,Fibo3427_Price,Fibo4236_Price;
int shift,i;
color Fibo_Line_Color;

double SL_to_Break_Out = 1.618;
double Trail_SL = 2.618;
double Lock_Profit_on_Stall = 3.427;
double Take_Profit = 4.236;

int start()
  {
     ObjectDelete("Lead_Zone_");
     ObjectDelete("Fibo_786_Line_");      
     ObjectDelete("Fibo_618_Line_");     
     ObjectDelete("Mid_Line_");
     ObjectDelete("Fibo_382_Line_");     
     ObjectDelete("Fibo_236_Line_"); 
     ObjectDelete("Fibo_1618_Line_");      
     ObjectDelete("Fibo_2618_Line_");      
     ObjectDelete("Fibo_3427_Line_");        
     ObjectDelete("Fibo_4236_Line_"); 
     ObjectDelete(Symbol()+"_Trend_Line_Down"); 
     ObjectDelete(Symbol()+"_Trend_Line_Up"); 
     ObjectDelete(Symbol()+"_Custom_Zone_Candle");
     ObjectDelete(NULL,Symbol()+"_Pivot_Line_1");
          
 if(Time[0]<WindowTimeOnDropped()) return(0);
                  
     ObjectCreate("Lead_Zone_", OBJ_RECTANGLE,0,0,0,0,0);
     ObjectCreate("Fibo_786_Line_", OBJ_TREND,0,0,0);      
     ObjectCreate("Fibo_618_Line_", OBJ_TREND,0,0,0);     
     ObjectCreate("Mid_Line_", OBJ_TREND,0,0,0);
     ObjectCreate("Fibo_382_Line_", OBJ_TREND,0,0,0);     
     ObjectCreate("Fibo_236_Line_", OBJ_TREND,0,0,0); 
     ObjectCreate("Fibo_1618_Line_", OBJ_TREND,0,0,0);     
     ObjectCreate("Fibo_2618_Line_", OBJ_TREND,0,0,0);
     ObjectCreate("Fibo_3427_Line_", OBJ_TREND,0,0,0);     
     ObjectCreate("Fibo_4236_Line_", OBJ_TREND,0,0,0);     
     
     
     
 check_time=WindowTimeOnDropped();
 
 time1=iTime(NULL,Lead_Zone_Candle_Tf,iBarShift(NULL,Lead_Zone_Candle_Tf,check_time,false));
 time2=time1+1440*60;
 shift=iBarShift(NULL,Lead_Zone_Candle_Tf,time1,true);
 ph=iHigh(NULL,Lead_Zone_Candle_Tf,shift);
 pl=iLow(NULL,Lead_Zone_Candle_Tf,shift);
 po=iOpen(NULL,Lead_Zone_Candle_Tf,shift);
 pc=iClose(NULL,Lead_Zone_Candle_Tf,shift); 
 
 if(po<pc) 
   {
 Fibo_Line_Color=Fibo_Line_Color_Up;
 Fibo786_Price = pl+(ph-pl)*0.786;
 Fibo618_Price = pl+(ph-pl)*0.618;
 Fibo382_Price = pl+(ph-pl)*0.382; 
 Fibo236_Price = pl+(ph-pl)*0.236; 
 Fibo1618_Price = pl+(ph-pl)*1.618; 
 Fibo2618_Price = pl+(ph-pl)*2.618;
 Fibo3427_Price = pl+(ph-pl)*3.427;
 Fibo4236_Price = pl+(ph-pl)*4.236;
   }
 if(po>pc) 
   {
 Fibo_Line_Color=Fibo_Line_Color_Down; 
 Fibo786_Price = ph-(ph-pl)*0.786;
 Fibo618_Price = ph-(ph-pl)*0.618;
 Fibo382_Price = ph-(ph-pl)*0.382; 
 Fibo236_Price = ph-(ph-pl)*0.236;
 Fibo1618_Price = ph-(ph-pl)*1.618; 
 Fibo2618_Price = ph-(ph-pl)*2.618;
 Fibo3427_Price = ph-(ph-pl)*3.427;
 Fibo4236_Price = ph-(ph-pl)*4.236; 
  
   } 
     ObjectSet("Lead_Zone_", OBJPROP_PRICE1,ph);     
     ObjectSet("Lead_Zone_", OBJPROP_PRICE2,pl);
     ObjectSet("Lead_Zone_", OBJPROP_TIME1,time1+Lead_Zone_Candle_Tf*60);     
     ObjectSet("Lead_Zone_", OBJPROP_TIME2,time2);     
     ObjectSet("Lead_Zone_", OBJPROP_BACK,Bckg);
     ObjectSet("Lead_Zone_", OBJPROP_COLOR,Lead_Zone_Color); 
     ObjectSet("Lead_Zone_", OBJPROP_SELECTABLE,false);
     
     ObjectSet("Fibo_786_Line_", OBJPROP_PRICE1,Fibo786_Price);     
     ObjectSet("Fibo_786_Line_", OBJPROP_PRICE2,Fibo786_Price);
     ObjectSet("Fibo_786_Line_", OBJPROP_TIME1,time1+Lead_Zone_Candle_Tf*60);     
     ObjectSet("Fibo_786_Line_", OBJPROP_TIME2,time2);          
     ObjectSet("Fibo_786_Line_", OBJPROP_BACK,true);
     ObjectSet("Fibo_786_Line_", OBJPROP_COLOR,Fibo_Line_Color); 
     ObjectSet("Fibo_786_Line_", OBJPROP_WIDTH,Fibo_Line_Width);     
     ObjectSet("Fibo_786_Line_", OBJPROP_STYLE,Fibo_Line_Style);     
     ObjectSet("Fibo_786_Line_", OBJPROP_RAY,false);     
     ObjectSet("Fibo_786_Line_", OBJPROP_SELECTABLE,false);  
     
     ObjectSet("Fibo_618_Line_", OBJPROP_PRICE1,Fibo618_Price);     
     ObjectSet("Fibo_618_Line_", OBJPROP_PRICE2,Fibo618_Price);
     ObjectSet("Fibo_618_Line_", OBJPROP_TIME1,time1+Lead_Zone_Candle_Tf*60);     
     ObjectSet("Fibo_618_Line_", OBJPROP_TIME2,time2);          
     ObjectSet("Fibo_618_Line_", OBJPROP_BACK,true);
     ObjectSet("Fibo_618_Line_", OBJPROP_COLOR,Fibo_Line_Color); 
     ObjectSet("Fibo_618_Line_", OBJPROP_WIDTH,Fibo_Line_Width);     
     ObjectSet("Fibo_618_Line_", OBJPROP_STYLE,Fibo_Line_Style);     
     ObjectSet("Fibo_618_Line_", OBJPROP_RAY,false);     
     ObjectSet("Fibo_618_Line_", OBJPROP_SELECTABLE,false);        
     
     ObjectSet("Mid_Line_", OBJPROP_PRICE1,(ph+pl)*0.5);     
     ObjectSet("Mid_Line_", OBJPROP_PRICE2,(ph+pl)*0.5);
     ObjectSet("Mid_Line_", OBJPROP_TIME1,time1+Lead_Zone_Candle_Tf*60);     
     ObjectSet("Mid_Line_", OBJPROP_TIME2,time2);          
     ObjectSet("Mid_Line_", OBJPROP_BACK,true);
     ObjectSet("Mid_Line_", OBJPROP_COLOR,Fibo_Line_Color); 
     ObjectSet("Mid_Line_", OBJPROP_WIDTH,Fibo_Line_Width);     
     ObjectSet("Mid_Line_", OBJPROP_STYLE,Fibo_Line_Style);     
     ObjectSet("Mid_Line_", OBJPROP_RAY,false);     
     ObjectSet("Mid_Line_", OBJPROP_SELECTABLE,false);     
     
     ObjectSet("Fibo_382_Line_", OBJPROP_PRICE1,Fibo382_Price);     
     ObjectSet("Fibo_382_Line_", OBJPROP_PRICE2,Fibo382_Price);
     ObjectSet("Fibo_382_Line_", OBJPROP_TIME1,time1+Lead_Zone_Candle_Tf*60);     
     ObjectSet("Fibo_382_Line_", OBJPROP_TIME2,time2);          
     ObjectSet("Fibo_382_Line_", OBJPROP_BACK,true);
     ObjectSet("Fibo_382_Line_", OBJPROP_COLOR,Fibo_Line_Color); 
     ObjectSet("Fibo_382_Line_", OBJPROP_WIDTH,Fibo_Line_Width);     
     ObjectSet("Fibo_382_Line_", OBJPROP_STYLE,Fibo382_Line_Style);     
     ObjectSet("Fibo_382_Line_", OBJPROP_RAY,false);     
     ObjectSet("Fibo_382_Line_", OBJPROP_SELECTABLE,false); 
     
     ObjectSet("Fibo_236_Line_", OBJPROP_PRICE1,Fibo236_Price);     
     ObjectSet("Fibo_236_Line_", OBJPROP_PRICE2,Fibo236_Price);
     ObjectSet("Fibo_236_Line_", OBJPROP_TIME1,time1+Lead_Zone_Candle_Tf*60);     
     ObjectSet("Fibo_236_Line_", OBJPROP_TIME2,time2);          
     ObjectSet("Fibo_236_Line_", OBJPROP_BACK,true);
     ObjectSet("Fibo_236_Line_", OBJPROP_COLOR,Fibo_Line_Color); 
     ObjectSet("Fibo_236_Line_", OBJPROP_WIDTH,Fibo_Line_Width);     
     ObjectSet("Fibo_236_Line_", OBJPROP_STYLE,Fibo_Line_Style);     
     ObjectSet("Fibo_236_Line_", OBJPROP_RAY,false);     
     ObjectSet("Fibo_236_Line_", OBJPROP_SELECTABLE,false);      

     ObjectSet("Fibo_1618_Line_", OBJPROP_PRICE1,Fibo1618_Price);     
     ObjectSet("Fibo_1618_Line_", OBJPROP_PRICE2,Fibo1618_Price);
     ObjectSet("Fibo_1618_Line_", OBJPROP_TIME1,time1+Lead_Zone_Candle_Tf*60);     
     ObjectSet("Fibo_1618_Line_", OBJPROP_TIME2,time2);          
     ObjectSet("Fibo_1618_Line_", OBJPROP_BACK,true);
     ObjectSet("Fibo_1618_Line_", OBJPROP_COLOR,Fibo_Line_Color); 
     ObjectSet("Fibo_1618_Line_", OBJPROP_WIDTH,Fibo_Line_Width);     
     ObjectSet("Fibo_1618_Line_", OBJPROP_STYLE,Fibo382_Line_Style);     
     ObjectSet("Fibo_1618_Line_", OBJPROP_RAY,false);     
     ObjectSet("Fibo_1618_Line_", OBJPROP_SELECTABLE,false); 
               
     ObjectSet("Fibo_2618_Line_", OBJPROP_PRICE1,Fibo2618_Price);     
     ObjectSet("Fibo_2618_Line_", OBJPROP_PRICE2,Fibo2618_Price);
     ObjectSet("Fibo_2618_Line_", OBJPROP_TIME1,time1+Lead_Zone_Candle_Tf*60);     
     ObjectSet("Fibo_2618_Line_", OBJPROP_TIME2,time2);          
     ObjectSet("Fibo_2618_Line_", OBJPROP_BACK,true);
     ObjectSet("Fibo_2618_Line_", OBJPROP_COLOR,Fibo_Line_Color); 
     ObjectSet("Fibo_2618_Line_", OBJPROP_WIDTH,Fibo_Line_Width);     
     ObjectSet("Fibo_2618_Line_", OBJPROP_STYLE,Fibo382_Line_Style);     
     ObjectSet("Fibo_2618_Line_", OBJPROP_RAY,false);     
     ObjectSet("Fibo_2618_Line_", OBJPROP_SELECTABLE,false); 
          
     ObjectSet("Fibo_3427_Line_", OBJPROP_PRICE1,Fibo3427_Price);     
     ObjectSet("Fibo_3427_Line_", OBJPROP_PRICE2,Fibo3427_Price);
     ObjectSet("Fibo_3427_Line_", OBJPROP_TIME1,time1+Lead_Zone_Candle_Tf*60);     
     ObjectSet("Fibo_3427_Line_", OBJPROP_TIME2,time2);          
     ObjectSet("Fibo_3427_Line_", OBJPROP_BACK,true);
     ObjectSet("Fibo_3427_Line_", OBJPROP_COLOR,Fibo_Line_Color); 
     ObjectSet("Fibo_3427_Line_", OBJPROP_WIDTH,Fibo_Line_Width);     
     ObjectSet("Fibo_3427_Line_", OBJPROP_STYLE,Fibo382_Line_Style);     
     ObjectSet("Fibo_3427_Line_", OBJPROP_RAY,false);     
     ObjectSet("Fibo_3427_Line_", OBJPROP_SELECTABLE,false);      
          
     ObjectCreate("Fibo_4236_Line_", OBJ_TREND,0,0,0); 
     ObjectSet("Fibo_4236_Line_", OBJPROP_PRICE1,Fibo4236_Price);     
     ObjectSet("Fibo_4236_Line_", OBJPROP_PRICE2,Fibo4236_Price);
     ObjectSet("Fibo_4236_Line_", OBJPROP_TIME1,time1+Lead_Zone_Candle_Tf*60);     
     ObjectSet("Fibo_4236_Line_", OBJPROP_TIME2,time2);          
     ObjectSet("Fibo_4236_Line_", OBJPROP_BACK,true);
     ObjectSet("Fibo_4236_Line_", OBJPROP_COLOR,Fibo_Line_Color); 
     ObjectSet("Fibo_4236_Line_", OBJPROP_WIDTH,Fibo_Line_Width);     
     ObjectSet("Fibo_4236_Line_", OBJPROP_STYLE,Fibo382_Line_Style);     
     ObjectSet("Fibo_4236_Line_", OBJPROP_RAY,false);     
     ObjectSet("Fibo_4236_Line_", OBJPROP_SELECTABLE,false);

//---- Trend section     
    int Shift=iBarShift(Symbol(),0,WindowTimeOnDropped(),true); 
    int Tf_by_Period = Period();
    if(Period()==10080) Tf_by_Period = 7200;
    if(Period()==43200) Tf_by_Period = 31680;
    time1 = iTime(NULL,Period(),Shift);
    time2 = iTime(NULL,Period(),Shift-1);
    int iBarLowest1 = iLowest( NULL, PERIOD_M1, MODE_LOW, Tf_by_Period, iBarShift(NULL, PERIOD_M1, time1-1));  //lowest in previous Fixed_Trend_Tf_Follow
    int iBarLowest2 = iLowest( NULL, PERIOD_M1, MODE_LOW, Tf_by_Period, iBarShift(NULL, PERIOD_M1, time2-1));    //lowest in antes-previous Fixed_Trend_Tf_Follow
    double price_lowest1 = iLow(NULL,PERIOD_M1,iBarLowest1);    
    double price_lowest2 = iLow(NULL,PERIOD_M1,iBarLowest2);
    datetime time_lowest1 = iTime(NULL,PERIOD_M1,iBarLowest1);
    datetime time_lowest2 = iTime(NULL,PERIOD_M1,iBarLowest2);    
    int iBarHighest1 = iHighest( NULL, PERIOD_M1, MODE_HIGH, Tf_by_Period, iBarShift(NULL, PERIOD_M1, time1-1));  //highest in previous Fixed_Trend_Tf_Follow
    int iBarHighest2 = iHighest( NULL, PERIOD_M1, MODE_HIGH, Tf_by_Period, iBarShift(NULL, PERIOD_M1, time2-1));    //highest in antes-previous Fixed_Trend_Tf_Follow
    double price_highest1 = iHigh(NULL,PERIOD_M1,iBarHighest1);    
    double price_highest2 = iHigh(NULL,PERIOD_M1,iBarHighest2); 
    datetime time_highest1 = iTime(NULL,PERIOD_M1,iBarHighest1);
    datetime time_highest2 = iTime(NULL,PERIOD_M1,iBarHighest2);      



    double ph1=price_highest1; 
    double ph2=price_highest2;
    double pl1=price_lowest1;
    double pl2=price_lowest2;
 
//----

                  
 if(ph2<=ph1) 
  {

ObjectCreate(Symbol()+"_Trend_Line_Down",OBJ_TREND,0,time_highest1,ph1,time_highest2,ph2);
ObjectSet(Symbol()+"_Trend_Line_Down",OBJPROP_COLOR,Line_Color_Down);
ObjectSet(Symbol()+"_Trend_Line_Down",OBJPROP_STYLE,Line_Style);
ObjectSet(Symbol()+"_Trend_Line_Down",OBJPROP_WIDTH,Line_Width);
ObjectSet(Symbol()+"_Trend_Line_Down",OBJPROP_BACK,Line_Back);
ObjectSet(Symbol()+"_Trend_Line_Down",OBJPROP_RAY,Line_Ray);
ObjectSet(Symbol()+"_Trend_Line_Down",OBJPROP_SELECTABLE,Line_Selectable);

  }
  
//---  
  
 if(pl2>=pl1) 
  {
 
ObjectCreate(Symbol()+"_Trend_Line_Up",OBJ_TREND,0,time_lowest1,pl1,time_lowest2,pl2);
ObjectSet(Symbol()+"_Trend_Line_Up",OBJPROP_COLOR,Line_Color_Up);
ObjectSet(Symbol()+"_Trend_Line_Up",OBJPROP_STYLE,Line_Style);
ObjectSet(Symbol()+"_Trend_Line_Up",OBJPROP_WIDTH,Line_Width);
ObjectSet(Symbol()+"_Trend_Line_Up",OBJPROP_BACK,Line_Back);
ObjectSet(Symbol()+"_Trend_Line_Up",OBJPROP_RAY,Line_Ray);
ObjectSet(Symbol()+"_Trend_Line_Up",OBJPROP_SELECTABLE,Line_Selectable);

  }
   
Shift=iBarShift(Symbol(),0,WindowTimeOnDropped(),true);      
         time1=Time[0]+31536000;     
datetime time=iTime(NULL,0,Shift)+Period()*60; 
datetime timehist = iTime(NULL,0,Bars);   

ObjectCreate(Symbol()+"_Custom_Zone_Candle",OBJ_RECTANGLE,0,time,High[Shift+1],time1,Low[Shift+1]); 
ObjectSet(Symbol()+"_Custom_Zone_Candle",OBJPROP_COLOR,Rect_Color); 
ObjectSet(Symbol()+"_Custom_Zone_Candle",OBJPROP_BACK,true); 


    ObjectCreate(NULL,Symbol()+"_Pivot_Line_1",OBJ_TREND,0,timehist,(High[Shift+1]+Low[Shift+1])/2,time1,(High[Shift+1]+Low[Shift+1])/2);
    ObjectSet(Symbol()+"_Pivot_Line_1",OBJPROP_COLOR,Pivot_Line_Color);
    ObjectSet(Symbol()+"_Pivot_Line_1",OBJPROP_STYLE,2);
    ObjectSet(Symbol()+"_Pivot_Line_1",OBJPROP_WIDTH,0);
    ObjectSet(Symbol()+"_Pivot_Line_1",OBJPROP_BACK,false);
    ObjectSet(Symbol()+"_Pivot_Line_1",OBJPROP_RAY,false); 
//----     
     
        
   return(0);
  }
//+------------------------------------------------------------------+