Результат оптимизации != Одиночному тесту по результатам оптимизации. - страница 3

 
Ivan Negreshniy:

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


В журналах никаких упоминаний об ошибках нет.

 

Здравствуйте.

Разобрались с непонятками?

Сегодня только обратил внимание: делаю полную оптимизацию, то есть полный перебор параметров, потому прогоняю тест. Визуализатор теста не открывается, хотя галка стоит, однако, все инпуты из единичного прогона встают на место. Результат просто ноль сделок. Если после того, как инпуты встают на место запускаем ручками визуальный прогон с ними, то результаты не совпадают примерно на двести процентов :)) было +6к прибыли, а в тестере -7.5к убытков.... Вся графика вырезана через флаг проверки режима работы тестер, оптимизатор и т.п.т.д. все кроме режима трейдинга. Что за хз... Явно косяк в оптимизаторе, т.к. визуально тест когда проходит видишь верную логику работы еа.

Есть у кого-нибудь, какие-нибудь идеи, куда надо копать? Билд 2690

 
Fyodor Korotkov:

Здравствуйте.

Разобрались с непонятками?

Привет! Не расстраивайтесь - вы не одиноки. На форуме МИНИМУМ ТРИ ветки по этому вопросу (не считая ветки "баги и вопросы"), в которых разные люди описывают эту же проблему. Сегодня и я к вам присоединился.

И тоже в полном шоке. ИМХО что бы и как ни подавать "туда-сюда", результаты отработки одного и того же кода с одними и теми же параметрами должны быть идентичны хотя бы до десятичной точки - ан нет. И никто из техподдержки ни гу-гу...

Боюсь, придется искать другую платформу для тестов, хотя и не хотелось бы - привык уже к МТ5.

Но привычка привычкой - а как верить таким фокусам? Как это потом аукнется "в бою"?

 
Есть две основные причины несовпадения результатов: дозагрузка истории в момент тестирования и использование неинициализированных переменных(массивов, структур)
 

Есть много возможностей в коде роботов, приводящих к разнице в прогонах. Как то странно считать код робота априори безгрешным.

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

Если этого нет, то никакой реакции от нас не будет. Вы собрались на словах и эмоциях проблемы решать?

 
Aliaksandr Hryshyn:
использование неинициализированных переменных(массивов, структур)
Да, и на это я когда-то нарывался. Некоторые вещи инициализируются при загрузке эксперта на одиночном тесте, но не инициализируются, когда эксперт не выгружается, при последовательной оптимизации.
 
Renat Fatkhullin:

Есть много возможностей в коде роботов, приводящих к разнице в прогонах. Как то странно считать код робота априори безгрешным.

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

Если этого нет, то никакой реакции от нас не будет. Вы собрались на словах и эмоциях проблемы решать?

Никаких эмоций, только факты.

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

Если они не совпадают - желательно было бы хотя бы вывести сообщения об ошибках.

Логи, отчеты, данные для воспроизведения - пожалуйста, всё, кроме открытого кода. Хотя и "закрытый", конечно, не хотелось бы светить, но если без этого никак - предоставлю. Скажите какие и куда.

Документация по MQL5: Константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции
Документация по MQL5: Константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции
  • www.mql5.com
Ошибки компиляции - Коды ошибок и предупреждений - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

По опыту - основной причиной такого "косяка" может быть запись/чтение информации в файл или БД.

https://www.mql5.com/ru/forum/353588

МТ5 :: Вопрос по работе оптимизатора
МТ5 :: Вопрос по работе оптимизатора
  • 2020.10.16
  • www.mql5.com
Логика советника: при условии А - сохранить некоторые данные в файл. при условии Б - считать сохранённые данные...
 
Renat Fatkhullin:

Как то странно считать код робота априори безгрешным.

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

Это режим визуализации. В режиме открытия графика этого нет.

ИМХО такого не должно быть ни при каком коде.

Файлы:
 
Михалыч Трейдинг:

Никаких эмоций, только факты.

Вы точно понимаете слово "факты"?

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

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

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

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