Пропуски в данных и индикаторы. Важно!!

[Удален]  
Столкнулся с такой проблемой - в данных массивов High[], Open[] и иже с ними случаются пропуски - различного размера, по различным причинам.. У себя я их проверял вот таким скриптиком, можете пронать на своих данных:

int fh;
int start()
{
  int g, gf;
  gf = 0;
  for(int i=0; i<=Bars; i++){
    g = Time[i]-Time[i+1];
    if ((g/60)>Period()){ 
      FileWrite(fh,i,g);
      gf+=1;
      Comment("Found:"+gf);
    }
  }
  Comment("Done, Found:"+gf);
  return(0);
}
 
int init(){
   fh = FileOpen("tst_gate.csv", FILE_CSV|FILE_WRITE,';');
   FileWrite(fh,"i;time");
}
 
int deinit(){
   FileClose(fh);
}
Пропусков получил достаточное количество (хотя с качеством связи у меня все ok). Так вот, проблема в следующем. Смотрю на код расчета например MA (см. пользовательский индикатор moving averages)

void sma()
  {
   double sum=0;
   int    i,pos=Bars-ExtCountedBars-1;
//---- initial accumulation
   if(pos<MA_Period) pos=MA_Period;
   for(i=1;i<MA_Period;i++,pos--)
      sum+=Close[pos];
//---- main calculation loop
   while(pos>=0)
     {
      sum+=Close[pos];
      ExtMapBuffer[pos]=sum/MA_Period;
       sum-=Close[pos+MA_Period-1];
        pos--;
     }
//---- zero initial bars
   if(ExtCountedBars<1)
      for(i=1;i<MA_Period;i++) ExtMapBuffer[Bars-i]=0;
}


Вся процедура выполняется не НА ОПРЕДЕЛЕННОЕ ВРЕМЯ НАЗАД, а на ОПРЕДЕЛЕННОЕ ЧИСЛО ЭЛЕМЕНТОВ МАССИВА - Close[] в данном случае. Т.е. с учетом пропусков в данных в значении индикатора можно получить расчет индикатора то например по значениям на час назад, то на два.. А при плохом качестве данных - вообще тогда не понятно, чего будет показываеть индикатор. Короче - вот проблема, а чего с ней делать - высказывайтесь. Если кто считает, что это не проблема - обоснуйте, pls. 
[Удален]  
в первом скрипте я не заметил проверку выходных дней...
[Удален]  
ustim:
в первом скрипте я не заметил проверку выходных дней...

Ее нет. В результатах работы скрипта и так явно видно, какие пропуски обусловлены выходными.