Помогите с индикатором, голова уже пухнет)))

 
Помогите ограничить в индюке количество баров, чтоб не считал и не рисовал 65к баров. Сначала был доволен такой подробной его работой, а теперь он слишком тормозит при запуске пока не просчитает и не прорисует 65000 баров))). Пробовал в лоб решить проблему а он злодей перестает рисовать нулевые бары. Главное чтобы рисовал из истории к новым барам.
...
...
extern ushort  Bar_Limit=        500;  // Кол-во баров истории на которых строится индикатор
...
...
for (i = Bars-IndicatorCounted()-1; i >=0; i--)
   {
...
...
...
   }
 
Lomov:
Помогите ограничить в индюке количество баров, чтоб не считал и не рисовал 65к баров. Сначала был доволен такой подробной его работой, а теперь он слишком тормозит при запуске пока не просчитает и не прорисует 65000 баров))). Пробовал в лоб решить проблему а он злодей перестает рисовать нулевые бары. Главное чтобы рисовал из истории к новым барам.


...
...
extern ushort  Bar_Limit=        500;  // Кол-во баров истории на которых строится индикатор
...
...
for (i = Bars-IndicatorCounted()-1; i >=0; i--)
   {
      if ( i > Bar_Limit )
      {
         // тут заполняете буферы пустым значением
      }
      else
      {
         // тут делаете расчеты
      }
   }

 
...
...
extern ushort  Bar_Limit=        500;  // Кол-во баров истории на которых строится индикатор
...
...
   int    limit = Bars - IndicatorCounted();
   if(Bar_Limit > 0 && limit > Bar_Limit)
   limit = Bar_Limit;
for (i = limit; i >= 0; i--)
   {
...
...
...
   }

При первом запуске просчитаются все бары, а на следующем тике только 500.

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