Взялся я за изучение MQL5. Читаю статьи. Как прилежный студент в точности следую написанному. И натыкаюсь на очень подлые грабли с отладкой кода...
Я так понимаю, что отладка работает только на real-time дате. Если в выходные тиков нет, то OnTick() работать не будет. OnTimer() тоже не помощник, т.к. код-то он запустит, но данные получит только текущие, и они не изменятся до понедельника, т.е. ни сделку, ни совпадение условий в режиме отладки не проверить... Даже в будни это проблема - мне может придётся неделю ждать пока условие сработает, т.е. отладку его выполнения и последующих операций осуществить невозможно.
Или я что-то упустил и всё-таки можно гонять отладку на исторической дате?
Почему же не проведешь? Все дело в неправильном методе работы с таймером и тестером стратегий.
Все что зависит от выходных дней и реализовано при помощи таймера (в основном это вопросы касающиеся оптимизации и анализа данных) можно отследить на прямую в дебагере, а все остальное с легкостью и даже на выходных выловится в тестере стратегий (при соответствующем подходе).
Вся работа по "дебагингу" в тестере начитается с того что в эксперт добавляется соответствующий параметр с типом bool, сообщающий о том, что работа ведется в режиме ОТЛОВА ЖУКОВ и МАЛЕНЬКОЙ переменной... :)
Если работа ведется в режиме тестирования то основываясь на данном параметре эксперт с легкостью поймет что ему нужно делать.
PS
Было бы еще лучше если разработчики предусмотрят возможность отладки экспертов во время тестирования (по крайней мере программным способом), добавив в тестер еще одну галку - "дебагинг"...
Т.е. я всё понял правильно, и полноценная отладка средствами встроенного отладчика невозможна. Остаются только прежние ухищрения в стиле MQL4 с принтами в тестере, только хуже, т.к. нет пошагового теста. Очень жаль.
Вроде есть программны способ работы сдебагером (я пока с ним не очень дружу), разработчики наверно смогут подсказать что и как сделать чтобы обойти такую проблему...
Также можно усложнить систему контроля и обработки ошибок в коде до максимума, думаю это должно сильно упростить жизнь...
Согласен с топикстартером (даже поднимал этот вопрос, но ветка не стала популярной и канула вниз) для многих трейдеров торгующих руками просто нет времени писать коды по будням, и единственное окно это выходные когда торгов нет они могут отдаться программированию своих стратегий.
В четвёрке был отработанный приём запуск советника в тестере в визуальном режиме, при том что в пятёре есть дебагер но он не заменяет полностью старый метод так как нет возможности запустить прогон именно на определённом событии. Мне к примеру нужно отловить исполнение пересечения машек и сколько мне ждать этого события в реалтайме??? хотя если дебагер доработать в этом направлении (в направлении запуска на исторических данных) тогда всё сростётся.
Отладчик будем обязательно дорабатывать.
Почему то верю, :о) не знаю почему доверительное лицо у вас.
Но вот еслиб хотябы включили визуальный режим в тестере то можно былоб хоть по старинке отлаживать,
а то ведь чемп не в январе а в октябре грубо говоря два месяца осталось.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Взялся я за изучение MQL5. Читаю статьи. Как прилежный студент в точности следую написанному. И натыкаюсь на очень подлые грабли с отладкой кода...
Я так понимаю, что отладка работает только на real-time дате. Если в выходные тиков нет, то OnTick() работать не будет. OnTimer() тоже не помощник, т.к. код-то он запустит, но данные получит только текущие, и они не изменятся до понедельника, т.е. ни сделку, ни совпадение условий в режиме отладки не проверить... Даже в будни это проблема - мне может придётся неделю ждать пока условие сработает, т.е. отладку его выполнения и последующих операций осуществить невозможно.
Или я что-то упустил и всё-таки можно гонять отладку на исторической дате?