Да что ж это творится то???

 

Это в очередной раз о тестере/оптимизаторе...

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

Запустил одиночное тестирование...

Да как так? Откуда эта нелепица берётся то?

 

А вы прогарантировали неизменность логики своего кода в обоих случаях?

Не в смысле «я же код не менял», а именно гарантии неизменности поведения на техническом и логическом уровнях робота.

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

Крик «я тут что-то написал, не разбирался, не описывал детали, просто хочу выразить негодование, так как считаю что мою неизвестно как работающую программу кто-то другой как-то не так отработал» бесперспективен.

 
я раньше когда был молодой и зелёный тоже гонял оптимизатор, сейчас уже несколько лет не запускал оптимизацию, просто тестера хватает чтоб понять, а оптимизатор кормит нас иллюзиями
 
Aleksey Semenov:
я раньше когда был молодой и зелёный тоже гонял оптимизатор, сейчас уже несколько лет не запускал оптимизацию, просто тестера хватает чтоб понять, а оптимизатор кормит нас иллюзиями

У оптимизатора задача четкая: проверить поле вариантов и выдать набор параметров под заданную трейдером функцию.

Это техническая задача и он с нею справлялся и справляется великолепно.

За качеством и робастостью роботов надо следить.

 
Renat Fatkhullin:

У оптимизатора задача четкая: проверить поле вариантов и выдать набор параметров под заданную трейдером функцию.

Это техническая задача и он с нею справлялся и справляется великолепно.

За качеством и робастостью роботов надо следить.

Удалил полностью все кэши. Повторил оптимизация - тест. Результат тот же. Явные расхождения.

Я, конечно, не спец, но я просто не понимаю, почему с параметрами 3, 5, 20 в оптимизаторе результат 100, а при тесте с теми же параметрами результат -20....

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

Renat Fatkhullin:

А вы прогарантировали неизменность логики своего кода в обоих случаях?

Не в смысле «я же код не менял», а именно гарантии неизменности поведения на техническом и логическом уровнях робота.

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

Крик «я тут что-то написал, не разбирался, не описывал детали, просто хочу выразить негодование, так как считаю что мою неизвестно как работающую программу кто-то другой как-то не так отработал» бесперспективен.

Посоветуйте, как определить эту "изменчивость" между оптимизацией и тестом?

Логи выложу уже завтра. Почищу всё и сделаю оптимизацию и тест. Помню Ваш урок ))) Буду предельно внимателен.


А пока, всех с Великой Победой !!!

Пойду отмечать )))

 
Сергей Таболин:

Удалил полностью все кэши. Повторил оптимизация - тест. Результат тот же. Явные расхождения.

Я, конечно, не спец, но я просто не понимаю, почему с параметрами 3, 5, 20 в оптимизаторе результат 100, а при тесте с теми же параметрами результат -20....

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

Посоветуйте, как определить эту "изменчивость" между оптимизацией и тестом?

Логи выложу уже завтра. Почищу всё и сделаю оптимизацию и тест. Помню Ваш урок ))) Буду предельно внимателен.


А пока, всех с Великой Победой !!!

Пойду отмечать )))

Есть небольшая ветка в англ части, где один пользователь спрашивает о том же.
У него оптимизация и бектест на всех его советниках соответствуют (все в порядке), а один советник - как у вас.
Он привел результат бектеста - можете посмотреть (я там на вскидку дал ему идею - почему разница).

Код он не привел, но, понятно, что причина в логике (в коде) его советника (потому что, как он заявил - со всеми остальными советниками у него таких проблем нет - см его последний пост в ветке): https://www.mql5.com/en/forum/338047
 
Достаточно забыть проинициализировать что-нибудь в коде, и будет разница. Проверяйте код.
 
Andrey Barinov:
Достаточно забыть проинициализировать что-нибудь в коде, и будет разница. Проверяйте код.

давно еще запускал тестовые варианты, действительно был мусор в переменных, разработчик так и не победил это на старте своими силами?? ведь в середине кода если и может возникать мусор , то он ведь должен быть всегда одинаковый?

я не проф. программист, это вопрос, сам принцип низкоуровневого программирования не знаю

 
Sergey Golubev:
Есть небольшая ветка в англ части, где один пользователь спрашивает о том же.
У него оптимизация и бектест на всех его советниках соответствуют (все в порядке), а один советник - как у вас.
Он привел результат бектеста - можете посмотреть (я там на вскидку дал ему идею - почему разница).

Код он не привел, но, понятно, что причина в логике (в коде) его советника (потому что, как он заявил - со всеми остальными советниками у него таких проблем нет - см его последний пост в ветке): https://www.mql5.com/en/forum/338047

Всё то же, что и у меня )))

Andrey Barinov:
Достаточно забыть проинициализировать что-нибудь в коде, и будет разница. Проверяйте код.

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

Fast235:

давно еще запускал тестовые варианты, действительно был мусор в переменных, разработчик так и не победил это на старте своими силами?? ведь в середине кода если и может возникать мусор , то он ведь должен быть всегда одинаковый?

я не проф. программист, это вопрос

Вот и я о том же. И там, и там должно быть одинаково. Даже если где то есть мой косяк, то он должен быть везде. А так получается, что каким-то волшебным образом этот косяк (мой) исправляется. Только вот совершенно не понятно где? То ли в оптимизаторе, то ли в тестере....


Отвлёкся на минуточку от праздничного стола )))))))))))

 
Сергей Таболин:

Всё то же, что и у меня )))

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

Вот и я о том же. И там, и там должно быть одинаково. Даже если где то есть мой косяк, то он должен быть везде. А так получается, что каким-то волшебным образом этот косяк (мой) исправляется. Только вот совершенно не понятно где? То ли в оптимизаторе, то ли в тестере....


Отвлёкся на минуточку от праздничного стола )))))))))))

я именно о переменных, это когда запускаешь скрипт, а в них вместо 0, данные от прошлого запуска или что-то в роде того, не помню уже, лет 5 и больше назад это было

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

 
Сергей Таболин:

Всё то же, что и у меня )))

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

...

Я там в ветке тому товарищу дал идею почему у него в этом советнике разница.
Ведь когда бектест заканчивается (в момент окончания бектеста), то все открытые позиции принудительно закрываются (только в тестере).
Если бы он просто торговал - то они бы не закрылись в тот момент ..

Поэтому, тут ему -

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