Не отрисовывается индикатор

 

Добрый день, решил сам попробовать сделать индикатор типа ZigZag (прогать начал недавно). Вроде ошибок нет, но на графике он не отрисовывается.

#property link      ""

#property version   "1.00"

#property strict

#property indicator_chart_window

//--------------------------------

#property indicator_buffers 1       // Количество буферов

#property indicator_color1 Blue     // Цвет линии 0 буфера

double Buf_0[];

double Max_B=0,

       Min_B=10000; 

int init()

{

SetIndexBuffer(0,Buf_0);                  //Назначение массива буфера

SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1); //стиль линии

   return(0);}

//------------------------------

int start()

{  

   int i;

   int n,

       step=10;

   int Counted_bars;

   double Max_A,

          Min_A;   

   Counted_bars=IndicatorCounted();

   i=Bars-Counted_bars-1;

   //--------------------------------------------------------------------------------------------------------------+

while(i>=0)                               //цикл, который считает просчитывает значение на i-ом баре               

   {   Max_A=High[i];                         //присвоили максимальное значение i-ого бара переменной Max_A            

   Min_A=Low[i];                          //присвоили минимальное значение i-ого бара переменной Min_A

   if(Max_A>Max_B)

   Max_B=Max_A;

   if(Min_A<Min_B)

   Min_B=Min_A;                                    

   //------------------------------------------------------------------------------------------------------------- 

    if(i>=step)

    {      for(n=0;n<step;n++)                    //цикл, который будет сравнивать значения баров на определённом интервале        

       {if(High[i+n]>Max_A)

       { Max_A=High[i+n];

       }else

       { if(High[i+n]<Min_A)

       Min_A=High[i+n]; }

       }

      }

        if(i<step)

       {

          for(n=step;n>0;n--)                    //цикл, который будет сравнивать значения баров на определённом интервале        

          {

          if(High[i-n]>Max_A)

          {

          Max_A=High[i-n];

          }else

         {

          if(High[i-n]<Min_A)

          Min_A=High[i-n];

          }

          }

       }

      if(Max_A>Max_B)

      { 

    Buf_0[i]=Max_A;

    }else

    {

    if(Min_A<Min_B)

    Buf_0[i]=Min_A;

    }

   i--;

   }


return(0);

}


 
sebegolov:

Добрый день, решил сам попробовать сделать индикатор типа ZigZag (прогать начал недавно). Вроде ошибок нет, но на графике он не отрисовывается.

   Counted_bars=IndicatorCounted();

   i=Bars-Counted_bars-1;

       if(High[i+n]>Max_A)

return(0);

}

При запуске Counted_bars = 0.  Тогда i+n больше количества баров Bars и индикатор прекращает работу с сообщением на вкладке Эксперты: Array out of range

Причина обращения: