При появлении нового бара на графике - нет пересчета индикатора. Почему?

 
Не пойму в чем дело. С такой проблемой еще ниразу не сталкивался:
появляется новый бар, а индикатор не пересчитывает новое значение для нового бара, т.е. показывает тот же результат, что и до появления.

----------------------------------------------------------------+
//|                                                         _Best_4.mq4 |
//|                                     VIT-FX (Худяков Виталий) |
//|                                       http://www.dom-volga.ru |
//+------------------------------------------------------------------+
#property  copyright "Copyright © 2003-2006, VIT-FX"
#property  link      "http://www.dom-volga.ru"
//---- indicator settings
#property  indicator_separate_window
#property  indicator_buffers 2
#property  indicator_color1  Black
#property  indicator_color2  Gray
//---- indicator buffers
double     HB[];
double     LB[];
double     OB[];
double     CB[];
double     CC[];
double     pre[];
double     total[];

extern     int v=5;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   IndicatorBuffers(7);

   SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2,Black);
   SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,2,Gray);

   //IndicatorDigits(Digits+2);
   SetIndexDrawBegin(0,11);
   SetIndexDrawBegin(1,11);
   //SetIndexDrawBegin(2,38);
   //SetIndexDrawBegin(3,38);
   //SetIndexDrawBegin(4,38);
   //SetIndexDrawBegin(5,38);
   //SetIndexDrawBegin(6,38);

   SetIndexBuffer(0,pre);
   SetIndexBuffer(1,total);
   SetIndexBuffer(2,OB);
   SetIndexBuffer(3,CB);
   SetIndexBuffer(4,CC);
   SetIndexBuffer(5,HB);
   SetIndexBuffer(6,LB);
  
   IndicatorShortName("_Best_4");
   SetIndexLabel(0,"Pre");
   SetIndexLabel(1,"Total");
   //SetIndexLabel(2,"Open");
   //SetIndexLabel(3,"Close");
   //SetIndexLabel(4,"Center");
   //SetIndexLabel(5,"High");
   //SetIndexLabel(6,"Low");


   return(0);
  }
//+------------------------------------------------------------------+
//| Accelerator/Decelerator Oscillator                               |
//+------------------------------------------------------------------+
int start()
  {
   int    limit;
   int    counted_bars=IndicatorCounted();
   double cb, cb_was;


   double     dHB;
   double     dLB;
   double     dOB;
   double     dCB;
   double     dCC;
   double     telo;

   
   double     c, ci;

   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;

   for(int i=0; i<limit-11; i++)
      {
      HB[i] = *;
      LB[i] = *;
      OB[i] = *;
      CB[i] = *;
      CC[i] = *;
      
      if (*) telo = *; else telo  = *;
      
      c     = *;
      ci    = *;
      
      dHB = *;
      dLB = *;
      dOB = *;
      dCB =*;
      dCC = *;
      
      
      cb = *;
      cb_was = *;
/////////////////////////////
      if (*)
              HB[i] =*;
          else
              HB[i] = *;
/////////////////////////////
      if (*)
              LB[i] = *;
          else
              LB[i] = *;
/////////////////////////////
      if (*)
              OB[i] = *;
          else
              OB[i] = *;
/////////////////////////////
      if (*)
              CB[i] = *;
          else
              CB[i] = *;
/////////////////////////////
      if (*)
              CC[i] = *;
          else
              CC[i] = *;
/////////////////////////////
        pre[i] = *;

      }
   
   for(i=0; i<limit-11; i++)
   {
      total[i] = iMAOnArray(pre,0,v,0,MODE_SMA,i);
   }

   

  
   //---- done
   return(0);
  }
//+------------------------------------------------------------------+




В чем может быть проблема?

 
Первое - все таки очень не люблю, когда значения буфера индикатора рассчитываюся от нулевого бара и вглубь . Попробуйте так рассчитать скользящую среднюю - ошибка обеспечена.
Второе: вставьте распринтовку значения limit и counted_bars на каждом тике - это сразу поможет выявить логическую ошибку.
 
Первое - все таки очень не люблю, когда значения буфера индикатора рассчитываюся от нулевого бара и вглубь .


Можете посоветовать лучший вариант?
 
Конечно:
for(int i=limit; i>=0; i--)
    {
    }
 
Rosh, сделал распринтовку, но что-то никак из этого не могу понять проблемы :((

2006.12.14 12:51:10 _best_4 GBPUSD,M1: Counred Bars: 2899
2006.12.14 12:51:10 _best_4 GBPUSD,M1: limit: 2
2006.12.14 12:51:08 _best_4 GBPUSD,M1: Counred Bars: 2899
2006.12.14 12:51:08 _best_4 GBPUSD,M1: limit: 2
2006.12.14 12:51:05 _best_4 GBPUSD,M1: Counred Bars: 2899
2006.12.14 12:51:05 _best_4 GBPUSD,M1: limit: 2
2006.12.14 12:51:00 _best_4 GBPUSD,M1: Counred Bars: 2899
2006.12.14 12:51:00 _best_4 GBPUSD,M1: limit: 2
2006.12.14 12:50:57 _best_4 GBPUSD,M1: Counred Bars: 2899
2006.12.14 12:50:57 _best_4 GBPUSD,M1: limit: 2
2006.12.14 12:50:56 _best_4 GBPUSD,M1: Counred Bars: 2899
2006.12.14 12:50:56 _best_4 GBPUSD,M1: limit: 2
2006.12.14 12:50:56 _best_4 GBPUSD,M1: Counred Bars: 2899
2006.12.14 12:50:56 _best_4 GBPUSD,M1: limit: 2
2006.12.14 12:50:46 _best_4 GBPUSD,M1: Counred Bars: 2899
2006.12.14 12:50:46 _best_4 GBPUSD,M1: limit: 2
2006.12.14 12:50:40 _best_4 GBPUSD,M1: Counred Bars: 2899
2006.12.14 12:50:40 _best_4 GBPUSD,M1: limit: 2
2006.12.14 12:50:35 _best_4 GBPUSD,M1: Counred Bars: 2899
2006.12.14 12:50:35 _best_4 GBPUSD,M1: limit: 2
2006.12.14 12:50:34 _best_4 GBPUSD,M1: Counred Bars: 2899
2006.12.14 12:50:34 _best_4 GBPUSD,M1: limit: 2
2006.12.14 12:50:25 _best_4 GBPUSD,M1: Counred Bars: 2899
2006.12.14 12:50:25 _best_4 GBPUSD,M1: limit: 2
2006.12.14 12:50:15 _best_4 GBPUSD,M1: Counred Bars: 2898
2006.12.14 12:50:15 _best_4 GBPUSD,M1: limit: 3
2006.12.14 12:49:43 _best_4 GBPUSD,M1: Counred Bars: 2898
2006.12.14 12:49:43 _best_4 GBPUSD,M1: limit: 2
2006.12.14 12:49:42 _best_4 GBPUSD,M1: Counred Bars: 2897
2006.12.14 12:49:42 _best_4 GBPUSD,M1: limit: 3
2006.12.14 12:49:10 _best_4 GBPUSD,M1: Counred Bars: 2897
2006.12.14 12:49:10 _best_4 GBPUSD,M1: limit: 2
2006.12.14 12:49:08 _best_4 GBPUSD,M1: Counred Bars: 2897
2006.12.14 12:49:08 _best_4 GBPUSD,M1: limit: 2
2006.12.14 12:48:32 _best_4 GBPUSD,M1: Counred Bars: 2897
2006.12.14 12:48:32 _best_4 GBPUSD,M1: limit: 2
2006.12.14 12:48:32 _best_4 GBPUSD,M1: Counred Bars: 2897
2006.12.14 12:48:32 _best_4 GBPUSD,M1: limit: 2
2006.12.14 12:48:29 _best_4 GBPUSD,M1: Counred Bars: 2897
2006.12.14 12:48:29 _best_4 GBPUSD,M1: limit: 2
2006.12.14 12:48:22 _best_4 GBPUSD,M1: Counred Bars: 2897
2006.12.14 12:48:22 _best_4 GBPUSD,M1: limit: 2
2006.12.14 12:48:20 _best_4 GBPUSD,M1: Counred Bars: 2896
2006.12.14 12:48:20 _best_4 GBPUSD,M1: limit: 3
2006.12.14 12:48:06 _best_4 GBPUSD,M1: Counred Bars: 2896
2006.12.14 12:48:06 _best_4 GBPUSD,M1: limit: 2
2006.12.14 12:48:01 _best_4 GBPUSD,M1: Counred Bars: 2896
2006.12.14 12:48:01 _best_4 GBPUSD,M1: limit: 2
2006.12.14 12:47:56 _best_4 GBPUSD,M1: Counred Bars: 2896
2006.12.14 12:47:56 _best_4 GBPUSD,M1: limit: 2
2006.12.14 12:47:55 _best_4 GBPUSD,M1: Counred Bars: 2896
2006.12.14 12:47:55 _best_4 GBPUSD,M1: limit: 2
2006.12.14 12:47:49 _best_4 GBPUSD,M1: Counred Bars: 2896
2006.12.14 12:47:49 _best_4 GBPUSD,M1: limit: 2
2006.12.14 12:47:48 _best_4 GBPUSD,M1: Counred Bars: 2895
2006.12.14 12:47:48 _best_4 GBPUSD,M1: limit: 3
2006.12.14 12:47:02 _best_4 GBPUSD,M1: Counred Bars: 2895
2006.12.14 12:47:02 _best_4 GBPUSD,M1: limit: 2
2006.12.14 12:46:36 _best_4 GBPUSD,M1: Counred Bars: 2895
2006.12.14 12:46:36 _best_4 GBPUSD,M1: limit: 2
2006.12.14 12:46:36 _best_4 GBPUSD,M1: Counred Bars: 2894
2006.12.14 12:46:36 _best_4 GBPUSD,M1: limit: 3
2006.12.14 12:46:36 _best_4 GBPUSD,M1: Counred Bars: 2894
2006.12.14 12:46:36 _best_4 GBPUSD,M1: limit: 2
2006.12.14 12:46:36 _best_4 GBPUSD,M1: Counred Bars: 2894
2006.12.14 12:46:36 _best_4 GBPUSD,M1: limit: 2
2006.12.14 12:46:35 _best_4 GBPUSD,M1: Counred Bars: 2893
2006.12.14 12:46:35 _best_4 GBPUSD,M1: limit: 3
 
Ну, Семен Семеныч :(

limit=2

как будет работать этот кусок?
for(i=0; i<limit-11; i++)
   {
   total[i] = iMAOnArray(pre,0,v,0,MODE_SMA,i); 
   }



То есть , распринтовку Вы вставили (как я просил), а подумать не стали (я ведь не просил, да?)

 
Rosh
Ну, Семен Семеныч :(



Да уж, тут не поспоришь :)
Спасибо!