Друзья, у кого есть опыт решения подобных головоломок?
Автовалидатор выдаёт такой отчет. Ссылка tester takes too long time ведёт на список кодов ошибок, состоящий примерно из 150 пунктов. Как выяснить суть ошибки, если конкретный код её нам почему-то авторы отчета решили не показывать? Рекомендации любимой статьи модераторов учтены вроде бы полностью, перед отправкой на автовалидацию все характерные тесты были пройдены без ошибок.
P.S. Неужели авторам автовалидатора трудно включить в отчет хотя бы исходные данные, с которыми выполнялось тестирование (интервал тестирования, депозит, плечо и т.п)?
Если трудно, то возле сообщения об ошибках можно просто давать ссылки для скачивания полного лога этапа тестирования, на котором была найдена ошибка. Пусть программист его сам анализирует. Но не совсем правильно, чтобы анализ ошибок в программе сводился к гаданию на кофейной гуще.
Это не оптимизированный код
В коде также могут использоваться конструкции
for(int i=0; i<OrderTotal(); i++) int OT = OrderTotal(); for(int i=0; i<OT; i++)
Много не нужных циклов и т.д
Друзья, у кого есть опыт решения подобных головоломок?
Автовалидатор выдаёт такой отчет. Ссылка tester takes too long time ведёт на список кодов ошибок, состоящий примерно из 150 пунктов. Как выяснить суть ошибки, если конкретный код её нам почему-то авторы отчета решили не показывать? Рекомендации любимой статьи модераторов учтены вроде бы полностью, перед отправкой на автовалидацию все характерные тесты были пройдены без ошибок.
P.S. Неужели авторам автовалидатора трудно включить в отчет хотя бы исходные данные, с которыми выполнялось тестирование (интервал тестирования, депозит, плечо и т.п)?
Если трудно, то возле сообщения об ошибках можно просто давать ссылки для скачивания полного лога этапа тестирования, на котором была найдена ошибка. Пусть программист его сам анализирует. Но не совсем правильно, чтобы анализ ошибок в программе сводился к гаданию на кофейной гуще.
сам недавно бился
ищите, штудируйте код
что сильнее всего тормозит тестирование - обилие глобальных переменных и их пересчёт на каждом тике, открытие/чтение/запись файла на каждом тике, обилие графических объектов, пересчёт/перевызов индикторов на каждом тике, какой-нибудь безразмерный цикл с постоянным перераспределением памяти.
Степень влияния на скорость теста каждого фактора может быть разная - профилирование вам в помощь
Друзья, у кого есть опыт решения подобных головоломок?
Автовалидатор выдаёт такой отчет. Ссылка tester takes too long time ведёт на список кодов ошибок, состоящий примерно из 150 пунктов. Как выяснить суть ошибки, если конкретный код её нам почему-то авторы отчета решили не показывать? Рекомендации любимой статьи модераторов учтены вроде бы полностью, перед отправкой на автовалидацию все характерные тесты были пройдены без ошибок.
P.S. Неужели авторам автовалидатора трудно включить в отчет хотя бы исходные данные, с которыми выполнялось тестирование (интервал тестирования, депозит, плечо и т.п)?
Если трудно, то возле сообщения об ошибках можно просто давать ссылки для скачивания полного лога этапа тестирования, на котором была найдена ошибка. Пусть программист его сам анализирует. Но не совсем правильно, чтобы анализ ошибок в программе сводился к гаданию на кофейной гуще.
Кстати, вообще было-бы прилично включить "автовалидатор" (или хотя-бы некие его части) в поставку..и вопросов было-бы меньше и нагрузка на сервер валидации снизилась
что сильнее всего тормозит тестирование - обилие глобальных переменных и их пересчёт на каждом тике, открытие/чтение/запись файла на каждом тике, обилие графических объектов, пересчёт/перевызов индикторов на каждом тике, какой-нибудь безразмерный цикл с постоянным перераспределением памяти.
Степень влияния на скорость теста каждого фактора может быть разная - профилирование вам в помощь
Профилирование- штука хорошая. Оптимизация кода с её помощью получается хорошо. Только вот, в данном примере это ничего не даёт. И наверное, не даст. Очевидно, проблема не в скорости работы программы, а где-то она подвисает при каких-то исходных данных (которые секрет авторов автовалидатора). Это подтверждает то, что при автовалидации на EURUSD H1 тест проходит нормально, с 32 сделками, а вот на NZDUSD H1 почему то возникает проблема с временем.
Если бы как-то узнать эти исходные данные, да смоделировать ситуацию с этой ошибкой. Тогда можно будет легко понять в какое место кода смотреть. А так методом тыка никак не удаётся создать условия для возникновения ошибки.
Благодарю всех, кто принял участие в дискуссии.
К сожалению, моя задача не решена, но это частный случай общей беды. Проблема скудности сообщений автовалидатора в какой-то степени касается всех, кто пишет программы для этого сайта. Она поднималась уже не раз. Но воз и ныне там. Прошу всех коллег по несчастью по-возможности толкать администрацию этого сервиса, чтобы обратили внимание на данную проблему. Хорошим аргументом будет не только облегчение работы создателям продуктов, а повышение скорости наполнения маркета новыми продуктами и коррелирующий с этим доход, если конечно это администрации нужно.
Что-то у Вас там хавает время на расчеты. Прогоните профилированием и посмотрите.
Из ОнТика уберите все по максимуму, все расчеты перенесите в функции, 90% что там собака порыла.
Раньше с этим тоже боролся - несколько недель даже, все голову ломал.
Теперь в ОнТике только самый нужный минимум и все ОК!
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Друзья, у кого есть опыт решения подобных головоломок?
Автовалидатор выдаёт такой отчет. Ссылка tester takes too long time ведёт на список кодов ошибок, состоящий примерно из 150 пунктов. Как выяснить суть ошибки, если конкретный код её нам почему-то авторы отчета решили не показывать? Рекомендации любимой статьи модераторов учтены вроде бы полностью, перед отправкой на автовалидацию все характерные тесты были пройдены без ошибок.
P.S. Неужели авторам автовалидатора трудно включить в отчет хотя бы исходные данные, с которыми выполнялось тестирование (интервал тестирования, депозит, плечо и т.п)?
Если трудно, то возле сообщения об ошибках можно просто давать ссылки для скачивания полного лога этапа тестирования, на котором была найдена ошибка. Пусть программист его сам анализирует. Но не совсем правильно, чтобы анализ ошибок в программе сводился к гаданию на кофейной гуще.