Новая версия платформы MetaTrader 5 build 2340: Управление настройками счета в тестере и расширение интеграции с Python - страница 4

 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

Alexey Kozitsyn, 2020.02.22 13:51

В эксперте реализован графический интерфейс. Также реализованы пользовательские события (например, события по изменению графического интерфейса). Произвожу отладку на реальных данных (F5). Как только ставлю точку останова на пользовательское событие - отладчик останавливается, но последующее нажатие на F5 (продолжение отладки) не приводит к изменению в самом графическом интерфейсе. Вопрос: так и должно быть, или это баг отладчика?

Если убрать точку останова (отладка продолжается) - изменения в графическом интерфейсе происходят нормально.

МТ5, билд 2340.


 
Artem Evdokimov:
Я сделал ход конем ). Один файл оставил с родным расширением .dll , а другой такой же, но с расширением .dll.ex5 и оба в папке Libraries. Завелся и тестер и в терминале сова работает. Ждём исправлений, а то это какое-то извращение ))).

да так работает, я вчера еще разобрался с этим ноухау 

Artem Evdokimov:

но тут сразу другая проблема возникает. Если эта дллка обращается к другим библиотекам, то связь с ними теряется. 

я стараюсь в одну dll запаковать все вызовы, обычно пакет Costura.Fody без проблем все сам делает

попробуйте с Costura.Fody - отличная штука

 

Что-то в процессе оптимизации определённо изменилось. Советник перестал оптимизироваться на старых настройках и стал на других. Но это субъектив и проблема, которую я отловлю, разве что случайно.

А вот это объектив: На вкладке форвард, в колонке результатов бэктеста непонятно что. Причём это и на пользовательском критерии и на стандартных. Привожу результаты для фактора восстановления.

бэктест

форвард

 
Good Beer:

Что-то в процессе оптимизации определённо изменилось. Советник перестал оптимизироваться на старых настройках и стал на других. Но это субъектив и проблема, которую я отловлю, разве что случайно.

А вот это объектив: На вкладке форвард, в колонке результатов бэктеста непонятно что. Причём это и на пользовательском критерии и на стандартных. Привожу результаты для фактора восстановления.


В форвардное тестирование отдаются лучшие результаты данного сеанса оптимизации.

Судя по верхнему скриншоту, у Вас - генетическая оптимизация, причём лучшие результаты были получены в предыдущих сеансах генетической оптимизации.

О том, что результат получен в одном из предыдущих сенсов, свидетельствует пустота в колонке "проход". Для текущего сеанса в этой колонке содержатся 2 цифры - номер поколения и номер особи

 
Slava:

В форвардное тестирование отдаются лучшие результаты данного сеанса оптимизации.

Судя по верхнему скриншоту, у Вас - генетическая оптимизация, причём лучшие результаты были получены в предыдущих сеансах генетической оптимизации.

О том, что результат получен в одном из предыдущих сенсов, свидетельствует пустота в колонке "проход". Для текущего сеанса в этой колонке содержатся 2 цифры - номер поколения и номер особи

И правда, а где номера прохода? Ведь у меня же "#property tester_no_cache"!

Даже если и повторно, ну и что? В нижней таблице данные сортированы по убываню в колонке "бэктест". В верхней ячейке должен быть лучший результат из колонки "результат" верхней таблицы, также сортированной по убываню. А там что за цифра? Я даже не смог найти, откуда она взялась.

 
Igor Makanu:

да так работает, я вчера еще разобрался с этим ноухау 

я стараюсь в одну dll запаковать все вызовы, обычно пакет Costura.Fody без проблем все сам делает

попробуйте с Costura.Fody - отличная штука

Да, спасибо. Все перекомпилировал. Заработало

 
Good Beer:

И правда, а где номера прохода? Ведь у меня же "#property tester_no_cache"!

Даже если и повторно, ну и что? В нижней таблице данные сортированы по убываню в колонке "бэктест". В верхней ячейке должен быть лучший результат из колонки "результат" верхней таблицы, также сортированной по убываню. А там что за цифра? Я даже не смог найти, откуда она взялась.

Если Вы гоняете генетическую оптимизацию, то никакие результаты из уже существующего кеша не используются для дальнейших расчётов. Они загружаются из кеша в список результатов оптимизации только для информационных целей. Потому что генетика сильно специфична и вместо десятков миллионов проходов для получения результата реально запускается две с половиной тысячи. И было бы глупо терять прошлые результаты.

Чтобы найти соответствующий форвардному результат из основного списка просто сделайте даблклик на строчке форвардного прохода. Этот трюк работает уже 10 лет.

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

Если Вы гоняете генетическую оптимизацию, то никакие результаты из уже существующего кеша не используются для дальнейших расчётов. Они загружаются из кеша в список результатов оптимизации только для информационных целей. Потому что генетика сильно специфична и вместо десятков миллионов проходов для получения результата реально запускается две с половиной тысячи. И было бы глупо терять прошлые результаты.

Зачем же тогда tester_no_cache?

 

стабильная версия 5 билд 2340 компиляция проходит с DatabaseImport

а выполнение сразу выдает сообщение   MQL5    'DOMcopy.ex5' has newer unsupported version, please update your client terminal

 
Andrey Khatimlianskii:

Зачем же тогда tester_no_cache?

#property tester_no_cache означает, что при оптимизации не проверяется наличие в кеш-файле уже посчитанного ранее прохода с такими же параметрами.

При генетической оптимизации наличие в кеш-файле не проверяется всегда, независимо от отсутствия или наличия этого свойства.

В документации примерно это и написано

tester_no_cache

string

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

 

Но для некоторых задач – например, при математических вычислениях – может потребоваться проводить расчеты независимо от наличия готовых результатов в кеше оптимизации. В этом случае в файл необходимо включить свойство tester_no_cache. При этом сами результаты тестирования все равно будут сохраняться в кеше, чтобы можно было в тестере стратегий посмотреть все данные по выполненным проходам.

Документация по MQL5: Основы языка / Типы данных / Тип string
Документация по MQL5: Основы языка / Типы данных / Тип string
  • www.mql5.com
Тип string предназначен для хранения текстовых строк. Текстовая строка представляет собой последовательность символов в формате Unicode с завершающим нулем на конце. string-переменной может быть назначена строковая константа. Строковая константа представляет собой последовательность символов Unicode, заключенную в двойные кавычки: "Это...