Build 188

 
1.
Тестер стал работать значильно быстрее. Дохлая стратегия вдруг стала показывать нереальную прибыль, в режиме все тики и на 1М. На длинных свечах (быстрых движениях)
после достижения ТП вновь открытие по цене предыдущей и вновь ТП , такой пулемет молотит до 30-40 раз пока не съедет сам "Слип" проблемы не решает...

2. Перестали корректно работать все индикаторы ипользующие функцию iCustom(...),
Мувинги превращаются в вертикальные цветные полосы...

3. Замечательное сообщение "Извените за ошибку" появлялось 6 раз за день, при этом сносило установленные ордера. Все ошибки были по памяти отсыл на не существующий адрес..
 
Приведите, пожалуйста, полный код эксперта, на котором происходит падение?
 
Не понял связи, имеется ввиду упал терминал и снес ждущий ордер, так он был выставлен вручную а не экспертом, эксперты весь день не работали, только тестил...
Болеее важен для меня вопрос индикаторов, они все крякнулись, а я им только недавно присвоил имя Бэст...
Привожу тексты индикатора-
//+------------------------------------------------------------------+
//|                                            Best_Mov_Weer_Uni.mq4 |
//|             Copyright © 2005, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property indicator_chart_window
//#property indicator_separate_window
#property indicator_buffers 5
#property indicator_color1 White
#property indicator_color2 Red
#property indicator_color3 Lime
#property indicator_color4 Chocolate
#property indicator_color5 Blue
//#property indicator_color6 Gainsboro
//#property indicator_color7 Gainsboro
//#property indicator_color8 Gainsboro
//----------------------
extern int PeriodM1=8;
extern int PeriodM2=22;
extern int PeriodM3=55;
extern int PeriodM4=89;
extern int PeriodM5=233;
//--------------------
double ka[],ka2[],ka3[],ka4[],ka5[],buf1[];
//********************************************************
int init(){
IndicatorBuffers(6);
SetIndexBuffer(0,ka);
SetIndexStyle(0,DRAW_LINE,2,1);
SetIndexLabel(0,"EMA 1");
SetIndexBuffer(1,ka2);
SetIndexStyle(1,DRAW_LINE,2,1);
SetIndexLabel(1,"EMA 2");
SetIndexBuffer(2,ka3);
SetIndexStyle(2,DRAW_LINE,2,1);
SetIndexLabel(2,"EMA 3");
SetIndexBuffer(3,ka4);
SetIndexStyle(3,DRAW_LINE,2,1);
SetIndexLabel(3,"EMA 4");
SetIndexBuffer(4,ka5);
SetIndexStyle(4,DRAW_LINE,2,1);
SetIndexLabel(4,"EMA 5");
SetIndexBuffer(5,buf1);
SetIndexStyle(5,DRAW_NONE);
//SetIndexEmptyValue(5,0.0);
//SetIndexBuffer(5,ka6);
//SetIndexBuffer(6,ka7);
//SetIndexBuffer(7,buf1);
//SetIndexStyle(7,DRAW_NONE);
//SetIndexLabel(7,"0");
return(0);}
//********************************************************
int start() {
int i,cb;
int f;
//f=Hours*60/Period(); 
cb=Bars-IndicatorCounted()-1;
//------------------------------------------------------------------------------------------------------------------------------
for(i=cb; i>=0; i--) 
{ buf1[i]=iCustom(NULL,0,"FClose",0,i);
}
for(i=cb; i>=0; i--) { 
ka[i]=iMAOnArray(buf1,0,3,0,MODE_EMA,i);
ka2[i]=iMAOnArray(buf1,0,13,0,MODE_EMA,i);
ka3[i]=iMAOnArray(buf1,0,55,0,MODE_EMA,i);
ka4[i]=iMAOnArray(buf1,0,89,0,MODE_EMA,i);
ka5[i]=iMAOnArray(buf1,0,233,0,MODE_EMA,i);
//ka6[i]=iMAOnArray(buf1,0,22,0,MODE_EMA,i);
//ka7[i]=iMAOnArray(buf1,0,22,0,MODE_EMA,i);
}
return(0);}
//end;


