Проблеммы в билд 201 от 12 января

 
Скачал последнюю версию. Установил.
После установки на график индикаторов содержащих iMAonArray, стоит только график сдвинуть с места происходит типа зависания. А в предыдущей версии 201 этого не было. Пришлось откатить систему к состоянию до инсталяции. В последнем билде что-то не доделано.
 
Скачал последнюю версию. Установил.
После установки на график индикаторов содержащих iMAonArray, стоит только график сдвинуть с места происходит типа зависания. А в предыдуще1 версии 201 этого не было. Пришлось откатить систему к предыдущей версии. В этой что-то не доделано.

Опубликуйте полный код своего индикатора и укажите количество баров на графике, пожалуйста.
 
Вот код пожалуйста. Количество баров в окне 20000, количество баров в истории 1 млн. График GBPUSD30.

//--------------------------------------------------------------------
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Yellow
#property indicator_color2 Red 
#property indicator_width1 2
//--------------------------------------------------------------------
extern double hrcma=5;
extern double hrma=44;
extern int type=1;
extern bool SPR=false;
//------------------------------
double ma[],cma[],C[],dc[]; 
double spr2;
int pma,pcma;
//--------------------------------------------------------------------
int init()
{
   IndicatorBuffers(4);
   //--------------------
   SetIndexBuffer(0,cma);
   SetIndexBuffer(1,ma);
   //--------------------
   SetIndexBuffer(2,C);
   SetIndexBuffer(3,dc);
   //--------------------
   return(0);
}
//--------------------------------------------------------------------
int start() 
{
   int cbi,cbi2,cbi3,IC=IndicatorCounted();
   if (Bars-IC<3) {cbi=Bars-IC-1; cbi2=cbi; cbi3=cbi;} else 
   {
      pma=hrma*60/Period(); pcma=hrcma*60/Period(); 
      if (SPR) spr2=MarketInfo(Symbol(),MODE_SPREAD)*Point/2;
      cbi=Bars-1; cbi2=cbi-pma; cbi3=cbi2-pcma;
   }
   //===================================================
   for (int i=cbi; i>=0; i--) C[i]=Close[i]+spr2;
   for (i=cbi2; i>=0; i--) {ma[i]=iMAOnArray(C,0,pma,0,type,i); dc[i]=C[i]-ma[i];}
   for (i=cbi3; i>=0; i--) {cma[i]=iMAOnArray(dc,0,pcma,0,type,i)+ma[i];}
   //============================================================     
   return(0);
}
//*********************************************************************************



 

Опубликуйте полный код своего индикатора и укажите количество баров на графике, пожалуйста.


Вообще-то я попробовал этот индикатор переставить и на текущий и на предыдущие билды, таже самая картина. Но только на MODE_EMA, то есть type=1, в моем коде. Так что возможно дело не в билде, а в коде стандартной функции iMaonArray, MODE_EMA.
 
Обнаружил ошибку в коде индикатора приведенного выше, там не проинициализирован ноль в начале расчетов for (int j=Bars-1; j>=cbi2; j--) dc[j]=0.0;
и
cma[i]=iMAOnArray(dc,0,pcma,0,type,i)+ma[i]; из-за этого виснет.

Вообще все эти тонкости, расчитанные на программистов, забирают столько времени. На мой взгляд функции iMaonArray выполнены очень неудобно для пользователей. Большинство не имеет понятия как инициализируютя массивы и распределяется память в программе. По логике торговая биржевая программа должна быть выполнена "на дурака".
 
По логике торговая биржевая программа должна быть выполнена "на дурака".

Сомнительное предположение, так как их большая часть MetaEditor вообще никогда не открывает...
Хотя без них на Форексе заработка просто ни у кого не будет вообще ;o).
 
Вот я сегодня на эту техническую фигню потратил часов 5. И еще вчера несколько часов на то, чтобы раскопать почему пропали закачанные данные при переключении макс. баров в окне, а хотел вчера и сегодня делать эксперта, а в результате устал и ни к чему так и не приступил. Все-таки в Омеге с этим было полегче. Но там свои заморочки.
Ладно все равно мои млн. у меня никто не заберет, могут только вот так отодвигать время их получения. Шучу. Но желательно, чтобы так и было.
Причина обращения: