деление

 
Так работает

buff[pos]=(iMA(Symbol(),0,ma_period,0,MODE_EMA,PRICE_CLOSE,pos)-iMA(Symbol(),0,ma_period,0,MODE_EMA,PRICE_CLOSE,pos+MomPeriod))/MomPeriod

#property indicator_separate_window  // Индикатор расположен в отдельном окне
#property indicator_buffers 1     // Для построения используется 1 буфер 
#property indicator_color1 DodgerBlue  // Цвет белый
#property indicator_level1 0

double buff[]; // Объявляю буфер для индикатора EMA 

extern int ma_period=13; // Период EMA
extern int MomPeriod=21; // Период ROC
                       
extern int pos;                                
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string short_name;
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,buff);  
   short_name="S-ROC ("+ma_period+"/"+MomPeriod+")";
   IndicatorShortName(short_name);
   SetIndexLabel(0,short_name);
   SetIndexDrawBegin(0,0);

   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {

//------------ Вычисляем ROC от EMA      
  pos = Bars;
   while(pos>=0)     
     {
      buff[pos]=(iMA(Symbol(),0,ma_period,0,MODE_EMA,PRICE_CLOSE,pos)-iMA(Symbol(),0,ma_period,0,MODE_EMA,PRICE_CLOSE,pos+MomPeriod))/MomPeriod;
      pos--;
     }      
   return(0);
  }
//+------------------------------------------------------------------+





А так не работает

buff[pos]=iMA(Symbol(),0,ma_period,0,MODE_EMA,PRICE_CLOSE,pos)*100/iMA(Symbol(),0,ma_period,0,MODE_EMA,PRICE_CLOSE,pos+MomPeriod);

//+------------------------------------------------------------------+
//|                                                 #S-ROC 13-21.mq4 |
//|                                                   Alexey Baranov |
//|                                         06 августа 2005 г. 18:27 |
//+------------------------------------------------------------------+
#property indicator_separate_window  // Индикатор расположен в отдельном окне
#property indicator_buffers 1     // Для построения используется 1 буфер 
#property indicator_color1 DodgerBlue  // Цвет белый
#property indicator_level1 0

double buff[]; // Объявляю буфер для индикатора EMA 

extern int ma_period=13; // Период EMA
extern int MomPeriod=21; // Период ROC
                       
extern int pos;                                
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string short_name;
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,buff);  
   short_name="S-ROC ("+ma_period+"/"+MomPeriod+")";
   IndicatorShortName(short_name);
   SetIndexLabel(0,short_name);
   SetIndexDrawBegin(0,0);

   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {

//------------ Вычисляем ROC от EMA      
  pos = Bars;
   while(pos>=0)     
     {
      buff[pos]=iMA(Symbol(),0,ma_period,0,MODE_EMA,PRICE_CLOSE,pos)*100/iMA(Symbol(),0,ma_period,0,MODE_EMA,PRICE_CLOSE,pos+MomPeriod);
      pos--;
     }      
   return(0);
  }
//+------------------------------------------------------------------+




Почему?

 
обращение к несуществующим барам , так будет правильно
//+------------------------------------------------------------------+
//|                                                 #S-ROC 13-21.mq4 |
//|                                                   Alexey Baranov |
//|                                         06 августа 2005 г. 18:27 |
//+------------------------------------------------------------------+
#property indicator_separate_window  // Индикатор расположен в отдельном окне
#property indicator_buffers 1     // Для построения используется 1 буфер 
#property indicator_color1 DodgerBlue  // Цвет белый
#property indicator_level1 0

double buff[]; // Объявляю буфер для индикатора EMA 

extern int ma_period=13; // Период EMA
extern int MomPeriod=21; // Период ROC

int pos;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string short_name;
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,buff);  
   short_name="S-ROC ("+ma_period+"/"+MomPeriod+")";
   IndicatorShortName(short_name);
   SetIndexLabel(0,short_name);
   SetIndexDrawBegin(0,0);

   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int limit;
   int counted_bars=IndicatorCounted();
//------------ Вычисляем ROC от EMA      
   if(Bars<=MomPeriod)
   {
      Alert("Недостаточно данных!");
      return(0);
   }
   else
   {
      if(counted_bars<1)
      {
         limit=Bars-1-MomPeriod;
      }
      else
      {
         if(counted_bars!=Bars)
         {
            limit=Bars-1-counted_bars;
         }
         else
         {
            limit=0;
         }
      }
   }
   pos=limit;
   while(pos>=0)     
     {
      buff[pos]=iMA(Symbol(),0,ma_period,0,MODE_EMA,PRICE_CLOSE,pos)*100/
                iMA(Symbol(),0,ma_period,0,MODE_EMA,PRICE_CLOSE,pos+MomPeriod);
      pos--;
     }      
   return(0);
  }
//+------------------------------------------------------------------+


бара с индексом Bars не существует , а ты еще дальше лезешь Bars+MomPeriod

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