Кто-нибудь помогите, пожалуйста, исправить ошибку в индикаторе

 

Индикатор красит бар:

- в зеленый если AC и AO зеленые

- в красный если AC и AO красные

- в серый если разные

Все по Биллу Вильямсу )))

Ошибка при закачки новых баров

Картинки и прог.код.

>>



>> анти норма



>> прог.код

#property indicator_chart_window
#property indicator_buffers 6
#property indicator_color1 Red
#property indicator_color2 Red
#property indicator_color3 Lime
#property indicator_color4 Lime
#property indicator_color5 DarkGray
#property indicator_color6 DarkGray
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
double ExtMapBuffer5[];
double ExtMapBuffer6[];
int ExtCountedBars=0;
 
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexStyle(1,DRAW_HISTOGRAM);
   SetIndexBuffer(1,ExtMapBuffer2);
   SetIndexStyle(2,DRAW_HISTOGRAM);
   SetIndexBuffer(2,ExtMapBuffer3);
   SetIndexStyle(3,DRAW_HISTOGRAM);
   SetIndexBuffer(3,ExtMapBuffer4);
   SetIndexStyle(4,DRAW_HISTOGRAM);
   SetIndexBuffer(4,ExtMapBuffer5);
   SetIndexStyle(5,DRAW_HISTOGRAM);
   SetIndexBuffer(5,ExtMapBuffer6);
//----
   return(0);
  }
 
int start()
  {
   ExtCountedBars=IndicatorCounted();
//----
   int pos=Bars-ExtCountedBars-1;
   while(pos>=0)  
      {
      if(iAO(NULL, 0, pos) < iAO(NULL, 0, (pos+1)) &&
         iAC(NULL, 0, pos) < iAC(NULL, 0, (pos+1)))
         {
         ExtMapBuffer1[pos]=High[pos];
         ExtMapBuffer2[pos]=Low[pos];
         }
      if(iAO(NULL, 0, pos) > iAO(NULL, 0, (pos+1)) &&
         iAC(NULL, 0, pos) > iAC(NULL, 0, (pos+1)))
         {
         ExtMapBuffer3[pos]=High[pos];
         ExtMapBuffer4[pos]=Low[pos];
         }
      if((iAO(NULL, 0, pos) >= iAO(NULL, 0, (pos+1)) && iAC(NULL, 0, pos) <= iAC(NULL, 0, (pos+1)) ) ||
         (iAO(NULL, 0, pos) <= iAO(NULL, 0, (pos+1)) && iAC(NULL, 0, pos) >= iAC(NULL, 0, (pos+1)) ) )
         {
         ExtMapBuffer5[pos]=High[pos];
         ExtMapBuffer6[pos]=Low[pos];
         }
      pos--;
      } 
//----
   return(0);
  }