Ошибка валидации при релизе торгового робота в маркет. - страница 4

 

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

Сегодня валидатор начал выдавать сообщение:

Проверял на трёх экспертах, 10 сек и бракует. В чём может быть дело, Может у вас что то с ПО?!

P.S. Поставил для проверки в OnTick() первой строчкой принт:

Не может быть пустым отчёт тестера!!! У меня логи забиты:


 
Andrey Kaunov:

Сегодня валидатор начал выдавать сообщение:

Было, прошло. Ошибка валидатора.

 
Andrey Kaunov:

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

Сегодня валидатор начал выдавать сообщение:

Спасибо за сообщение. Исправлено.

 

Да, заработал Валидатор. Но теперь другая неведомая дичь. Валидатор ранее выдавал такой результат

При этом на моём тестере идёт всё нормально. Поставил для проверки костыль в код (деление на ноль):


И получил:

Получается что во время теста валидатор всё таки выходит на функцию открытия ордеров. Совершенно непонятно, почему выдаёт: no trading operations

 
Andrey Kaunov:

Да, заработал Валидатор. Но теперь другая неведомая дичь. Валидатор ранее выдавал такой результат

При этом на моём тестере идёт всё нормально. Поставил для проверки костыль в код (деление на ноль):


И получил:

Получается что во время теста валидатор всё таки выходит на функцию открытия ордеров. Совершенно непонятно, почему выдаёт: no trading operations

Скорее всего, возникает ошибка при отправке ордера и в логе печатается что-то с GetLastError. Было бы здорово, чтобы в MQL добавили функцию типа Throw(code), которая приводит к остановке аналогично делению на ноль, но возвращает код, тогда можно было бы написать Throw(GetLastError()), чтобы в логе получить подсказку. Вот есть, между прочим, функция TerminalClose(retcode) - можно попробовать её использовать, но я подозреваю, что она просто отключена в автотестере.

 

Полностью согласен.

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

Подумайте над этим пожалуйста.

 
Andrey Kaunov:

Полностью согласен.

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

Подумайте над этим пожалуйста.

Скорее, появятся способы обхода (сокрытия) конкретной ошибки, а не правильного составления логики работы с торговыми функциями. При правильном учёте и обработке "идиотских" входных параметров, или неверного для торговли расчёта торговых условий, никаких ошибок валидации быть не должно.

 

Да тут не ошибка, я вообще не понимаю что за дичь. Ставлю костыль (деление на ноль) перед торговой функцией:

Он срабатывает:

Убираю его, выдаёт уже неизменное 

no trading operations.

Я не понимаю, что мешает валидатору сделать этот OrderSend(). Ведь если он до него доходит, должны быть ошибки выставления (хотя я их все пофиксил) 130, 131, 134, ..., а не "no trading operations". Осталось только прописать в OnInit() выставление какой нибудь отложки где нибудь далеко чтобы не сработала, не знаю уже как бороться с этим.

 
Andrey Kaunov:

Да тут не ошибка, я вообще не понимаю что за дичь. Ставлю костыль (деление на ноль) перед торговой функцией:

Он срабатывает:

Убираю его, выдаёт уже неизменное 

no trading operations.

Я не понимаю, что мешает валидатору сделать этот OrderSend(). Ведь если он до него доходит, должны быть ошибки выставления (хотя я их все пофиксил) 130, 131, 134, ..., а не "no trading operations". Осталось только прописать в OnInit() выставление какой нибудь отложки где нибудь далеко чтобы не сработала, не знаю уже как бороться с этим.

Добрый день. Попробуйте добавить функцию о которой я тут написал ранее.
 
Скорей всего дело в ней.
Причина обращения: