Тестирование работоспособности робота
Периодически встаёт задача протестировать корректность работы робота после
добавления нового кода. Естественно делать это на реальных торгах глупо.
Поэтому в робота добавляю демо-режим.
Суть этого режима в том, данные подаются на обработку не из терминала,
а из заранее подготовленного файла. Например с реальными тиковыми данными
за прошлый день. Через таймер генерится событие, скажем через 200 миллисекунд,
забирается блок данных и подаётся под видом данных из терминала.
Таким образом решаются 2 задачи:
— тестирование нового кода на корректную работу;
— вычисление пиковой нагрузки на робота сделок в секунду, когда он в теории
может перестать успевать за рынком.
счёту, а лишь тест соответствия кода стратегии и отсутствия
ошибок в коде.
Запускал робота из под компилятора, чтобы ловить ошибки
во время торгов. Бывало довольно жестоко. Он по ошибке вошёл,
я в терминале руками закрыл, а он снова вошёл, а я не заметил. :)
Поэтому наличие возможности оттестировать вне рынка — это обязательно, тем более если Вы так себе программист,
чтобы на ходу понять в чём дело и за рынком следить.
только заявки выставляет в демо-терминал (эмуляцию)
это можно тестировать. А вот его отклики…
Например есть в коде события — изменение в таблице своих заявок,
изменение в таблице своих сделок
для обратной связи отслеживания выставления и исполнения заявок
полного, частичного или вообще отказа. Эти ответы выдаёт биржа
и как поведёт себя связка робот-терминал при разной нагрузке
пока не знаю как эмулировать.