/* 
   Maggio 2020 modificato fibo_zone con aggiunta
   livello +/- 150% range giorno precedente 
*/   

#property indicator_chart_window
#property indicator_buffers 7
#property indicator_color1 Crimson // r100
#property indicator_color2 Sienna  // r50
#property indicator_color3 White   // pivot
#property indicator_color4 DarkOliveGreen  // s50
#property indicator_color5 Green  // s100
#property indicator_color6 Aqua   // r150
#property indicator_color7 Aqua   // s150

extern int NumOfBars = 0;
extern int per = 10;
extern ENUM_LINE_STYLE line_style=STYLE_DOT;

double Buffer1[];
double Buffer2[];
double Buffer3[];
double Buffer4[];
double Buffer5[];
double Buffer6[];
double Buffer7[];

int last = 0;

int init()
{
   SetIndexStyle(0,DRAW_LINE,line_style,0); // r100
   SetIndexStyle(1,DRAW_LINE,line_style,0); // r50
   SetIndexStyle(2,DRAW_LINE,line_style,0); // pp
   SetIndexStyle(3,DRAW_LINE,line_style,0); // s50
   SetIndexStyle(4,DRAW_LINE,line_style,0); // s100
   SetIndexStyle(5,DRAW_LINE,line_style,0); // r150
   SetIndexStyle(6,DRAW_LINE,line_style,0); // s150
   SetIndexBuffer(0,Buffer1);
   SetIndexBuffer(1,Buffer2);
   SetIndexBuffer(2,Buffer3);
   SetIndexBuffer(3,Buffer4);
   SetIndexBuffer(4,Buffer5);
   SetIndexBuffer(5,Buffer6);
   SetIndexBuffer(6,Buffer7);
   return(0);
}
   
int deinit()
{
   return(0);
}


int start()  
{
   if(last == Bars) return (0);
   last = Bars;
   int limit = NumOfBars;
   if(limit==0 || limit>Bars) limit=Bars;
   int b,l = 0;
   double roc = 0;
   double C,D,B,A,E,F,G;
   for(int i = limit-1;i>=0;i--)
    {
      b = iBarShift(NULL,PERIOD_D1,Time[i]);
      if(b!=l)
       { 
         l = b;
         int b_ = TimeDayOfWeek(Time[i]);
         if(b_==1) b +=2; else b +=1;   // bypass domenica
       }
         double cl = iClose(NULL,PERIOD_D1,b);
         double hi = iHigh(NULL,PERIOD_D1,b);
         double lo = iLow(NULL,PERIOD_D1,b);
         
         C = (cl+hi+lo) / 3;
         D = C + (hi-lo)/2;
         B = C - (hi-lo)/2;
         E = C + (hi-lo);
         A = C - (hi-lo);
         F = C + (hi-lo)*1.5; // agguinta
         G = C - (hi-lo)*1.5;
         
         Buffer1[i] = E;
         Buffer2[i] = D;
         Buffer3[i] = C;
         Buffer4[i] = B;
         Buffer5[i] = A;
         Buffer6[i] = F;
         Buffer7[i] = G;        

   }
   
   return(0);
}
//+------------------------------------------------------------------+

