Golden_section_v2.2





//+------------------------------------------------------------------+
//|                                            Golden_section_v2.mq4 |
//|                                                            Talex |
//|                                                 tan@gazinter.net |
//+------------------------------------------------------------------+
// Very rough English translation by http://translation2.paralink.com/
// Feel free to translate the rest of the comments.

#property copyright "Talex"
#property link      "tan@gazinter.net"

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Lime

extern int ExtDepth=8; /* Parameter for ZZ */
/*extern*/ int ExtIndicator=0; /* Defines ? which will search for points for construction of a pattern while only 0 */
extern double ExtDopusk=0.01; /* The parameters of pattern will differ not more than value ExtDopusk */
extern int ExtPoint=3; /* The number of counted points of break, if we make more than 3, then it is possible to construct from any point of break */
extern string ExtComplect="0"; /* This in order to derive several indicators on the graph */
extern int ExtMovePoint=0; /*To move the point of otrisovki of fan from the pitchforks for a quantity of bars indicated of the variable*/
extern bool ExtPitchfork=true; /* Construction with the aid of the pitchforks is used*/
extern bool ExtPitchforkRevers=false; /* Is turned over broom, why? you will ask Vadimcha */
extern bool ExtBack=true; /*If true, then objects will be shown in the background regime */
extern bool ExtFan=true; /* If true, then fibovenik will be brought out to the graph */
extern bool ExtRec=true; /* If true, then rectangle will be brought out to the graph */
extern bool ExtArc=true; /* If true, then fiboarka will be brought out to the graph */
extern bool ExtLeftChannel=false; /* If true, then the lines of channel will be brought out to the graph */
extern bool ExtRightChannel=false; /* If true, then the lines of channel will be brought out to the graph */
extern double ExtFiboLeftChannel=1.618; /* Is established fibo the point of the construction of the left lines */
extern double ExtFiboRightChannel=1.618; /* Is established fibo the point of the construction of the right lines */
extern bool ExtSave=false; /* If true, then constructions will be preserved on the graph */
extern double ExtScale=0; /* The scale of the arc is established */
extern int ExtFanStyle=0; /* Is established the style of the lines of fibovenika */
extern int ExtFanWidth=1; /* Is established the width of the lines of fibovenika */
extern color ExtFanColor=DeepPink; /* the color of fibovenikov */
extern int ExtRecStyle=4; /* The style of the lines of the rectangle is established */
extern int ExtRecWidth=1; /* The width of thêàe lines of the rectangle is established */
extern color ExtRecColor=Yellow; /* The color of the rectangle */
extern int ExtArcStyle=0; /* Is established the style of the lines of fiboarki */ 
extern int ExtArcWidth=1; /* Is established the width of the lines of fiboarki */
extern color ExtArcColor=Red; /* The color of the arc */
extern int ExtChannelStyle=0; /* The style of the lines of the channel is established */ 
extern int ExtChannelWidth=1; /* The width of the lines of the channel is established */ 
extern color ExtChannelColor=Blue; /* The color of the lines of the channel */
extern int ExtPitchforkStyle=0; /* The style of the lines of the pitchforks is established */
extern int ExtPitchforkWidth=1; /* The width of the lines of the pitchforks is established */
extern color ExtPitchforkColor=Lime; /* The color of the pitchforks */

/* Below coordinates of points can be introduced by the knobs */

extern datetime TimePointX=0; /* The time of point X in the size '1980.07.19 12:30' */
extern datetime TimePointA=0; /* The time of point A in the size '1980.07.19 12:30' */
extern datetime TimePointB=0; /* The time of point B in the size '1980.07.19 12:30' */

extern double FiboFanMediana1=0.382;
extern double FiboFanMediana2=1.272;

extern double Fibo1=0.0;
extern double Fibo2=0.382;
extern double Fibo3=0.5;
extern double Fibo4=0.618;
extern double Fibo5=0.786;
extern double Fibo6=0.886;
extern double Fibo7=1.0;
extern double Fibo8=1.272;
extern double Fibo9=1.618;
extern double Fibo10=2.0;
extern double Fibo11=2.618;

/* Council - nastroyte for itself color, style, the width of the lines of objects, fibo- levels and remove before the appropriate parameters extern */


double zz[];
//+------------------------------------------------------------------+
//| Custom Indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   IndicatorBuffers(1);
   SetIndexBuffer(0,zz);
   SetIndexStyle(0,DRAW_SECTION);
   SetIndexEmptyValue(0,0.0);
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom Indicator deinitialization function                       |
//+------------------------------------------------------------------+

int deinit()
  {
//----
   int i;
   
    for(i=0;i<=ExtDepth;i++)
    {
    ObjectDelete("FiboFan1"+"_"+i+"_"+ExtComplect+"_");
    ObjectDelete("FiboFan2"+"_"+i+"_"+ExtComplect+"_");
    ObjectDelete("FiboArc"+"_"+i+"_"+ExtComplect+"_");
    ObjectDelete("Rectangle"+"_"+i+"_"+ExtComplect+"_");
    ObjectDelete("LeftChannel"+"_"+i+"_"+ExtComplect+"_");
    ObjectDelete("RightChannel"+"_"+i+"_"+ExtComplect+"_");
    ObjectDelete("LeftLine"+"_"+i+"_"+ExtComplect+"_");
    ObjectDelete("RightLine"+"_"+i+"_"+ExtComplect+"_");
    ObjectDelete("Pitchfork"+"_"+i+"_"+ExtComplect+"_");
    ObjectDelete("Mediana"+"_"+i+"_"+ExtComplect+"_");
    }
    
   //----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom Indicator iteration function                              |
//+------------------------------------------------------------------+

int start()
  {
   int PP[];
   int i,j,X,A,B;
   double R0382=0.382, R0786=0.786, retXB, minret, maxret,AutoScale;
   double p1,p2,p3,p4,p5,p6,p7;
   datetime t1,t2,t3,t4,t5,t6,t7;
   string save="";
   double tang;
   
   if(ExtSave==true)
   {
    save=TimeToStr(TimeLocal(),TIME_DATE|TIME_SECONDS);
   }
   minret=1-ExtDopusk; maxret=1+ExtDopusk;
   
   ArrayResize(PP,ExtPoint); 
   
   if(TimePointX!=0 && TimePointA!=0 && TimePointB!=0)
   {
    ExtPoint=3;
    PP[0]=iBarShift(NULL,0,TimePointB); 
    PP[1]=iBarShift(NULL,0,TimePointA);
    PP[2]=iBarShift(NULL,0,TimePointX);
    if((High[PP[0]]>High[PP[1]] && High[PP[2]]>High[PP[1]]) || (Low[PP[0]]>Low[PP[1]] && Low[PP[2]]>Low[PP[1]]))
    {
     zz[PP[0]]=High[PP[0]];
     zz[PP[1]]=Low[PP[1]];
     zz[PP[2]]=High[PP[2]];
    }else 
     {
      zz[PP[0]]=Low[PP[0]];
      zz[PP[1]]=High[PP[1]];
      zz[PP[2]]=Low[PP[2]];
     }
   } else
   {
   switch (ExtIndicator)
     {
      case 0: {ZZTalex(ExtDepth);   break;}
      
      /*Here it is possible to add functions according to the calculation of the points of the patterns*/
      
      default:{ZZTalex(ExtDepth);   break;}
     }
     if(ExtIndicator==0)
     { 
      j=0;
      for(i=0;i<Bars-1 && j<=ExtPoint;i++)
      {
       if(zz[i]!=0)
       {
        PP[j]=i;
        j++;
       }
      }
     }
    }
    if(ExtPitchfork==false)
    {
     if((zz[PP[ExtPoint-1]]<zz[PP[ExtPoint-3]] && zz[PP[ExtPoint-3]]<zz[PP[ExtPoint-2]]) || (zz[PP[ExtPoint-1]]>zz[PP[ExtPoint-3]] && zz[PP[ExtPoint-3]]>zz[PP[ExtPoint-2]]))
     {
      retXB=(zz[PP[ExtPoint-2]]-zz[PP[ExtPoint-3]])/(zz[PP[ExtPoint-2]]-zz[PP[ExtPoint-1]]+0.000001);
      
      if(retXB>=R0382*minret && retXB<=R0786*maxret)
      {
       t1=Time[PP[ExtPoint-1]];p1=zz[PP[ExtPoint-1]];
       t2=Time[PP[ExtPoint-3]];p2=zz[PP[ExtPoint-3]];
       if(2*PP[ExtPoint-3]-PP[ExtPoint-1]<=0)
       {
        t3=Time[0]-(2*PP[ExtPoint-3]-PP[ExtPoint-1])*Period()*60;p3=zz[PP[ExtPoint-3]]-(zz[PP[ExtPoint-1]]-zz[PP[ExtPoint-3]]);
       } else {t3=Time[2*PP[ExtPoint-3]-PP[ExtPoint-1]];p3=zz[PP[ExtPoint-3]]-(zz[PP[ExtPoint-1]]-zz[PP[ExtPoint-3]]);}
      }
     }
     if(ExtScale==0)
     {/* Calculation AutoScale proposed Vadimcha to it all questions */
      AutoScale=MathAbs((p1-p3)*MathPow(10,Digits)/(2*(PP[ExtPoint-1]-PP[ExtPoint-3])));
     }else AutoScale=ExtScale;
     CreateObject(p1,p2,p3,t1,t2,t3,save,AutoScale);
    }
    if(ExtPitchfork)
   {
    t1=Time[PP[ExtPoint-1]];p1=zz[PP[ExtPoint-1]];
    t2=Time[PP[ExtPoint-2]];p2=zz[PP[ExtPoint-2]];
    t3=Time[PP[ExtPoint-3]];p3=zz[PP[ExtPoint-3]];
    p4=(zz[PP[ExtPoint-2]]+zz[PP[ExtPoint-3]])/2;
    ObjectCreate("Pitchfork"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJ_PITCHFORK,0,t1,p1,t2,p2,t3,p3);
    ObjectSet("Pitchfork"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_BACK,ExtBack);
    ObjectSet("Pitchfork"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_COLOR,ExtPitchforkColor);
    ObjectSet("Pitchfork"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_STYLE,ExtPitchforkStyle);
    ObjectSet("Pitchfork"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_WIDTH,ExtPitchforkWidth);
       
    tang=(p1-p4)/(PP[ExtPoint-1]-(PP[ExtPoint-2]-(PP[ExtPoint-2]-PP[ExtPoint-3])/2.0));
    t5=t3;
    p5=p1-tang*(PP[ExtPoint-1]-PP[ExtPoint-3]);
    ObjectCreate("Mediana"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJ_TREND,0,t1,p1,t5,p5);
    ObjectSet("Mediana"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_BACK,ExtBack);
    ObjectSet("Mediana"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_COLOR,ExtPitchforkColor);
    
    if((p1<p2 && p1<p4) || (p1>p2 && p1>p4))
     {
      /* In this case the levels of less than 100% will coincide */
      
       p6=(p5-p3)/FiboFanMediana1+p3;//-tang*ExtMovePoint;
       if(ObjectGetShiftByValue("Mediana"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,p6)<-100)
        {
         Alert("The point for construction of a fan to be too far, try to use greater value for FiboFanMediana1");
        }
      
       if(ObjectGetShiftByValue("Mediana"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,p6)>0)
       {
        t6=Time[ObjectGetShiftByValue("Mediana"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,p6)]+ExtMovePoint*Period()*60;
       } else t6=Time[0]-ObjectGetShiftByValue("Mediana"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,p6)*Period()*60+ExtMovePoint*Period()*60;
     }
     if((p1<p2 && p1>p4) || (p1>p2 && p1<p4))
     {
      /* Variables */
      
       p6=(p5-p3)/FiboFanMediana2+p3;//-tang*ExtMovePoint;
       if(ObjectGetShiftByValue("Mediana"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,p6)<-100)
        {
         Alert("The point for construction of a fan to be too far, try to use smaller value for FiboFanMediana2");
        }
     
       if(ObjectGetShiftByValue("Mediana"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,p6)-ExtMovePoint>=0)
       {
        t6=Time[ObjectGetShiftByValue("Mediana"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,p6)]+ExtMovePoint*Period()*60;
       } else t6=Time[0]-ObjectGetShiftByValue("Mediana"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,p6)*Period()*60+ExtMovePoint*Period()*60;
     }
     if(2*ObjectGetShiftByValue("Mediana"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,p6)-PP[ExtPoint-3]-2*ExtMovePoint>=0)
     {
      t7=Time[2*ObjectGetShiftByValue("Mediana"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,p6)-PP[ExtPoint-3]-2*ExtMovePoint];
     }
      else t7=t6+(PP[ExtPoint-3]-ObjectGetShiftByValue("Mediana"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,p6))*Period()*60+ExtMovePoint*Period()*60;
     /* the correction of price p6*/
     p6=ObjectGetValueByShift("Mediana"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,ObjectGetShiftByValue("Mediana"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,p6));
     p7=2*p6-p3;
     //Print("t6=",TimeToStr(t6,TIME_DATE),"; p6=",p6,"; NbarMediana=",ObjectGetShiftByValue("Mediana"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,p6));
     //Print("t3=",TimeToStr(t3,TIME_DATE),"; p3=",p3,"; t7=",TimeToStr(t7,TIME_DATE),"; p7=",p7);
     if(p1==p4)
     {
      Alert("Fan to construct it is impossible.");
      p3=0;p6=0;p7=0;t3=0;t6=0;t7=0;
     }
     if(ExtScale==0)
     {
      AutoScale=MathAbs((p7-p3)*MathPow(10,Digits)/(2*(PP[ExtPoint-3]-ObjectGetShiftByValue("Mediana"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,p6))));
     }else AutoScale=ExtScale;
    CreateObject(p3,p6,p7,t3,t6,t7,save,AutoScale);
     
   }
   
//----
   
//----
   return(0);
  }
  
/*------------------------------------------------------------------------------------------------------------------------------------+
|  ZigZag_.Talex, searches for the points of break on the graph. A quantity of points is assigned by the external parameter ExtPoint  |                        
+------------------------------------------------------------------------------------------------------------------------------------*/

void ZZTalex(int n)
{

/* Variables */

   int    i,j,k,zzbarlow,zzbarhigh,curbar,curbar1,curbar2,EP,Mbar[];
   double curpr,Mprice[];
   bool flag,fd;
   static int endbar;
   static double endpr;
   
   
   /* The beginning */
   
   for(i=0;i<=Bars-1;i++)
   {zz[i]=0.0;}
   
   EP=ExtPoint;
   zzbarlow=iLowest(NULL,0,MODE_LOW,n,0);        
   zzbarhigh=iHighest(NULL,0,MODE_HIGH,n,0);     
   
   if(zzbarlow<zzbarhigh) {curbar=zzbarlow; curpr=Low[zzbarlow];}
   if(zzbarlow>zzbarhigh) {curbar=zzbarhigh; curpr=High[zzbarhigh];}
   if(zzbarlow==zzbarhigh){curbar=zzbarlow;curpr=funk1(zzbarlow, n);}
   
   ArrayResize(Mbar,ExtPoint);
   ArrayResize(Mprice,ExtPoint);
   j=0;
   endpr=curpr;
   endbar=curbar;
   Mbar[j]=curbar;
   Mprice[j]=curpr;
   
   EP--;
   if(curpr==Low[curbar]) flag=true;
   else flag=false;
    
   i=curbar+1;
   while(EP>0)
   {
    if(flag)
    {
     while(i<=Bars-1)
     {
     curbar1=iHighest(NULL,0,MODE_HIGH,n,i); 
     curbar2=iHighest(NULL,0,MODE_HIGH,n,curbar1); 
     if(curbar1==curbar2){curbar=curbar1;curpr=High[curbar];flag=false;i=curbar+1;j++;break;}
     else i=curbar2;
     }
     
     Mbar[j]=curbar;
     Mprice[j]=curpr;
     EP--;
     
    }
    
    if(EP==0) break;
    
    if(!flag) 
    {
     while(i<=Bars-1)
     {
     curbar1=iLowest(NULL,0,MODE_LOW,n,i); 
     curbar2=iLowest(NULL,0,MODE_LOW,n,curbar1); 
     if(curbar1==curbar2){curbar=curbar1;curpr=Low[curbar];flag=true;i=curbar+1;j++;break;}
     else i=curbar2;
     }
     
     Mbar[j]=curbar;
     Mprice[j]=curpr;
     EP--;
    }
   }
   /* The correction of the apexes */
   if(Mprice[0]==Low[Mbar[0]])fd=true; else fd=false;
   for(k=0;k<=ExtPoint-1;k++)
   {
    if(k==0)
    {
     if(fd==true)
      {
       Mbar[k]=iLowest(NULL,0,MODE_LOW,Mbar[k+1]-Mbar[k],Mbar[k]);Mprice[k]=Low[Mbar[k]];endbar=ExtDepth;
      }
     if(fd==false)
      {
       Mbar[k]=iHighest(NULL,0,MODE_HIGH,Mbar[k+1]-Mbar[k],Mbar[k]);Mprice[k]=High[Mbar[k]];endbar=ExtDepth;
      }
    }
    if(k<ExtPoint-2)
    {
     if(fd==true)
      {
       Mbar[k+1]=iHighest(NULL,0,MODE_HIGH,Mbar[k+2]-Mbar[k]-1,Mbar[k]+1);Mprice[k+1]=High[Mbar[k+1]];
      }
     if(fd==false)
      {
       Mbar[k+1]=iLowest(NULL,0,MODE_LOW,Mbar[k+2]-Mbar[k]-1,Mbar[k]+1);Mprice[k+1]=Low[Mbar[k+1]];
      }
    }
    if(fd==true)fd=false;else fd=true;
    
    /* Building ZigZag'a */
    zz[Mbar[k]]=Mprice[k];
    //Print("zz_"+k,"=",zz[Mbar[k]]);
   }
  
 } 
/*-------------------------------------------------------------------+
/  ZigZag_.Talex the end                                                |
/-------------------------------------------------------------------*/

/*---------------------------------------------------------------------------------------------------+
/ Funtsiya for the search in the first bar (if it external) what extremum we will use as the apex.   |
/---------------------------------------------------------------------------------------------------*/

double funk1(int zzbarlow, int ExtDepth)
{
 double pr;
 int fbarlow,fbarhigh;
 
 fbarlow=iLowest(NULL,0,MODE_LOW,ExtDepth,zzbarlow);  
 fbarhigh=iHighest(NULL,0,MODE_HIGH,ExtDepth,zzbarlow);
 
 if(fbarlow>fbarhigh) {/*if((Low[zzbarlow]<Low[fbarhigh]) && (High[zzbarlow]<High[fbarhigh]))*/ pr=High[zzbarlow];}
 if(fbarlow<fbarhigh) {/*if((Low[zzbarlow]>Low[fbarlow]) && (High[zzbarlow]>High[fbarlow]))*/ pr=Low[zzbarlow];}
 if(fbarlow==fbarhigh)
 {
  fbarlow=iLowest(NULL,0,MODE_LOW,2*ExtDepth,zzbarlow);  
  fbarhigh=iHighest(NULL,0,MODE_HIGH,2*ExtDepth,zzbarlow);
  if(fbarlow>fbarhigh) {/*if((Low[zzbarlow]<Low[fbarhigh]) && (High[zzbarlow]<High[fbarhigh]))*/ pr=High[zzbarlow];}
  if(fbarlow<fbarhigh) {/*if((Low[zzbarlow]>Low[fbarlow]) && (High[zzbarlow]>High[fbarlow]))*/ pr=Low[zzbarlow];}
  if(fbarlow==fbarhigh)
  {
   fbarlow=iLowest(NULL,0,MODE_LOW,3*ExtDepth,zzbarlow);  
   fbarhigh=iHighest(NULL,0,MODE_HIGH,3*ExtDepth,zzbarlow);
   if(fbarlow>fbarhigh) {/*if((Low[zzbarlow]<Low[fbarhigh]) && (High[zzbarlow]<High[fbarhigh]))*/ pr=High[zzbarlow];}
   if(fbarlow<fbarhigh) {/*if((Low[zzbarlow]>Low[fbarlow]) && (High[zzbarlow]>High[fbarlow]))*/ pr=Low[zzbarlow];}
  }
 }
 return(pr);
}

/*------------------------------------------------------------------+
|                Function of the creation of the units              |
+------------------------------------------------------------------*/

void CreateObject(double p1, double p2, double p3, datetime t1, datetime t2, datetime t3,string save,double AutoScale)
{
 if(ExtFan)
     { 
       ObjectCreate("FiboFan1"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJ_FIBOFAN,0,t2,p2,t1,p1);
       ObjectSet("FiboFan1"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_BACK,ExtBack);
       ObjectSet("FiboFan1"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIBOLEVELS,11);
       ObjectSet("FiboFan1"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_LEVELCOLOR,ExtFanColor);
       ObjectSet("FiboFan1"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_LEVELSTYLE,ExtFanStyle);
       ObjectSet("FiboFan1"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_LEVELWIDTH,ExtFanWidth);
       ObjectSet("FiboFan1"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+0,Fibo1);
       ObjectSet("FiboFan1"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+1,Fibo2);
       ObjectSet("FiboFan1"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+2,Fibo3);
       ObjectSet("FiboFan1"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+3,Fibo4);
       ObjectSet("FiboFan1"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+4,Fibo5);
       ObjectSet("FiboFan1"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+5,Fibo6);
       ObjectSet("FiboFan1"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+6,Fibo7);
       ObjectSet("FiboFan1"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+7,Fibo8);
       ObjectSet("FiboFan1"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+8,Fibo9);
       ObjectSet("FiboFan1"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+9,Fibo10);
       ObjectSet("FiboFan1"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+10,Fibo11);
       ObjectSetFiboDescription("FiboFan1"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,0,DoubleToStr(Fibo1*100,1));
       ObjectSetFiboDescription("FiboFan1"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,1,DoubleToStr(Fibo2*100,1));
       ObjectSetFiboDescription("FiboFan1"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,2,DoubleToStr(Fibo3*100,1));
       ObjectSetFiboDescription("FiboFan1"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,3,DoubleToStr(Fibo4*100,1));
       ObjectSetFiboDescription("FiboFan1"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,4,DoubleToStr(Fibo5*100,1));
       ObjectSetFiboDescription("FiboFan1"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,5,DoubleToStr(Fibo6*100,1));
       ObjectSetFiboDescription("FiboFan1"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,6,DoubleToStr(Fibo7*100,1));
       ObjectSetFiboDescription("FiboFan1"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,7,DoubleToStr(Fibo8*100,1));
       ObjectSetFiboDescription("FiboFan1"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,8,DoubleToStr(Fibo9*100,1));
       ObjectSetFiboDescription("FiboFan1"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,9,DoubleToStr(Fibo10*100,1));
       ObjectSetFiboDescription("FiboFan1"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,10,DoubleToStr(Fibo11*100,1));
       if(ExtPitchforkRevers==false)
       ObjectCreate("FiboFan2"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJ_FIBOFAN,0,t2,p2,t3,p3);
       else ObjectCreate("FiboFan2"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJ_FIBOFAN,0,t2,p2,t3,2*p2-p3);
      
       ObjectSet("FiboFan2"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_BACK,ExtBack);
       ObjectSet("FiboFan2"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIBOLEVELS,11);
       ObjectSet("FiboFan2"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_LEVELCOLOR,ExtFanColor);
       ObjectSet("FiboFan2"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_LEVELSTYLE,ExtFanStyle);
       ObjectSet("FiboFan2"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_LEVELWIDTH,ExtFanWidth);
       ObjectSet("FiboFan2"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+0,Fibo1);
       ObjectSet("FiboFan2"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+1,Fibo2);
       ObjectSet("FiboFan2"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+2,Fibo3);
       ObjectSet("FiboFan2"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+3,Fibo4);
       ObjectSet("FiboFan2"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+4,Fibo5);
       ObjectSet("FiboFan2"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+5,Fibo6);
       ObjectSet("FiboFan2"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+6,Fibo7);
       ObjectSet("FiboFan2"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+7,Fibo8);
       ObjectSet("FiboFan2"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+8,Fibo9);
       ObjectSet("FiboFan2"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+9,Fibo10);
       ObjectSet("FiboFan2"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+10,Fibo11);
       ObjectSetFiboDescription("FiboFan2"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,0,DoubleToStr(Fibo1*100,1));
       ObjectSetFiboDescription("FiboFan2"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,1,DoubleToStr(Fibo2*100,1));
       ObjectSetFiboDescription("FiboFan2"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,2,DoubleToStr(Fibo3*100,1));
       ObjectSetFiboDescription("FiboFan2"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,3,DoubleToStr(Fibo4*100,1));
       ObjectSetFiboDescription("FiboFan2"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,4,DoubleToStr(Fibo5*100,1));
       ObjectSetFiboDescription("FiboFan2"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,5,DoubleToStr(Fibo6*100,1));
       ObjectSetFiboDescription("FiboFan2"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,6,DoubleToStr(Fibo7*100,1));
       ObjectSetFiboDescription("FiboFan2"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,7,DoubleToStr(Fibo8*100,1));
       ObjectSetFiboDescription("FiboFan2"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,8,DoubleToStr(Fibo9*100,1));
       ObjectSetFiboDescription("FiboFan2"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,9,DoubleToStr(Fibo10*100,1));
       ObjectSetFiboDescription("FiboFan2"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,10,DoubleToStr(Fibo11*100,1));
       }
       if(ExtRec)
       {
       ObjectCreate("Rectangle"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJ_RECTANGLE,0,t1,p1,t3,p3);
       ObjectSet("Rectangle"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_BACK,ExtBack);
       ObjectSet("Rectangle"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_COLOR,ExtRecColor);
       ObjectSet("Rectangle"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_STYLE,ExtRecStyle);
       ObjectSet("Rectangle"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_WIDTH,ExtRecWidth);
       ObjectSet("Rectangle"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_BACK,false);
       }
       if(ExtArc)
       {
       ObjectCreate("FiboArc"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJ_FIBOARC,0,t2,p1,t2,p2);
       ObjectSet("FiboArc"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_BACK,ExtBack);
       ObjectSet("FiboArc"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_ELLIPSE,true);
       ObjectSet("FiboArc"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_SCALE,AutoScale);
       ObjectSet("FiboArc"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIBOLEVELS,11);
       ObjectSet("FiboArc"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_LEVELCOLOR,ExtArcColor);
       ObjectSet("FiboArc"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_LEVELSTYLE,ExtArcStyle);
       ObjectSet("FiboArc"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_LEVELWIDTH,ExtArcWidth);
       ObjectSet("FiboArc"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+0,Fibo1);
       ObjectSet("FiboArc"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+1,Fibo2);
       ObjectSet("FiboArc"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+2,Fibo3);
       ObjectSet("FiboArc"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+3,Fibo4);
       ObjectSet("FiboArc"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+4,Fibo5);
       ObjectSet("FiboArc"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+5,Fibo6);
       ObjectSet("FiboArc"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+6,Fibo7);
       ObjectSet("FiboArc"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+7,Fibo8);
       ObjectSet("FiboArc"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+8,Fibo9);
       ObjectSet("FiboArc"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+9,Fibo10);
       ObjectSet("FiboArc"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+10,Fibo11);
       ObjectSetFiboDescription("FiboArc"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,0,DoubleToStr(Fibo1*100,1));
       ObjectSetFiboDescription("FiboArc"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,1,DoubleToStr(Fibo2*100,1));
       ObjectSetFiboDescription("FiboArc"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,2,DoubleToStr(Fibo3*100,1));
       ObjectSetFiboDescription("FiboArc"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,3,DoubleToStr(Fibo4*100,1));
       ObjectSetFiboDescription("FiboArc"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,4,DoubleToStr(Fibo5*100,1));
       ObjectSetFiboDescription("FiboArc"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,5,DoubleToStr(Fibo6*100,1));
       ObjectSetFiboDescription("FiboArc"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,6,DoubleToStr(Fibo7*100,1));
       ObjectSetFiboDescription("FiboArc"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,7,DoubleToStr(Fibo8*100,1));
       ObjectSetFiboDescription("FiboArc"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,8,DoubleToStr(Fibo9*100,1));
       ObjectSetFiboDescription("FiboArc"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,9,DoubleToStr(Fibo10*100,1));
       ObjectSetFiboDescription("FiboArc"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,10,DoubleToStr(Fibo11*100,1));
       }
       if(ExtLeftChannel)
       {
        ObjectCreate("LeftLine"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJ_TREND,0,t2,p2,t3,p1+(p2-p1)*(2-ExtFiboLeftChannel));
        ObjectSet("LeftLine"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_BACK,ExtBack);
        ObjectSet("LeftLine"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_COLOR,ExtChannelColor);
        ObjectSet("LeftLine"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_STYLE,ExtChannelStyle);
        ObjectSet("LeftLine"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_WIDTH,ExtChannelWidth);
        ObjectCreate("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJ_FIBOCHANNEL,0,t2,p2,t1,p1+(p2-p1)*ExtFiboLeftChannel,t2,p1);
        ObjectSet("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_COLOR,ExtChannelColor);
        ObjectSet("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_STYLE,ExtChannelStyle);
        ObjectSet("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_WIDTH,ExtChannelWidth);
        ObjectSet("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIBOLEVELS,21);
        ObjectSet("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_LEVELCOLOR,ExtChannelColor);
        ObjectSet("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_LEVELSTYLE,ExtChannelStyle);
        ObjectSet("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_LEVELWIDTH,ExtChannelWidth);
        ObjectSet("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+0,Fibo1);
        ObjectSet("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+1,Fibo2);
        ObjectSet("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+2,Fibo3);
        ObjectSet("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+3,Fibo4);
        ObjectSet("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+4,Fibo5);
        ObjectSet("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+5,Fibo6);
        ObjectSet("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+6,Fibo7);
        ObjectSet("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+7,Fibo8);
        ObjectSet("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+8,Fibo9);
        ObjectSet("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+9,Fibo10);
        ObjectSet("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+10,Fibo11);
        ObjectSetFiboDescription("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,0,DoubleToStr(Fibo1*100,1));
        ObjectSetFiboDescription("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,1,DoubleToStr(Fibo2*100,1));
        ObjectSetFiboDescription("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,2,DoubleToStr(Fibo3*100,1));
        ObjectSetFiboDescription("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,3,DoubleToStr(Fibo4*100,1));
        ObjectSetFiboDescription("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,4,DoubleToStr(Fibo5*100,1));
        ObjectSetFiboDescription("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,5,DoubleToStr(Fibo6*100,1));
        ObjectSetFiboDescription("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,6,DoubleToStr(Fibo7*100,1));
        ObjectSetFiboDescription("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,7,DoubleToStr(Fibo8*100,1));
        ObjectSetFiboDescription("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,8,DoubleToStr(Fibo9*100,1));
        ObjectSetFiboDescription("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,9,DoubleToStr(Fibo10*100,1));
        ObjectSetFiboDescription("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,10,DoubleToStr(Fibo11*100,1));
        ObjectSet("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+11,-Fibo2);
        ObjectSet("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+12,-Fibo3);
        ObjectSet("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+13,-Fibo4);
        ObjectSet("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+14,-Fibo5);
        ObjectSet("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+15,-Fibo6);
        ObjectSet("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+16,-Fibo7);
        ObjectSet("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+17,-Fibo8);
        ObjectSet("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+18,-Fibo9);
        ObjectSet("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+19,-Fibo10);
        ObjectSet("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+20,-Fibo11);
        ObjectSetFiboDescription("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,11,"-"+DoubleToStr(Fibo2*100,1));
        ObjectSetFiboDescription("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,12,"-"+DoubleToStr(Fibo3*100,1));
        ObjectSetFiboDescription("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,13,"-"+DoubleToStr(Fibo4*100,1));
        ObjectSetFiboDescription("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,14,"-"+DoubleToStr(Fibo5*100,1));
        ObjectSetFiboDescription("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,15,"-"+DoubleToStr(Fibo6*100,1));
        ObjectSetFiboDescription("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,16,"-"+DoubleToStr(Fibo7*100,1));
        ObjectSetFiboDescription("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,17,"-"+DoubleToStr(Fibo8*100,1));
        ObjectSetFiboDescription("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,18,"-"+DoubleToStr(Fibo9*100,1));
        ObjectSetFiboDescription("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,19,"-"+DoubleToStr(Fibo10*100,1));
        ObjectSetFiboDescription("LeftChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,20,"-"+DoubleToStr(Fibo11*100,1));
       }
       if(ExtRightChannel)
       {
        ObjectCreate("RightLine"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJ_TREND,0,t2,p2,t1,p1+(p2-p1)*(2-ExtFiboRightChannel));
        ObjectSet("RightLine"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_BACK,ExtBack);
        ObjectSet("RightLine"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_COLOR,ExtChannelColor);
        ObjectSet("RightLine"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_STYLE,ExtChannelStyle);
        ObjectSet("RightLine"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_WIDTH,ExtChannelWidth);
        ObjectCreate("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJ_FIBOCHANNEL,0,t2,p2,t3,p1+(p2-p1)*ExtFiboRightChannel,t2,p1);
        ObjectSet("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_COLOR,ExtChannelColor);
        ObjectSet("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_STYLE,ExtChannelStyle);
        ObjectSet("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_WIDTH,ExtChannelWidth);
        ObjectSet("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIBOLEVELS,21);
        ObjectSet("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_LEVELCOLOR,ExtChannelColor);
        ObjectSet("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_LEVELSTYLE,ExtChannelStyle);
        ObjectSet("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_LEVELWIDTH,ExtChannelWidth);
        ObjectSet("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+0,Fibo1);
        ObjectSet("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+1,Fibo2);
        ObjectSet("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+2,Fibo3);
        ObjectSet("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+3,Fibo4);
        ObjectSet("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+4,Fibo5);
        ObjectSet("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+5,Fibo6);
        ObjectSet("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+6,Fibo7);
        ObjectSet("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+7,Fibo8);
        ObjectSet("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+8,Fibo9);
        ObjectSet("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+9,Fibo10);
        ObjectSet("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+10,Fibo11);
        ObjectSetFiboDescription("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,0,DoubleToStr(Fibo1*100,1));
        ObjectSetFiboDescription("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,1,DoubleToStr(Fibo2*100,1));
        ObjectSetFiboDescription("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,2,DoubleToStr(Fibo3*100,1));
        ObjectSetFiboDescription("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,3,DoubleToStr(Fibo4*100,1));
        ObjectSetFiboDescription("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,4,DoubleToStr(Fibo5*100,1));
        ObjectSetFiboDescription("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,5,DoubleToStr(Fibo6*100,1));
        ObjectSetFiboDescription("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,6,DoubleToStr(Fibo7*100,1));
        ObjectSetFiboDescription("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,7,DoubleToStr(Fibo8*100,1));
        ObjectSetFiboDescription("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,8,DoubleToStr(Fibo9*100,1));
        ObjectSetFiboDescription("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,9,DoubleToStr(Fibo10*100,1));
        ObjectSetFiboDescription("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,10,DoubleToStr(Fibo11*100,1));
        ObjectSet("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+11,-Fibo2);
        ObjectSet("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+12,-Fibo3);
        ObjectSet("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+13,-Fibo4);
        ObjectSet("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+14,-Fibo5);
        ObjectSet("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+15,-Fibo6);
        ObjectSet("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+16,-Fibo7);
        ObjectSet("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+17,-Fibo8);
        ObjectSet("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+18,-Fibo9);
        ObjectSet("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+19,-Fibo10);
        ObjectSet("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,OBJPROP_FIRSTLEVEL+20,-Fibo11);
        ObjectSetFiboDescription("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,11,"-"+DoubleToStr(Fibo2*100,1));
        ObjectSetFiboDescription("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,12,"-"+DoubleToStr(Fibo3*100,1));
        ObjectSetFiboDescription("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,13,"-"+DoubleToStr(Fibo4*100,1));
        ObjectSetFiboDescription("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,14,"-"+DoubleToStr(Fibo5*100,1));
        ObjectSetFiboDescription("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,15,"-"+DoubleToStr(Fibo6*100,1));
        ObjectSetFiboDescription("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,16,"-"+DoubleToStr(Fibo7*100,1));
        ObjectSetFiboDescription("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,17,"-"+DoubleToStr(Fibo8*100,1));
        ObjectSetFiboDescription("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,18,"-"+DoubleToStr(Fibo9*100,1));
        ObjectSetFiboDescription("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,19,"-"+DoubleToStr(Fibo10*100,1));
        ObjectSetFiboDescription("RightChannel"+"_"+ExtDepth+"_"+ExtComplect+"_"+save,20,"-"+DoubleToStr(Fibo11*100,1));
       }
}



Sample





Analysis



Market Information Used:

Series array that contains the highest prices of each bar
Series array that contains the lowest prices of each bar
Series array that contains open time of each bar


Indicator Curves created:


Implements a curve of type DRAW_SECTION

Indicators Used:



Custom Indicators Used:

Order Management characteristics:

Other Features:

It issuies visual alerts to the screen