Скачать MetaTrader 5

После оптимизации тест на подобранных параметрах не совпадает

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Публикуй программы в Code Base. Увеличивай свой рейтинг!
Alexey Burnakov
2998
Alexey Burnakov 2016.03.31 22:28 

Добрый день!

 Использую МТ4. 

Очень удивился (. Провожу оптимизацию весь день, получил результаты. Они показались мне черезчур хорошими. Ну, думаю, ладно, попробуем разобраться.

Запустил отдельные тесты на нескольких вариантах подобранных параметров. Результаты с оптимизацией не совпадают! Причем у меня были заданы и даты, и спред 30, и все как обычно.

После недолгих размышлений стало понятно, что, несмотря на то, что спред я задал перед оптимизацией 30 пипок, она проводилась с НУЛЕВЫМ спредом. То есть, я ставлю на тесте спред 1 и все на 99.9% совпадает. Ставлю 30 пунктов и все намного хуже.

Почему такое может произойти?

Раньше, примерно год назад я с этим же самым кодом воспроизводил оптимизацию в точности. Что поменялось?

 

Мой кусок кода по открытию и закрытию сделок, там вырезаны условия, но видны типы цен. Вроде я делаю все верно... 

//--- проверка условия на закрытие сделки

   if(OrdersTotal() > 0)
      {
      for(int i=OrdersTotal()-1; i>=0; i--)
         {
         OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
         
         if(OrderType()==OP_BUY)
            {
            ...
               OrderClose(OrderTicket(),OrderLots(),Bid,3,Blue);
               }
            }
            
         if(OrderType()==OP_SELL)
            {
            ...
               OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);
               }
            }
         }
      }





//--- проверка условия на открытие сделки
   if(OrdersTotal() < max_orders)
      {
      ...
               OrderSend(Symbol(),OP_SELLLIMIT,lot,NormalizeDouble(Bid + limit * Point, Digits),0,
               0,
               0,
               0,EA_Magic,TimeCurrent()+wait_time_open_minutes*60,clrRed);
               return;
               }
            }
            
         if(...)
               {
               OrderSend(Symbol(),OP_BUYLIMIT,lot,NormalizeDouble(Ask - limit * Point, Digits),0,
               0,
               0,
               0,EA_Magic,TimeCurrent()+wait_time_open_minutes*60,clrBlue);
               return;
               }
            }
         }
      }
Alexey Burnakov
2998
Alexey Burnakov 2016.04.01 09:45  
С утра еще раз запустил опт. И что думаете, теперь тест совпадает. Похоже, есть какой-то баг, иногда предложенный спред не учитывается. Я попробую разобраться.
Yuri Evseenkov
2301
Yuri Evseenkov 2016.04.01 11:23  
Alexey Burnakov:

Добрый день!

Запустил отдельные тесты на нескольких вариантах подобранных параметров. Результаты с оптимизацией не совпадают! Причем у меня были заданы и даты, и спред 30, и все как обычно.


У меня обратная ситуация.  В алгоритме используется генератор случайных чисел. При повторном тестировании с одними и теми же параметрами результаты разные, что естественно при влиянии на алгоритм ГСЧ. А вот когда оптимизация повторно запускается с теми же параметрами, результаты совпадают. Получается что ГСЧ не срабатывает при каждом новом проходе.
Maxim Romanov
3723
Maxim Romanov 2016.04.01 12:54  
Yuri Evseenkov:
У меня обратная ситуация.  В алгоритме используется генератор случайных чисел. При повторном тестировании с одними и теми же параметрами результаты разные, что естественно при влиянии на алгоритм ГСЧ. А вот когда оптимизация повторно запускается с теми же параметрами, результаты совпадают. Получается что ГСЧ не срабатывает при каждом новом проходе.
узнать бы как там реализован ГСЧ
СанСаныч Фоменко
6130
СанСаныч Фоменко 2016.04.01 16:51  

Че-то не понял. Вчера тестер работал нормально, а сегодня вот что.

Запускаю в тестере советник с набором параметров, один из которых равен 2. Получаю прибыль. Меняю этот параметр на 10 - получаю прибыль. Запускаю оптимизацию по этому параметру от 1 с шагом 1 до 10 - прибыль нулевая при всех 10 значениях параметра??? 

Alexey Burnakov
2998
Alexey Burnakov 2016.04.01 18:35  
В общем, тестер шалит иногда.
Alexey Burnakov
2998
Alexey Burnakov 2016.04.01 21:13  
Я еще про свою ситуацию добавлю. В журнал должно вывестись сообщение, что спред установлен такой-то. Тогда оптимизация его обрабатывает. Вот у меня этого сообщения могло не быть. Почему не знаю. Надо поразбираться. Если это баг, попробую описать.
Dmytro Zelenskyy
4336
Dmytro Zelenskyy 2016.04.02 12:02  


У меня тоже было нечто подобное. Писал на другом сайте, здесь свои посты просто скопирую.



"Столкнулся с неприятной ситуацией.

Свежезакачанный МТ4 Билд 940. (запущено 4-ре копии с разных папок через   /portable )

Закачиваются котировки с Альпари.

Оптимизируется по барам на М1 обычный советник с родными МТ4 индикаторами на истории 2008-2015.

Результаты оптимизации офигенно граальные.

После оптимизации не один результат не подтверждается одиночным прогоном этим же тестером, слив конкретный. Совпадает только количество сделок.

Такая хрень случается через раз. Т.е. может очередная оптимизация дать результаты которые будут подтверждаться одиночными прогонами. 

Что сбивает тестер, пока не словил. "

  "И продолжение...


Глюк уже 950 билда тестера в картинках

Оптимизация дала сет  с прибылью 37619, кол-во сделок 52519, просадка 272

А этот же тестер дал прибыль -177926, кол-во сделок 52519, просадка 177931 (чтобы не войти в 0 баланс при тестировании пришлось увеличить с 100000 до 1000000)

П.С.

Интересно что, этот же тестер с теми же настройками, нормально оптимизировал и тестировал предыдущий прогон. А потом вот такая ...нестабильность."

 

 

По моим наблюдениям все билды 9хх  страдают этой проблемой. Билды 8хх работают нормально.

Lilita Bogachkova
1280
Lilita Bogachkova 2016.04.02 13:21  
Dmytro Zelenskyy:


У меня тоже было нечто подобное. Писал на другом сайте, здесь свои посты просто скопирую.



"Столкнулся с неприятной ситуацией.

Свежезакачанный МТ4 Билд 940. (запущено 4-ре копии с разных папок через   /portable )

Закачиваются котировки с Альпари.

Оптимизируется по барам на М1 обычный советник с родными МТ4 индикаторами на истории 2008-2015.

Результаты оптимизации офигенно граальные.

После оптимизации не один результат не подтверждается одиночным прогоном этим же тестером, слив конкретный. Совпадает только количество сделок.

Такая хрень случается через раз. Т.е. может очередная оптимизация дать результаты которые будут подтверждаться одиночными прогонами. 

Что сбивает тестер, пока не словил. "

  "И продолжение...


Глюк уже 950 билда тестера в картинках

Оптимизация дала сет  с прибылью 37619, кол-во сделок 52519, просадка 272

А этот же тестер дал прибыль -177926, кол-во сделок 52519, просадка 177931 (чтобы не войти в 0 баланс при тестировании пришлось увеличить с 100000 до 1000000)

П.С.

Интересно что, этот же тестер с теми же настройками, нормально оптимизировал и тестировал предыдущий прогон. А потом вот такая ...нестабильность."

 

 

По моим наблюдениям все билды 9хх  страдают этой проблемой. Билды 8хх работают нормально.

В свое время MT4 такое лечилось удалением папки "tester" и пуском термина заново. Потом обычно (до обновления терминала) все работало корректно.
СанСаныч Фоменко
6130
СанСаныч Фоменко 2016.04.02 15:33  
СанСаныч Фоменко:

Че-то не понял. Вчера тестер работал нормально, а сегодня вот что.

Запускаю в тестере советник с набором параметров, один из которых равен 2. Получаю прибыль. Меняю этот параметр на 10 - получаю прибыль. Запускаю оптимизацию по этому параметру от 1 с шагом 1 до 10 - прибыль нулевая при всех 10 значениях параметра??? 

Это еще не вся беда.

Обычный прогон тестера. Есть результаты под кнопкой "Результаты" куча сделок разной длительности. Под  кнопкой "Открыть график" - график есть, относится к периоду тестирования, а вот сделки на нем не нанесены.

Удалением папки "Тестер" не лечится.

Alexey Volchanskiy
16668
Alexey Volchanskiy 2016.04.03 02:29  
Yuri Evseenkov:
У меня обратная ситуация.  В алгоритме используется генератор случайных чисел. При повторном тестировании с одними и теми же параметрами результаты разные, что естественно при влиянии на алгоритм ГСЧ. А вот когда оптимизация повторно запускается с теми же параметрами, результаты совпадают. Получается что ГСЧ не срабатывает при каждом новом проходе.

В каждом цикле оптимизации вызываются OnDeinit и OnInit. Попробуйте в каждом ините вызывать MathSrand с каким-нибудь инициализирующим числом. Наверное (не пробовал), GetTickCount не подойдет, попробуйте GetMicrosecondCount, тут от прогона к прогону должны меняться какие-то младшие разряды, то есть надо брать имено их.

Или запоминать число в глобальной переменной терминала и каждый раз делать ++ 

12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий