После обновления с 186 на 188 билд тестер стратегий начал показывать ПРИНЦИПИАЛЬНО ДРУГИЕ результаты (естественно в худшую сторону)!!! Могли бы разработчики MetaTrader4 объяснить с чем это может быть связано? Какие изменения были сделаны в тестере стратегий в билде 188? Как эти изменения могли повлиять на результаты тестирования так что эксперт из вполне даже успешного превратился в жутко убыточный? И каким результатам теперь нужно верить? Тем из 186 билда или же новым из 188 билда?
- Создание и работа с проектом - Проекты и MQL5 Storage
- MQL5 Wizard: разработка торговых роботов для MetaTrader 5
- Профилирование кода - Разработка программ
Изменения только те, о которых мы написали.
Выложите полный код эксперта в тегах code, пожалуйста.
Мы протестируем на обоих версиях и более точно ответим.
Выложите полный код эксперта в тегах code, пожалуйста.
Мы протестируем на обоих версиях и более точно ответим.
А могли бы Вы подсказать есть ли возможность отключения обновления у Metatrader?
То есть пока я буду выяснять отличия работы моего эксперта в обоих версиях тестера Metatrader могу ли я убрать постоянно появляющееся приглашение на обновление? Возможно, что мой эксперт не учитывает каких-то особенностей работы разных тестеров и думаю, что мне удастся их заметить и выложить их здесь для Вашего анализа.
То есть пока я буду выяснять отличия работы моего эксперта в обоих версиях тестера Metatrader могу ли я убрать постоянно появляющееся приглашение на обновление? Возможно, что мой эксперт не учитывает каких-то особенностей работы разных тестеров и думаю, что мне удастся их заметить и выложить их здесь для Вашего анализа.
Вот выкладываю тестовую версию эксперта.
Тестировался на демке версиях 186 и 188 от брокера InterbakFX, так как к сожалению демка версии 186 от Альпари была нечаянно проапгрейжена до 188 без бэкапа:o(. Остался только бэкап от InterbankFX.
EURUSD, период тестирования M5, все тики, выбрать дату 01.12.2005-31.12.2005, начальный депозит 1000USD.
На старой версии 186 имеем в результате за месяц чистую прибыль +803 (график депозита плавно растёт)
На новой версии 188 имеем в результате за месяц убыток -240 (график депозита плавно уменьшается)
Объясните в чём отличия? Или что мне нужно дописать в эксперте, чтобы результаты на обоих версиях отличались в пределах разумного, а не принципиально как сейчас?
Тестировался на демке версиях 186 и 188 от брокера InterbakFX, так как к сожалению демка версии 186 от Альпари была нечаянно проапгрейжена до 188 без бэкапа:o(. Остался только бэкап от InterbankFX.
EURUSD, период тестирования M5, все тики, выбрать дату 01.12.2005-31.12.2005, начальный депозит 1000USD.
На старой версии 186 имеем в результате за месяц чистую прибыль +803 (график депозита плавно растёт)
На новой версии 188 имеем в результате за месяц убыток -240 (график депозита плавно уменьшается)
Объясните в чём отличия? Или что мне нужно дописать в эксперте, чтобы результаты на обоих версиях отличались в пределах разумного, а не принципиально как сейчас?
//+------------------------------------------------------------------+ //| Pivots_expert_D1.mq4 | //| Copyright © 2005, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2005, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #include <stdlib.mqh> extern double v=1; //тестовая система по H4 extern double tkH4=0.25; extern double tstH4=1; extern double tslH4=1.31; extern bool tH4R2_ON = true; extern bool tH4S2_ON = true; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- // iBars(NULL,PERIOD_D1); //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //начало тестовой системы по H4 double tH4yesterday_high,tH4yesterday_low,tH4yesterday_close,tH4yesterday_open,tdeltaH4; double tH4P,tH4R2,tH4S2,tH4M0,tH4M5,tprofit_H4R2,tprofit_H4S2; int i,ticket,metka=0,tcount_H4S2,tcount_H4R2; tH4yesterday_high = iHigh(Symbol(),240,1); tH4yesterday_low = iLow(Symbol(),240,1); tH4yesterday_close = iClose(Symbol(),240,1); tH4yesterday_open = iOpen(Symbol(),240,1); // Print(tH4yesterday_high," ",tH4yesterday_low," ",tH4yesterday_close," ",tH4yesterday_open); tH4P = ((tH4yesterday_high + tH4yesterday_low + tH4yesterday_close + tH4yesterday_open)/4); tdeltaH4 = tH4yesterday_high - tH4yesterday_low; tH4R2 = tH4P + tstH4*tdeltaH4; tH4S2 = tH4P - tstH4*tdeltaH4; tH4M0 = tH4P - tslH4*tdeltaH4; tH4M5 = tH4P + tslH4*tdeltaH4; tprofit_H4R2 = tH4P + tkH4*tdeltaH4; tprofit_H4S2 = tH4P - tkH4*tdeltaH4; //Округление результатов до поинтов для EURUSD tH4R2=MathRound(10000*tH4R2)/10000; tH4S2=MathRound(10000*tH4S2)/10000; tH4M0=MathRound(10000*tH4M0)/10000; tH4M5=MathRound(10000*tH4M5)/10000; tprofit_H4R2=MathRound(10000*tprofit_H4R2)/10000; tprofit_H4S2=MathRound(10000*tprofit_H4S2)/10000; //Конец тестовой системы H4 {//начало for for(ticket=0;ticket<OrdersTotal();ticket++) if (OrderSelect(ticket,SELECT_BY_POS,MODE_TRADES)==false) break; else {//начало else tcount_H4S2=proverka_buy(tH4S2,"tH4S2",tH4M0,tprofit_H4S2,tcount_H4S2,tH4S2_ON,0,0); tcount_H4R2=proverka_sell(tH4R2,"tH4R2",tH4M5,tprofit_H4R2,tcount_H4R2,tH4R2_ON,0,0); }//конец else metka=1; }//конец for if(metka==1) { OrderSet_buy(tH4S2,"tH4S2",tH4M0,tprofit_H4S2,tcount_H4S2,tH4S2_ON,v,0,0); OrderSet_sell(tH4R2,"tH4R2",tH4M5,tprofit_H4R2,tcount_H4R2,tH4R2_ON,v,0,0); } return(0); } //+------------------------------------------------------------------+ //Функции работы с отложенными ордерами int proverka_buy(double znachenie, string name, double sl, double profit, int schetchik, bool permission, int start_punkt, int sl_punkt) { if (OrderComment()==name){ schetchik++; if ((OrderOpenPrice()-(znachenie+(start_punkt*Point))>0.99*Point || OrderOpenPrice()-(znachenie+(start_punkt*Point))<-0.99*Point) && OrderType()!=OP_BUY && 10000*(profit-(znachenie+(start_punkt*Point)))>4.9 && 10000*(znachenie+(start_punkt*Point)-(sl-(sl_punkt*Point)))>4.9) OrderModify(OrderTicket(),znachenie+(start_punkt*Point),sl-(sl_punkt*Point),profit,0); if ((!permission && OrderType()!=OP_BUY) || schetchik>1 || (OrderType()==OP_BUYLIMIT && OrderOpenPrice()>Ask+5*Point)) OrderDelete(OrderTicket()); } return(schetchik); } int proverka_sell(double znachenie, string name, double sl, double profit, int schetchik, bool permission, int start_punkt, int sl_punkt) { if (OrderComment()==name){ schetchik++; if ((OrderOpenPrice()-(znachenie-(start_punkt*Point))>0.99*Point || OrderOpenPrice()-(znachenie-(start_punkt*Point))<-0.99*Point) && OrderType()!=OP_SELL && 10000*(znachenie-(start_punkt*Point)-profit)>4.9 && 10000*(sl+(sl_punkt*Point)-(znachenie-(start_punkt*Point)))>4.9) OrderModify(OrderTicket(),znachenie-(start_punkt*Point),sl+(sl_punkt*Point),profit,0); if ((!permission && OrderType()!=OP_SELL) || schetchik>1 || (OrderType()==OP_SELLLIMIT && OrderOpenPrice()<Bid-5*Point)) OrderDelete(OrderTicket()); } return(schetchik); } //Функции установки отложенных ордеров int OrderSet_buy(double znachenie, string name, double sl, double profit, int schetchik, bool permission, double obiem, int start_punkt, int sl_punkt) { if (schetchik==0 && permission && Ask>(znachenie+(4*Point)) && 10000*(profit-(znachenie+(start_punkt*Point)))>4.9 && 10000*(znachenie+(start_punkt*Point)-(sl-(sl_punkt*Point)))>4.9) OrderSend(Symbol(),OP_BUYLIMIT,obiem,znachenie+(start_punkt*Point),0,sl-(sl_punkt*Point),profit,name,16385,0); if (schetchik==0 && permission && Ask<(znachenie-(2*Point)) && 10000*(profit-(znachenie+(start_punkt*Point)))>4.9 && 10000*(znachenie+(start_punkt*Point)-(sl-(sl_punkt*Point)))>4.9) OrderSend(Symbol(),OP_BUYSTOP,obiem,znachenie+(start_punkt*Point),0,sl-(sl_punkt*Point),profit,name,16485,0); return(0); } int OrderSet_sell(double znachenie, string name, double sl, double profit, int schetchik, bool permission, double obiem, int start_punkt, int sl_punkt) { if (schetchik==0 && permission && Bid<(znachenie-(4*Point)) && 10000*(znachenie-(start_punkt*Point)-profit)>4.9 && 10000*(sl+(sl_punkt*Point)-(znachenie-(start_punkt*Point)))>4.9) OrderSend(Symbol(),OP_SELLLIMIT,obiem,znachenie-(start_punkt*Point),0,sl+(sl_punkt*Point),profit,name,16388,0); if (schetchik==0 && permission && Bid>(znachenie+(2*Point)) && 10000*(znachenie-(start_punkt*Point)-profit)>4.9 && 10000*(sl+(sl_punkt*Point)-(znachenie-(start_punkt*Point)))>4.9) OrderSend(Symbol(),OP_SELLSTOP,obiem,znachenie-(start_punkt*Point),0,sl+(sl_punkt*Point),profit,name,16488,0); return(0); }
Объясните в чём отличия?
Для начала хочу спросить: а Вы проверяли точки входа в том и этой версиях? Графики со всеми операциями ведь доступны. Проведите, пожалуйста, первичную проверку самостоятельно.
Наверняка тесты гонялись на разных брокерах (разных базах котировок)?
Посмотрите обсуждение вопроса "какова может быть разница в тестах из-за расхождений в истории"
"Новый билд MetaTrader 4. Build 177."
Объясните в чём отличия?
Для начала хочу спросить: а Вы проверяли точки входа в том и этой версиях? Графики со всеми операциями ведь доступны. Проведите, пожалуйста, первичную проверку самостоятельно.
Наверняка тесты гонялись на разных брокерах (разных базах котировок)?
Посмотрите обсуждение вопроса "какова может быть разница в тестах из-за расхождений в истории"
"Новый билд MetaTrader 4. Build 177."
Нет. Я гонял разные версии на программы на одном и том же брокере InterbankFX.
У разных брокеров разумеется будет масса расхождений во ВСЁМ.
При анализе результатов и графиков удалось заметить такую вещь, что на тестере старого билда 186 иногда происходит случайное срабатывание отложенных ордеров даже если цена находится в другом месте. Приведу пример:
15 2005.12.01 13:43 buy stop 5 1.00 1.1748 1.1739 1.1768
16 2005.12.01 16:00 modify 5 1.00 1.1663 1.1640 1.1719
17 2005.12.01 16:00 buy 5 1.00 1.1663 1.1640 1.1719
18 2005.12.01 16:00 modify 2 1.00 1.1813 1.1836 1.1757
19 2005.12.01 18:35 t/p 5 1.00 1.1719 1.1640 1.1719 56.00 1029.00
согласно отчёта 01.12.2005 16:00 сработал отложенный ордер 5 1.00 1.1663 1.1640 1.1719
Только вот на графике цена в этот момент находилась значительно выше на 1.1711.
В новом билде 188 в этом месте никакого срабатывания ордера не было.
Это вообще свойство старого билда или что?
При анализе результатов и графиков удалось заметить такую вещь, что на тестере старого билда 186 иногда происходит случайное срабатывание отложенных ордеров даже если цена находится в другом месте.
Это - одна из исправленных ошибок тестера.
При анализе результатов и графиков удалось заметить такую вещь, что на тестере старого билда 186 иногда происходит случайное срабатывание отложенных ордеров даже если цена находится в другом месте.
Это - одна из исправленных ошибок тестера.
Вот они:
26. Tester: исправлена ошибка установки неверных SL и TP в отложенных ордерах;
27. Tester: исправлена ошибка модификации цены отложенного ордера;
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь