Расчет среднего диапазона бара

 

Помогите, пожалуйста, поправить индикатор, вычисляющий в пунктах средний диапазон баров по всей истории (сам код был любезно выложен на этом форуме Yuri):

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red

//---- buffers

double AverRange=0.0;

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE,1);
SetIndexBuffer(0,AverRange);

//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
//---- last counted bar will be recounted
if(counted_bars>0) counted_bars--;
int limit=Bars-counted_bars;

  int bars = Bars;           //расчётное количество баров

   int i, b=0, s=0;
   for (i=bars; i>0; i--)

{
s+=(High[i]-Low[i])/Point;
b++;
}

AverRange = s/b;



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

Заранее благодарен!

 
Вместо double AverRange=0.0; => вставить double AverRange[];
 
nikost >>:
Вместо double AverRange=0.0; => вставить double AverRange[];


Спасибо, помогло!

Кроме того, вместо

          AverRange = s/b;

вставил

          AverRange [i]= s/b;

но теперь индикатор показывает только значение для последнего бара; для остальных баров - 0

Можно ли это как то исправить? 

 
Azerus писал(а) >>

Спасибо, помогло!

Кроме того, вместо

AverRange = s/b;

вставил

AverRange [i]= s/b;

но теперь индикатор показывает только значение для последнего бара; для остальных баров - 0

Можно ли это как то исправить?

AverRange[i]=s/b; аставте в цикл т.е. передвиньте скобку }

 
nikost >>:



Огромное спасибо! Все прекрасно получилось!
Причина обращения: