В эксперте реализован графический интерфейс. Также реализованы пользовательские
события (например, события по изменению графического интерфейса). Произвожу отладку на реальных данных (F5). Как
только ставлю точку останова на пользовательское событие - отладчик останавливается, но последующее нажатие на F5
(продолжение отладки) не приводит к изменению в самом графическом интерфейсе. Вопрос: так и должно быть, или это баг отладчика?
Если убрать точку останова (отладка продолжается) - изменения в графическом интерфейсе происходят нормально.
Artem Evdokimov: Я сделал ход конем ). Один файл
оставил с родным расширением .dll , а другой такой же, но с расширением .dll.ex5 и оба в папке Libraries. Завелся и тестер и в терминале
сова работает. Ждём исправлений, а то это какое-то извращение ))).
да так работает, я вчера еще разобрался с этим ноухау
Artem Evdokimov:
но тут сразу другая проблема возникает. Если эта дллка обращается к другим библиотекам, то связь с ними теряется.
я стараюсь в одну dll запаковать все вызовы, обычно пакет Costura.Fody без проблем все сам делает
Что-то в процессе оптимизации определённо изменилось. Советник перестал
оптимизироваться на старых настройках и стал на других. Но это субъектив и проблема, которую я отловлю, разве что случайно.
А вот это объектив: На вкладке форвард, в колонке результатов бэктеста
непонятно что. Причём это и на пользовательском критерии и на стандартных. Привожу результаты для фактора восстановления.
Что-то в процессе оптимизации определённо изменилось. Советник перестал оптимизироваться на старых настройках и стал на других. Но это
субъектив и проблема, которую я отловлю, разве что случайно.
А вот это объектив: На вкладке форвард, в колонке результатов бэктеста непонятно что. Причём это и на пользовательском критерии и на
стандартных. Привожу результаты для фактора восстановления.
В форвардное тестирование отдаются лучшие результаты данного сеанса оптимизации.
Судя по верхнему скриншоту, у Вас - генетическая оптимизация, причём лучшие результаты были получены в предыдущих сеансах генетической
оптимизации.
О том, что результат получен в одном из предыдущих сенсов, свидетельствует пустота в колонке "проход". Для текущего сеанса в этой колонке
содержатся 2 цифры - номер поколения и номер особи
В форвардное тестирование отдаются лучшие результаты данного сеанса оптимизации.
Судя по верхнему скриншоту, у Вас - генетическая оптимизация, причём лучшие результаты были получены в предыдущих сеансах
генетической оптимизации.
О том, что результат получен в одном из предыдущих сенсов, свидетельствует пустота в колонке "проход". Для текущего сеанса в этой
колонке содержатся 2 цифры - номер поколения и номер особи
И правда, а где номера прохода? Ведь у меня же "#property tester_no_cache"!
Даже если и повторно, ну и что? В нижней таблице данные сортированы по убываню в колонке "бэктест". В верхней ячейке должен быть лучший
результат из колонки "результат" верхней таблицы, также сортированной по убываню. А там что за цифра? Я даже не смог найти, откуда она
взялась.
И правда, а где номера прохода? Ведь у меня же "#property tester_no_cache"!
Даже если и повторно, ну и что? В нижней таблице данные сортированы по убываню в колонке "бэктест". В верхней ячейке должен быть лучший
результат из колонки "результат" верхней таблицы, также сортированной по убываню. А там что за цифра? Я даже не смог найти, откуда она
взялась.
Если Вы гоняете генетическую оптимизацию, то никакие результаты из уже существующего кеша не используются для дальнейших расчётов. Они
загружаются из кеша в список результатов
оптимизации только для информационных целей. Потому что генетика сильно специфична и вместо десятков миллионов проходов
для получения результата реально запускается две с половиной тысячи. И было бы глупо терять прошлые результаты.
Чтобы найти соответствующий форвардному результат из основного списка просто сделайте даблклик на строчке форвардного прохода. Этот трюк
работает уже 10 лет.
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
Если Вы гоняете генетическую оптимизацию, то никакие результаты из уже существующего кеша не используются для дальнейших расчётов.
Они загружаются из кеша в список результатов
оптимизации только для информационных целей. Потому что генетика сильно специфична и вместо десятков миллионов
проходов для получения результата реально запускается две с половиной тысячи. И было бы глупо терять прошлые результаты.
Тестер стратегий при выполнении оптимизации
сохраняет все результаты выполненных проходов в кеш
оптимизации, в котором для каждого набора входных
параметров сохраняется результат тестирования. Это позволяет при повторной оптимизации на тех же параметрах брать
готовые результаты без повторного вычисления и затрат времени.
Но для некоторых задач – например, при математических вычислениях –
может потребоваться проводить расчеты независимо от наличия готовых результатов в кеше оптимизации. В этом случае в файл
необходимо включить свойство tester_no_cache.
При этом сами результаты тестирования все равно будут сохраняться в кеше, чтобы можно было в тестере стратегий посмотреть
все данные по выполненным проходам.
Тип string предназначен для хранения текстовых строк. Текстовая строка представляет собой последовательность символов в формате Unicode с завершающим нулем на конце. string-переменной может быть назначена строковая константа. Строковая константа представляет собой последовательность символов Unicode, заключенную в двойные кавычки: "Это...
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Ошибки, баги, вопросы
Alexey Kozitsyn, 2020.02.22 13:51
В эксперте реализован графический интерфейс. Также реализованы пользовательские события (например, события по изменению графического интерфейса). Произвожу отладку на реальных данных (F5). Как только ставлю точку останова на пользовательское событие - отладчик останавливается, но последующее нажатие на F5 (продолжение отладки) не приводит к изменению в самом графическом интерфейсе. Вопрос: так и должно быть, или это баг отладчика?
Если убрать точку останова (отладка продолжается) - изменения в графическом интерфейсе происходят нормально.
МТ5, билд 2340.
Я сделал ход конем ). Один файл оставил с родным расширением .dll , а другой такой же, но с расширением .dll.ex5 и оба в папке Libraries. Завелся и тестер и в терминале сова работает. Ждём исправлений, а то это какое-то извращение ))).
да так работает, я вчера еще разобрался с этим ноухау
но тут сразу другая проблема возникает. Если эта дллка обращается к другим библиотекам, то связь с ними теряется.
я стараюсь в одну dll запаковать все вызовы, обычно пакет Costura.Fody без проблем все сам делает
попробуйте с Costura.Fody - отличная штука
Что-то в процессе оптимизации определённо изменилось. Советник перестал оптимизироваться на старых настройках и стал на других. Но это субъектив и проблема, которую я отловлю, разве что случайно.
А вот это объектив: На вкладке форвард, в колонке результатов бэктеста непонятно что. Причём это и на пользовательском критерии и на стандартных. Привожу результаты для фактора восстановления.
Что-то в процессе оптимизации определённо изменилось. Советник перестал оптимизироваться на старых настройках и стал на других. Но это субъектив и проблема, которую я отловлю, разве что случайно.
А вот это объектив: На вкладке форвард, в колонке результатов бэктеста непонятно что. Причём это и на пользовательском критерии и на стандартных. Привожу результаты для фактора восстановления.
В форвардное тестирование отдаются лучшие результаты данного сеанса оптимизации.
Судя по верхнему скриншоту, у Вас - генетическая оптимизация, причём лучшие результаты были получены в предыдущих сеансах генетической оптимизации.
О том, что результат получен в одном из предыдущих сенсов, свидетельствует пустота в колонке "проход". Для текущего сеанса в этой колонке содержатся 2 цифры - номер поколения и номер особи
В форвардное тестирование отдаются лучшие результаты данного сеанса оптимизации.
Судя по верхнему скриншоту, у Вас - генетическая оптимизация, причём лучшие результаты были получены в предыдущих сеансах генетической оптимизации.
О том, что результат получен в одном из предыдущих сенсов, свидетельствует пустота в колонке "проход". Для текущего сеанса в этой колонке содержатся 2 цифры - номер поколения и номер особи
И правда, а где номера прохода? Ведь у меня же "#property tester_no_cache"!
Даже если и повторно, ну и что? В нижней таблице данные сортированы по убываню в колонке "бэктест". В верхней ячейке должен быть лучший результат из колонки "результат" верхней таблицы, также сортированной по убываню. А там что за цифра? Я даже не смог найти, откуда она взялась.
да так работает, я вчера еще разобрался с этим ноухау
я стараюсь в одну dll запаковать все вызовы, обычно пакет Costura.Fody без проблем все сам делает
попробуйте с Costura.Fody - отличная штука
Да, спасибо. Все перекомпилировал. Заработало
И правда, а где номера прохода? Ведь у меня же "#property tester_no_cache"!
Даже если и повторно, ну и что? В нижней таблице данные сортированы по убываню в колонке "бэктест". В верхней ячейке должен быть лучший результат из колонки "результат" верхней таблицы, также сортированной по убываню. А там что за цифра? Я даже не смог найти, откуда она взялась.
Если Вы гоняете генетическую оптимизацию, то никакие результаты из уже существующего кеша не используются для дальнейших расчётов. Они загружаются из кеша в список результатов оптимизации только для информационных целей. Потому что генетика сильно специфична и вместо десятков миллионов проходов для получения результата реально запускается две с половиной тысячи. И было бы глупо терять прошлые результаты.
Чтобы найти соответствующий форвардному результат из основного списка просто сделайте даблклик на строчке форвардного прохода. Этот трюк работает уже 10 лет.
Если Вы гоняете генетическую оптимизацию, то никакие результаты из уже существующего кеша не используются для дальнейших расчётов. Они загружаются из кеша в список результатов оптимизации только для информационных целей. Потому что генетика сильно специфична и вместо десятков миллионов проходов для получения результата реально запускается две с половиной тысячи. И было бы глупо терять прошлые результаты.
Зачем же тогда tester_no_cache?
стабильная версия 5 билд 2340 компиляция проходит с DatabaseImport
а выполнение сразу выдает сообщение MQL5 'DOMcopy.ex5' has newer unsupported version, please update your client terminal
Зачем же тогда tester_no_cache?
#property tester_no_cache означает, что при оптимизации не проверяется наличие в кеш-файле уже посчитанного ранее прохода с такими же параметрами.
При генетической оптимизации наличие в кеш-файле не проверяется всегда, независимо от отсутствия или наличия этого свойства.
В документации примерно это и написано
tester_no_cache
string
Тестер стратегий при выполнении оптимизации сохраняет все результаты выполненных проходов в кеш оптимизации, в котором для каждого набора входных параметров сохраняется результат тестирования. Это позволяет при повторной оптимизации на тех же параметрах брать готовые результаты без повторного вычисления и затрат времени.
Но для некоторых задач – например, при математических вычислениях – может потребоваться проводить расчеты независимо от наличия готовых результатов в кеше оптимизации. В этом случае в файл необходимо включить свойство tester_no_cache. При этом сами результаты тестирования все равно будут сохраняться в кеше, чтобы можно было в тестере стратегий посмотреть все данные по выполненным проходам.