Приведите, пожалуйста, полный код эксперта, на котором происходит падение?
Не понял связи, имеется ввиду упал терминал и снес ждущий ордер, так он был выставлен вручную а не экспертом, эксперты весь день не работали, только тестил...
Болеее важен для меня вопрос индикаторов, они все крякнулись, а я им только недавно присвоил имя Бэст...
Привожу тексты индикатора-
Болеее важен для меня вопрос индикаторов, они все крякнулись, а я им только недавно присвоил имя Бэст...
Привожу тексты индикатора-
//+------------------------------------------------------------------+
//| 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 и там и там...
Один раз снесло отложенный, в другие не трогало. Всего шесть раз. На работе стоит Винд2000, дома ХР.стояли советники по всем валютам, крэшей не было, В188 и там и там...
Есть подозрение, что именно функция iCustom может приводить к делению на 0 если используется в эксперте, в Делфи такая ошибка при обращении к несуществующему индексу.
Пока ничего не делаю стоят два одера и все, крэшей не было, может найти эксперт со встроенной функциеей и погонять его в разных режимах?
Пока ничего не делаю стоят два одера и все, крэшей не было, может найти эксперт со встроенной функциеей и погонять его в разных режимах?
Сейчас запустил Ваш best индикатор на 186 билде от 10 ноября. Получил описываемые Вами вертикальные линии с бешеными значениями. Буду разбираться.
Вскрытие показало, что в расчётах скользящих вовсю используются так называемые "пустые значения", которые по умолчанию ненулевые.
В функцию init индикатора FClose я вставил строчку
В функцию 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; слишком маленькое для Ваших периодов усреднения.
Спасибо за потраченное время, все так, чем строже правила, тем больше доверия к инструменту. Начал полную ревизию накопленного "хабара".
Успехов!
Успехов!
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Тестер стал работать значильно быстрее. Дохлая стратегия вдруг стала показывать нереальную прибыль, в режиме все тики и на 1М. На длинных свечах (быстрых движениях)
после достижения ТП вновь открытие по цене предыдущей и вновь ТП , такой пулемет молотит до 30-40 раз пока не съедет сам "Слип" проблемы не решает...
2. Перестали корректно работать все индикаторы ипользующие функцию iCustom(...),
Мувинги превращаются в вертикальные цветные полосы...
3. Замечательное сообщение "Извените за ошибку" появлялось 6 раз за день, при этом сносило установленные ордера. Все ошибки были по памяти отсыл на не существующий адрес..