int init()

 
В процессе отладки индикатора
//+------------------------------------------------------------------+
//|                                                         fAMA.mq4 |
//|                                        Copyright © 2005, Profi_R |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, Profi_R"
#property link      "rvm_fam@fromru.com"

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Black
//---- input parameters
extern int Range=8;
extern int FastMA=2;
extern int SlowMA=20;
extern int filter=60;
extern int n=6;
extern int h=20;
//---- buffers
double fAMA[];
double mAMA[];
int d_b;//объявление переменной short_name целочисленного типа
double  k1,k2;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   int cb;
   string short_name; //объявление переменной short_name типа "строковый"
//---- indicators
   IndicatorBuffers(2);
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,fAMA);
   SetIndexBuffer(1,mAMA);
//---- name for DataWindow and indicator subwindow label
   //переменной short_name присваиваем строковое значение равное выражению
   short_name="fAMA("+Range+","+FastMA+","+SlowMA+","+filter+","+n+","+h+")";
   //для отображения на графике присвоим индикатору краткое наименование
   IndicatorShortName(short_name);
   SetIndexLabel(0,short_name);//Установим метку для буфера
//----
   if(filter>0) d_b=SlowMA; else d_b=Range;
   SetIndexDrawBegin(0,d_b); //установка начальной точки прорисовки для 0 буфера
//----
   if(Bars<=d_b)
   {
      Alert("Недостаточно данных!!! ",Bars,";",d_b,";",Range);
      return(0);
   }
   k1=2.0/(SlowMA+1);
   k2=2.0/(FastMA+1)-k1;
/*   for(cb=Bars-1;cb>=Bars-d_b;cb++)
   {
      if(cb>=Bars-Range)
      {
         mAMA[Bars-Range]=Close[Bars-Range];
      }
      else
      {
         CycleAMA(cb);
      }
   }*/
   //Print(Bars,";",d_b,";",k1,";",k2,";",Range);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
{
//----
   return(0);
  }


выяснилось следующее: бросаем индикатор на график вроде все ok, нажимаем в МЕ F5, срабатывает алерт
. Почему это Bars стало вдруг равно 0. С чем связана такая реакция? Условия для срабатывания алерта отсутствуют баров на графике предостаточно. Попутно - как видно на картинке, окно "Алерта".

некорректно сохраняется "Активная рабочая область". Ссори нужно было обрезать.

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