MT5. ТЕСТЕР СТРАТЕГИЙ. Расхождение результатов тестирования и оптимизации.

 

В третий раз поднимаю эту тему, на сей раз расхождение обнаружено в терминале MT5. Сразу скажу, что расхождение проявляется не всегда, точнее редко, и пока не понятно, с чем это связано.

Запускаю оптимизация в режиме "Медленная (полный перебор параметров)", "Balance Max" и "Только цены открытия". Выбираю каждый раз медленную оптимизацию просто на автомате, все равно оптимизатор с таким количеством проходов самостоятельно переключится на быструю (генетический алгоритм). По окончании оптимизации выбираю самую первую строчку с лучшим результатом по прибыли и выполняю на ней пункт меню ""Запустить одиночное тестирование". Однако результат одиночного тестирования показывает другое значение прибыли, значительно отличающееся от той прибыли, которое нашел оптимизатор.

Ниже представлены 2 графика. График оптимизации с максимальной прибылью порядка 70 млн. и график одиночного тестирования с прибылью примерно 22 млн.

В чем причине такого расхождения?

Файлы:
 

Для тестирования и оптимизации использовались склейки биржевых инструментов @Si и @RTS в терминале брокера БКС.

 
Заметил такую же хрень. Мне кажется это глюк самого мт5
 

Вынужден еще раз поднять тему расхождения результатов оптимизации и тестирования, просто эта тема уже начинает напрягать. Ответ на прошлый пост так и не получил. Выкладываю свежие данные по расхождению.
Вот несколько верхних строк из отчета оптимизации (значение внешних переменных удалены). Результаты оптимизации отсортированы по макс. балансу.

Pass Result Profit Expected Payoff Profit Factor Recovery Factor Sharpe Ratio Custom Equity DD  %        Trades
 148, 388 1403801.00 1203801.00 1840.67 2.60 12.86 0.08 0 11.03 654
 142, 346 1403801.00 1203801.00 1840.67 2.60 12.86 0.08 0 11.03 654
 137, 332 1403801.00 1203801.00 1840.67 2.60 12.86 0.08 0 11.03 654
 148, 498 1403649.00 1203649.00 1840.44 2.60 12.86 0.08 0 11.03 654
 132, 400 1403329.00 1203329.00 1839.95 2.60 12.86 0.08 0 11.03 654
 148, 383 1403024.00 1203024.00 1839.49 2.60 12.85 0.08 0 11.03 654
 147, 440 1403024.00 1203024.00 1839.49 2.60 12.85 0.08 0 11.03 654
 146, 506 1403024.00 1203024.00 1839.49 2.60 12.85 0.08 0 11.03 654
 145, 447 1403024.00 1203024.00 1839.49 2.60 12.85 0.08 0 11.03 654
 142, 493 1403024.00 1203024.00 1839.49 2.60 12.85 0.08 0 11.03 654
 142, 508 1403024.00 1203024.00 1839.49 2.60 12.85 0.08 0 11.03 654
 141, 357 1403024.00 1203024.00 1839.49 2.60 12.85 0.08 0 11.03 654


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

"Отчет тестера стратегий.png"


Как видно, абсолютно вся статистика не совпадает: прибыльность, чистая прибыль, кол-во трейдов и т.д.

Может быть знающие люди ответят на вопрос, в чем причина несоответствия результатов прогона и оптимизации?

Для справки:
Брокер: БКС,
Начальный депозит: 200 тыс. руб.,
Инструмент: @Si, склейка фьючерса доллар-рубль
Таймфрейм: H1
Оптимизация: быстрая (генетический алгоритм), Balance (max)
Режим торговли: без задержки, только цены открытия
Период: 15.11.2013 - 01.01.2018, форвард: No

 
Eugene Myzrov:

в чем причина несоответствия результатов прогона и оптимизации?

https://www.mql5.com/ru/forum/170952/page51#comment_5497844

Особенности языка mql5, тонкости и приёмы работы
Особенности языка mql5, тонкости и приёмы работы
  • 2017.07.23
  • www.mql5.com
В данной теме будут обсуждаться недокументированные приёмы работы с языком mql5, примеры решения тех, или иных задач...
 
fxsaber: https://www.mql5.com/ru/forum/170952/page51#comment_5497844

Действительно, я не уточнил, что советник при оптимизации использует распределенные вычисления в Local Network Farm из 52 агентов, размещенных на 5 компьютерах. Значится, Ваше предположение состоит в том, что на каком-то компьютере в локальной сети установлена более ранняя версия менеджера агентов тестирования. Спасибо за наводку, как проверю, отпишусь.

 
fxsaber: https://www.mql5.com/ru/forum/170952/page51#comment_5497844

Проверил все 5 компьютеров, причину локализовать не удалось, везде установлены самые последние версии менеджеров агентов тестирования, а именно 1643. Есть еще предположения о причине несоответствия результатов тестирования результатам оптимизации?

Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии ( советники ) перед началом использования их в реальной торговле. При...
 
Eugene Myzrov:

Проверил все 5 компьютеров, причину локализовать не удалось, везде установлены самые последние версии менеджеров агентов тестирования, а именно 1643. Есть еще предположения о причине несоответствия результатов тестирования результатам оптимизации?

Используются ли в советнике какие-либо внешние файлы?

 
Eugene Myzrov:

Проверил все 5 компьютеров, причину локализовать не удалось, везде установлены самые последние версии менеджеров агентов тестирования, а именно 1643. Есть еще предположения о причине несоответствия результатов тестирования результатам оптимизации?

Вставить в советник эти строки

#define REPORT_TESTER // В тестере будут автоматически записываться отчеты
#include <Report.mqh>

и запустить Оптимизацию. Затем запустить несовпадающий одиночный прогон.

Далее сравнить сохраненные два отчета соответствующих прохода из Оптимизации и одиночного прохода.

Результат сравнения этих двух отчетов быстро выявит причины.

 
Yury Kirillov: Используются ли в советнике какие-либо внешние файлы?

Вы имеете ввиду файлы, которые читает или пишет сам советник? Да, при запуске в OnInit() происходит считывание текстового файла "ExpiryCalendar.csv" из общего каталога C:\Users\____\AppData\Roaming\MetaQuotes\Terminal\Common\Files. А действительно, как агенты на удаленных машинах отрабатывают эту ситуацию, ведь этот файл имеется только на главной машине, на остальные я его не переносил?

Похоже, что причину надо искать здесь.

 
Eugene Myzrov:

Вы имеете ввиду файлы, которые читает или пишет сам советник? Да, при запуске в OnInit() происходит считывание текстового файла "ExpiryCalendar.csv" из общего каталога C:\Users\____\AppData\Roaming\MetaQuotes\Terminal\Common\Files. А действительно, как агенты на удаленных машинах отрабатывают эту ситуацию, ведь этот файл имеется только на главной машине, на остальные я его не переносил?

Похоже, что причину надо искать здесь.


Используйте #property tester_file.