Ошибки в расчете стандартных индикаторов.

 
Уважаемые разработчики!
У Вас в расчете индикатора RSI, возможно допущены неточности.

Вот я привожу код в котором RSI считается и по стандартной функции из комплекта МТ4 и по обычной методике со всеми циклами.
В результатах порядочное различие.

//*****************************************
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 DodgerBlue
#property indicator_color2 Red
#property indicator_level1 70
#property indicator_level2 30
#property indicator_width1 2
#property indicator_width2 2
//==================================
extern int hrRSI=36;
//------------------------
double RSI[],RSI2[];
double dcn,pos,neg,rsi2;
int p;
//*************************************
int init()
{
   SetIndexBuffer(0,RSI);
   SetIndexBuffer(1,RSI2);
   return(0);
}
//**************************************************************
int start()
{
   int cbi,IC=Bars-IndicatorCounted()-1;
   if (IC<2) cbi=IC; else 
   {
      p=hrRSI*60/Period();
      cbi=Bars-p-1;
   }
   //---------------------------------------------------
   for(int i=cbi; i>=0; i--) 
   {
      RSI[i]=iRSI(NULL,0,p,0,i);
      
      pos=0.0; neg=0.0; 
      for (int n=i; n<i+p; n++)
      {
         dcn=Close[n]-Close[n+1];
         if (dcn>0) pos+=dcn;
         if (dcn<0) neg-=dcn;
      }
      if (neg!=0) rsi2=100.0-100.0/(1+pos/neg);
      RSI2[i]=rsi2;
   }
   //---------------------------------------------------
   return(0);
}
//************************************************************




 
1. Почему Вы не возьмёте за основу пользовательский индикатор RSI.mq4 - он в точности повторяет встроенный RSI? В представленном Вами варианте я вижу накопление положительных и отрицательных сумм, но не вижу сглаживания.

2. Чему равно значение rsi2 в случае, когда neg==0?
 
Ну если используется сглаживание, то Бог с ним. Когда neg==0, RSI2[i]=0.0; - кажется...
Спасибо за ответы.
 
Учтите, что в книжках индикаторы описываются поверхностно и там пропущены многие тонкости.
Причина обращения: