Приведите, пожалуйста, полный код эксперта, на котором происходит падение?
Не понял связи, имеется ввиду упал терминал и снес ждущий ордер, так он был выставлен вручную а не экспертом, эксперты весь день не работали, только тестил...
Болеее важен для меня вопрос индикаторов, они все крякнулись, а я им только недавно присвоил имя Бэст...
Привожу тексты индикатора-
Болеее важен для меня вопрос индикаторов, они все крякнулись, а я им только недавно присвоил имя Бэст...
Привожу тексты индикатора-
//+------------------------------------------------------------------+ //| 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 раз за день, при этом сносило установленные ордера. Все ошибки были по памяти отсыл на не существующий адрес..