Все никак не могу дописать продолжение инструкции, поэтому пока просто выложу получившийся модуль.
Итак, модуль
RoundTrip написан на SDK
для QuikOredersDOM. Он предназначен для измерения
раундтрипа (проверки скорости канала связи с брокером). Программа отправляет заявку (не по рынку, чтобы она не исполнялась), дожидается подтверждения о выставлении (проверяет, чтобы статус стал
OS_ACTIVE,
OS_EXECUTED или
OS_REJECTED), потом через таймаут снимает ее и дожидается подтверждения о снятии (чтобы статус стал
OS_CANCELED,
OS_EXECUTED или
OS_REJECTED).
Раундтрипы особенно важны для скальперов и интрадей-трейдеров, когда скорость выставления заявки — чуть ли не главный козырь стратегии.
Как запустить модуль RoundTrip?
Запустить его очень просто (как, в принципе, и любой модуль в QuikOrdersDOM). Для этого его надо, в первую очередь,
скачать, положить в папку QuikOrdersDOM/lib. Потом в запущенном приводе перейти на вкладку "Настройки" и выбрать dll в поле "Библиотека автотрейдинга". Кто одновременно запускает несколько разных модулей — пользуйтесь менеджером задач для QuikOrdersDOM (
модуль TaskManager).
Настройки работы программы RoundTrip, которые можно задать через интерфейс
Максимальное количество транзакций
Чем большим будет количество транзакций, на котором основываются средние значения, тем точнее будут измерения. В течение дня раундтрип может различаться. Указывайте четное число.
Задержка между транзакциями
Настройка не требует особых пояснений. Это время, через которое будет сниматься выставленная заявка. После снятия заявки через это же время будет выставлена новая (если по счетчику транзакций это еще можно будет делать).
Если вы хотите протестировать раундтрипы в течение всего дня, то задержку можно поставить побольше.
Еще параметры:
- инструмент, по которому мы будем выставлять заявки (его название и класс);
- тип сделки (покупка или продажа);
- отступ от центральной цены, чтобы выставлять заявки (нам же не надо, чтобы они исполнялись).
После того, как тестирование завершится, можно будет вывести отчет на экран, нажав кнопку "Отчет". Автоматически этот отчет будет сохранен в файл в той же папке, в которой лежит dll модуля. Название файлов с отчетами будет формироваться по шаблону:
roundtrip_report_ddmmyy_hhmmss.txt
Где ddmmyy_hhmmss — время окончания тестирования.
Так вы сможете вернуться к результатам проведения тестов в любое время.
Вот пример. Запускаю модуль на 10 транзакций. Выставляются и снимаются заявки, всего 5 штук.
Результат:
Всего сделано 10 транзакций: выставлений заявок = 5, снятий заявок = 5
Максимальный roundtrip = 2468
Среднее время выставления заявки = 1281,40
Среднее время снятия заявки = 1355,80
Общее среднее время = 1318,60
Время в результатах указывается в мс.
Ссылка для скачивания модуля RoundTrip.Чтобы уменьшить погрешность измерений, можно на испытательный период поставить в настройках QuikOrdersDOM параметр
CycleInterval поменьше (по умолчанию он, вроде, равен 500).
// Интервал опроса памяти QUIK в мс (очень маленькие интервалы сильно увеличивают загрузку процессора)
CycleInterval=50
Очень интересно было бы посмотреть на результаты тестов, запущенных на квиках разных брокеров. Делитесь в комментариях (или в своих блогах, а потом оставляйте в комментах ссылку) :)
** Если меня кто-нибудь читает ;DDD___
Чтобы быть в курсе обновлений блога,
подпишитесь на RSS. Если материал оказался интересным — поделитесь им с друзьями :)