/+------------------------------------------------------------------+
//|                                                       FClose.mq4 |
//|                      Copyright © 2005, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Blue
extern int CountBars=70;
//---- buffers
double UPBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string short_name;
//---- indicator line
   IndicatorBuffers(1);
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,UPBuffer);
//   SetIndexStyle(1,DRAW_ARROW);
//   SetIndexArrow(1,242);
//   SetIndexBuffer(1,DownBuffer);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| FATLs                                                            |
//+------------------------------------------------------------------+
int start()
  {
   SetIndexDrawBegin(0,Bars-CountBars+38);
  // SetIndexDrawBegin(1,Bars-CountBars+38);
   int i,counted_bars=IndicatorCounted();
   double val1, val2, i1;
   bool trend,old;
//----
   if(Bars<=38) return(0);
//---- initial zero
   if(counted_bars<38)
   {
   for(i=1;i<=0;i++) UPBuffer[CountBars-i]=0.0;
     }
//----
   i=CountBars-38-1;
//   if(counted_bars>=38) i=Bars-counted_bars-1;
   while(i>=0)
     {
      UPBuffer[i]=
0.4360409450*Close[i+0]
+0.3658689069*Close[i+1]
+0.2460452079*Close[i+2]
+0.1104506886*Close[i+3]
-0.0054034585*Close[i+4]
-0.0760367731*Close[i+5]
-0.0933058722*Close[i+6]
-0.0670110374*Close[i+7]
-0.0190795053*Close[i+8]
+0.0259609206*Close[i+9]
+0.0502044896*Close[i+10]
+0.0477818607*Close[i+11]
+0.0249252327*Close[i+12]
-0.0047706151*Close[i+13]
-0.0272432537*Close[i+14]
-0.0338917071*Close[i+15]
-0.0244141482*Close[i+16]
-0.0055774838*Close[i+17]
+0.0128149838*Close[i+18]
+0.0226522218*Close[i+19]
+0.0208778257*Close[i+20]
+0.0100299086*Close[i+21]
-0.0036771622*Close[i+22]
-0.0136744850*Close[i+23]
-0.0160483392*Close[i+24]
-0.0108597376*Close[i+25]
-0.0016060704*Close[i+26]
+0.0069480557*Close[i+27]
+0.0110573605*Close[i+28]
+0.0095711419*Close[i+29]
+0.0040444064*Close[i+30]
-0.0023824623*Close[i+31]
-0.0067093714*Close[i+32]
-0.0072003400*Close[i+33]
-0.0047717710*Close[i+34]
+0.0005541115*Close[i+35]
+0.0007860160*Close[i+36]
+0.0130129076*Close[i+37]
+0.0040364019*Close[i+38];


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




??????

 
Нам необходимо понять причину Ваших крешей. Для этого нам необходимо воспроизвести Вашу ситуацию. Поэтому мы и спрашиваем про эксперты. Если Вы запустите только вышеприведённе индикаторы, то у Вас случится креш?
 
Нет данный индикатор не приводит к крэшу, терминал его криво рисует, т.е. вообще не понятно, что рисует. Крэш происходил по- моему случайно, один раз после сообщения винд. о не хватке памяти, сразу терминал слетел, один раз при тестировании эксперта, какого не помню, тот который строчит профитом не приводит к крэшу.
Один раз снесло отложенный, в другие не трогало. Всего шесть раз. На работе стоит Винд2000, дома ХР.стояли советники по всем валютам, крэшей не было, В188 и там и там...
 
Есть подозрение, что именно функция iCustom может приводить к делению на 0 если используется в эксперте, в Делфи такая ошибка при обращении к несуществующему индексу.
Пока ничего не делаю стоят два одера и все, крэшей не было, может найти эксперт со встроенной функциеей и погонять его в разных режимах?
 
Сейчас запустил Ваш best индикатор на 186 билде от 10 ноября. Получил описываемые Вами вертикальные линии с бешеными значениями. Буду разбираться.
 
Вскрытие показало, что в расчётах скользящих вовсю используются так называемые "пустые значения", которые по умолчанию ненулевые.
В функцию init индикатора FClose я вставил строчку
   SetIndexEmptyValue(0,0.0);


Ваш best индикатор я тоже слегка поправил. Выкладываю полную версию

//+------------------------------------------------------------------+
//|                                            Best_Mov_Weer_Uni.mq4 |
//|                      Copyright © 2005, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property indicator_chart_window
//#property indicator_separate_window
#property indicator_buffers 5
#property indicator_color1 White
#property indicator_color2 Red
#property indicator_color3 Lime
#property indicator_color4 Chocolate
#property indicator_color5 Blue
//#property indicator_color6 Gainsboro
//#property indicator_color7 Gainsboro
//#property indicator_color8 Gainsboro
//----------------------
extern int PeriodM1=8;
extern int PeriodM2=22;
extern int PeriodM3=55;
extern int PeriodM4=89;
extern int PeriodM5=233;
//--------------------
double ka[],ka2[],ka3[],ka4[],ka5[],buf1[];
//********************************************************
int init()
  {
   IndicatorBuffers(6);
   SetIndexBuffer(0,ka);
   SetIndexStyle(0,DRAW_LINE,2,1);
   SetIndexLabel(0,"EMA 1");
   SetIndexEmptyValue(0,0.0);
   SetIndexBuffer(1,ka2);
   SetIndexStyle(1,DRAW_LINE,2,1);
   SetIndexLabel(1,"EMA 2");
   SetIndexEmptyValue(1,0.0);
   SetIndexBuffer(2,ka3);
   SetIndexStyle(2,DRAW_LINE,2,1);
   SetIndexLabel(2,"EMA 3");
   SetIndexEmptyValue(2,0.0);
   SetIndexBuffer(3,ka4);
   SetIndexStyle(3,DRAW_LINE,2,1);
   SetIndexLabel(3,"EMA 4");
   SetIndexEmptyValue(3,0.0);
   SetIndexBuffer(4,ka5);
   SetIndexStyle(4,DRAW_LINE,2,1);
   SetIndexLabel(4,"EMA 5");
   SetIndexEmptyValue(4,0.0);
   SetIndexBuffer(5,buf1);
   SetIndexStyle(5,DRAW_NONE);
   SetIndexEmptyValue(5,0.0);
   //SetIndexBuffer(5,ka6);
   //SetIndexBuffer(6,ka7);
   //SetIndexBuffer(7,buf1);
   //SetIndexStyle(7,DRAW_NONE);
   //SetIndexLabel(7,"0");
   return(0);
  }
//********************************************************
int start()
  {
   int i,cb;
   int f;
   //f=Hours*60/Period(); 
   cb=Bars-IndicatorCounted()-1;
   //--------------------------------------------------------
   for(i=cb; i>=0; i--) 
     {
      buf1[i]=iCustom(NULL,0,"FClose",Bars,0,i);
     }
   for(i=cb; i>=0; i--)
     { 
      ka[i]=iMAOnArray(buf1,0,3,0,MODE_EMA,i);
      ka2[i]=iMAOnArray(buf1,0,13,0,MODE_EMA,i);
      ka3[i]=iMAOnArray(buf1,0,55,0,MODE_EMA,i);
      ka4[i]=iMAOnArray(buf1,0,89,0,MODE_EMA,i);
      ka5[i]=iMAOnArray(buf1,0,233,0,MODE_EMA,i);
      //ka6[i]=iMAOnArray(buf1,0,22,0,MODE_EMA,i);
      //ka7[i]=iMAOnArray(buf1,0,22,0,MODE_EMA,i);
     }
   return(0);
  }
//end;
//+------------------------------------------------------------------+


Добавил установку "пустых" значений и изменил вызов пользовательского индикатора FClose - умолчательное значение extern int CountBars=70; слишком маленькое для Ваших периодов усреднения.

 
Спасибо за потраченное время, все так, чем строже правила, тем больше доверия к инструменту. Начал полную ревизию накопленного "хабара".
Успехов!
Причина обращения: