В MetaEditor встроен отладчик — инструмент, который позволяет проверить работу программы по шагам (по отдельным функциям). Вы расставляете в коде программы точки останова — места, в которых исполнение программы должно быть приостановлено. Затем запускаете программу на обычном графике или в тестере стратегий. Как только исполнение программы дойдет до точки останова, оно будет прервано. Вы сможете посмотреть значения вычисленных переменных, а затем продолжить исполнение программы вручную по шагам, проверяя алгоритм работы.
Перед началом отладки задайте ее общие параметры в настройках MetaEditor. Вы можете указать символ и период графика, на котором будет происходить отладка приложений. Такой график будет временно создаваться каждый раз при начале отладке и удаляться сразу после ее завершения.
К графику, создаваемому для отладки, применяется шаблон "debug.tpl", расположенный в папке /profiles/templates торговой платформы. |
Точка останова — это команда, срабатывающая при переходе исполнения программы к указанной строке, и останавливающая ее выполнение в этом месте. Точки останова позволяют исследовать поведение программы в указанном участке кода: просмотреть значения переменных, стек функций. В дальнейшем процесс отладки может быть возобновлен или прекращен.
Перед запуском отладки установите хотя бы одну точку останова в коде программы. Для этого дважды щелкните мышью на сером поле слева от строки с кодом. Также вы можете установить курсор в строку и нажать " Переключить точку останова" в меню "Отладка" или "F9". Выключение точек останова происходит таким же образом.
Чтобы быстро перейти к точке, в которой остановлено исполнение программы, дважды нажмите на функцию в окне просмотра стека вызовов. Также через контекстное меню этого окна можно перейти к просмотру списка всех точек останова в отлаживаемой программе:
К любой из точек также можно перейти двойным кликом на ней.
Для запуска отладки откройте основной файл программы или проект. Отладку можно производить в двух режимах:
Как только исполнение программы в режиме отладки дойдет до строки с точкой останова, оно будет прервано. Строка, на которой остановилось выполнение, будет помечена иконкой . Также в окне "Инструменты" появится вкладка "Отладка". В левой ее части будет показан стек вызова функции.
В процессе отладки можно отслеживать значения различных выражений (переменных), получаемых на текущем этапе исполнения программы. Для этого предназначена правая часть вкладки "Отладка" окна "Инструменты". Чтобы отслеживать значения выражения, добавьте его в наблюдаемые:
Вы также можете включить автоматическое отображение локальных переменных в списке наблюдения. Для этого выберите опцию "Локальные" в контекстном меню. Во время отладки по мере перехода по коду в список будут автоматически выводиться переменные из текущей области видимости.
В окне наблюдения за выражениями можно выполнять простые математические вычисления (сложение, вычитание, умножение и деление), а также просматривать значения в конкретных точках массива, например, указав запись A[3][4], где A — это название массива, а 3 и 4 — это позиции в его измерениях. При добавлении объектов в наблюдаемые выражения можно показать список их членов, указав в конце точку или нажав клавиши "Ctrl+Space":
Для просмотра содержимого массива или объекта дважды нажмите на него в окне наблюдения.
По умолчанию, целые числа отображаются в окне наблюдения в десятичном виде. Чтобы вывести значение в двоичном или шестнадцатеричном виде, в поле "Выражение" укажите через запятую модификатор b или x соответственно.
В стек вызовов заносится информация для возврата управления из подпрограмм (вложенных функций) в программу (основной обработчик события OnInit, OnTick и т.д.). В стеке вы можете посмотреть весь путь от возникновения события в торговой платформе до вызова конкретной функции.
Для каждой функции отображается следующая информация:
Для пошаговой отладки с просмотром стека вызовов используются команды меню "Отладка" или панели инструментов "Стандартная":
Команды пошаговой отладки можно использовать только после приостановки выполнения программы в режиме отладки:
Наступление событий в торговой платформе продолжается, даже когда программа находится в точке останова. Все наступившие события устанавливаются в очередь, и их обработка экспертом будет продолжена после выхода из кода текущего обработчика события. |
Остановка выполнения программы во время отладки происходит автоматически, как только оно доходит до строки, в которой установлена точка останова. Также отладкой можно управлять вручную:
|
Отладка торговых роботов и технических индикаторов может быть запущена не только на ценовых данных, обновляющихся в режиме реального времени, но и на исторических. Работу программы можно проверить на интересующем участке истории, не дожидаясь определенных торговых событий в режиме реального времени.
Отладка на исторических данных происходит в режиме визуального тестирования в тестере стратегий. Программа запускается на графике, который строится по смоделированной в тестере последовательности тиков или по накопленной истории тиков (полученных от брокера).
Чтобы запустить отладку на истории, задайте параметры запуска тестирования в настройках MetaEditor.
Расставьте точки останова в коде программы, а затем запустите отладку на исторических данных.
После этого будет запущено визуальное тестирование и начнется процесс отладки.