проблемы с переносом значений на младшие ТФ

 
Есть индикатор рассчитывающий значение для Недельного ТФ (в данном случае) и переносящий это значение на любые младшие ТФ:
int start()
{
datetime TimeArray[];
int i,shift,limit,y=0,counted_bars=IndicatorCounted();

ArrayCopySeries(TimeArray,MODE_TIME ,Symbol(),10080); 

limit=Bars-counted_bars;

for(i=0,y=0;i<limit;i++)
{
if (Time[i]<TimeArray[y]) y++; 
{
Result[i] = iCustom(NULL,10080,"XXXXXX",1,y);
}

}
return(0);
}
Но при попытке подставить в iCustom индикатор "YYYYYY", MT выдает ошибку: 2010.03.16 10:34:52 ^ABR EURUSD,H4: invalid double number as parameter 1 for MathRound function

А вот сам "^ABR" (индикатор рассчитывающий средний диапазон баров на чарте, который в свою очередь используется индикатором "YYYYYY" - от чего, как я понимаю, и происходит ошибка):

int start()
  {
  int    counted_bars=IndicatorCounted();
  if(counted_bars<0) return(-1);
  if(counted_bars>0) counted_bars--;
  int limit=Bars-counted_bars;
  
  int bars = Bars-1;              //расчётное количество баров

  int i, b=0, sP=0;
  double s=0;
  for (i=bars; i>0; i--)
   
    {
      s+=(High[i]-Low[i]);
      sP+=(High[i]-Low[i])/Point; 
      b++;
   
      AverRange_t [i]= s/b;         // ABR выводится для дальнейших расчетов
      
      AverRange [i]=sP/b;           // ABR в пунктах выводится для отображения на чарте
      MathRound(AverRange);
     
    }
   
//----
  return(0);
  }
Подскажите, можно ли каким то хитрым образом обойти этот конфликт с "^ABR"?
 
Azerus >>:
 
AverRange [i]=sP/b; // ABR в пунктах выводится для отображения на чарте
MathRound(AverRange);


Приехали....

Как это вы умудряетесь передавать в функцию весь массив????????????????

 
sergeev >>:

Приехали....

Как это вы умудряетесь передавать в функцию весь массив????????????????



Я, к сожалению, не большой мастер по MQL, поэтому Ваш вопрос для меня загадочен..... (это без иронии). Как сделать индикатор по вычислению Среднего бара мне подсказали на этом форуме, но, наверное, я что то упустил. То, что вся проблема в этом индикаторе - это очевидно. Не поможете его исправить????????
 
MathRound(AverRange[i]);
 
sergeev >>:
MathRound(AverRange[i]);


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