Скачать MetaTrader 5

Отладка кода в выходные

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
timbo
3139
timbo  

Взялся я за изучение MQL5. Читаю статьи. Как прилежный студент в точности следую написанному. И натыкаюсь на очень подлые грабли с отладкой кода...

Я так понимаю, что отладка работает только на real-time дате. Если в выходные тиков нет, то OnTick() работать не будет. OnTimer() тоже не помощник, т.к. код-то он запустит, но данные получит только текущие, и они не изменятся до понедельника, т.е. ни сделку, ни совпадение условий в режиме отладки не проверить... Даже в будни это проблема - мне может придётся неделю ждать пока условие сработает, т.е. отладку его выполнения и последующих операций осуществить невозможно. 

Или я что-то упустил и всё-таки можно гонять отладку на исторической дате?

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о запущенной MQL5-программе
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о запущенной MQL5-программе
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация о запущенной MQL5-программе - Документация по MQL5
Vladimir Batrudinov
4937
Vladimir Batrudinov  
timbo:

Взялся я за изучение MQL5. Читаю статьи. Как прилежный студент в точности следую написанному. И натыкаюсь на очень подлые грабли с отладкой кода...

Я так понимаю, что отладка работает только на real-time дате. Если в выходные тиков нет, то OnTick() работать не будет. OnTimer() тоже не помощник, т.к. код-то он запустит, но данные получит только текущие, и они не изменятся до понедельника, т.е. ни сделку, ни совпадение условий в режиме отладки не проверить... Даже в будни это проблема - мне может придётся неделю ждать пока условие сработает, т.е. отладку его выполнения и последующих операций осуществить невозможно. 

Или я что-то упустил и всё-таки можно гонять отладку на исторической дате?

Почему же не проведешь? Все дело в неправильном методе работы с таймером и тестером стратегий.

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

Вся работа по "дебагингу" в тестере начитается с того что в эксперт добавляется соответствующий параметр с типом bool, сообщающий о том, что работа ведется в режиме ОТЛОВА ЖУКОВ и МАЛЕНЬКОЙ переменной... :)

Если работа ведется в режиме тестирования то основываясь на данном параметре эксперт с легкостью поймет что ему нужно делать.

PS

Было бы еще лучше если разработчики предусмотрят возможность отладки экспертов во время тестирования (по крайней мере программным способом), добавив в тестер еще одну галку  - "дебагинг"...


timbo
3139
timbo  
Т.е. я всё понял правильно, и полноценная отладка средствами встроенного отладчика невозможна. Остаются только прежние ухищрения в стиле MQL4 с принтами в тестере, только хуже, т.к. нет пошагового теста. Очень жаль.
Vladimir Batrudinov
4937
Vladimir Batrudinov  
timbo:
Т.е. я всё понял правильно, и полноценная отладка средствами встроенного отладчика невозможна. Остаются только прежние ухищрения в стиле MQL4 с принтами в тестере, только хуже, т.к. нет пошагового теста. Очень жаль.

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

Также можно усложнить систему контроля и обработки ошибок в коде до максимума, думаю это должно сильно упростить жизнь...

Nikolay Demko
12560
Nikolay Demko  

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

В четвёрке был отработанный приём запуск советника в тестере в визуальном режиме, при том что в пятёре есть дебагер но он не заменяет полностью старый метод так как нет возможности запустить прогон именно на определённом событии. Мне к примеру нужно отловить исполнение пересечения машек и сколько мне ждать этого события в реалтайме??? хотя если дебагер доработать в этом направлении (в направлении запуска на исторических данных) тогда всё сростётся.


MetaQuotes
Админ
25292
Renat Fatkhullin  
Отладчик будем обязательно дорабатывать.

Nikolay Demko
12560
Nikolay Demko  
Renat:
Отладчик будем обязательно дорабатывать.

Почему то верю, :о) не знаю почему доверительное лицо у вас.

Но вот еслиб хотябы включили визуальный режим в тестере то можно былоб хоть по старинке отлаживать,

а то ведь чемп не в январе а в октябре грубо говоря два месяца осталось.

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий