Блог им. asytyi

Quik: отлавливаем заявки на скорость с помощью Lua и колбэков

    • 08 октября 2021, 22:15
    • |
    • FatCat
  • Еще

Строя автоматизированную торговлю на базе Квик, нет-нет да и столкнёшься с ситуацией, когда отправленная заявка исполняется совсем не так быстро как хотелось бы. Удивляться тут нечему, производительность квиковских серверов брокера не резиновая, на всплесках нагрузки могут изрядно подтупливать. Что с этим делать?
Запилить торговую систему через прямое подключение к бирже задача совсем другого уровня сложности по сравнению с демократичным Квиком со встроенным языком Lua. Что же, будем выкручиваться с имеющимся инструментарием.

Для получения информации о выставлении или перестановке заявки можно использовать колбэки OnTransReply (со значением поля status = 3) или OnOrder. Сильно ли они отличаются между собой по скорости? Для ответа на этот вопрос я прикрутил логгирование задержек срабатывания этих колбэков от момента вызова функции отправки заявки на сервер до срабатывания соответствующего колбэка. Логгирование выполнялось на дельтахеджере и опционном котировщике. Данные собирались в течение месяца не первом сервере в Открывашке, сам Квик работал на VDS-хостинге.

Результаты замера можно посмотреть на графике. Каждая точка — это одна заявка на выставление, перестановку или снятие приказа в координатах задержек OnTransReply и OnOrder.
Quik: отлавливаем заявки на скорость с помощью Lua и колбэков


Что же, OnTransReply вполне достоин более блестящей медальки по сравнению с OnOrder :

  1. В диапазоне задержек срабатывания OnOrder до одной секунды OnTransReply показывает существенно более быструю реакцию
  2. С увеличением задержки отличие становится не столь существенным, тупят оба колбэка
  3. Лучик света — один OnTransReply, прилетевший на порядки быстрее залипшего почти на 20 секунд OnOrder
  4. Несколько занятных глитчей, когда OnOrder прилетал быстрее OnTransReply
 
2.7К | ★6
11 комментариев
А какой конфиг вдски?
Спасибо.
avatar
GoGo, 2x2.2ГГц, 2Гб RAM со средней загрузкой процессора в районе 3%
avatar
Когда-то я из Питера получал в Церих-кэпитале срабатывание OnTransReply — 100 мсек.
Но никакой медали OnTransReply не заслуживает, т.к. он всего лишь сообщает, что заявка отвергнута брокером или принята (например, поставлена в очередь на бирже).
А сигнал OnOrder по хэлпу Квика: «Функция вызывается терминалом QUIK при получении новой заявки или при изменении параметров существующей заявки» — это ни о чём. Внутренние дела между клиентом и брокером.
А вот сигнал OnTrade даёт полную информацию о выполнении заявки на бирже.
В Церихе я получал срабатывание OnTrade через 200 мсек после подачи заявки.
avatar
Rostislav Kudryashov, OnTransReply со статусом 3 уже содержит в order_num биржевой 19-ти значный номер заявки. Т.е. до биржи заявка долетела 
avatar
FatCat, Квик не даст снять заявку пока она не попадет в OnOrder() с нужным статусом. С перестановкой сработает?
avatar

Браво! Гениальный кот, который еще и переводится с английского, как «денежный мешок». Вы на верном пути, сэр! Мы тоже в Qlua...

Всем котам — срочно переходить на АЛГО-ТОРГОВЛЮ !!

avatar
Манул Кот, шлю тёплый кошачий привет! 
avatar
А гистограмму можно?
Пункт 3 — это крайняя правая точка? Подписи на осях перепутаны?

Как заказ данных делается — руками в настройках инструменты и параметры выбираются или по открытым таблицам? По идее куча лишнего может приходить, можно попробовать уменьшить поток ненужной инфы.
avatar
Максим, не, оси не перепутаны. У меня заказан минимум необходимых данных: несколько фьючей и несколько опционных серий. В плане быстродействия улучшение почувствовал только после отключения трансляции тиковых данных.



avatar
FatCat, ага, спасибо. Так а какие тогда параметры у крайней правой точки? Выглядит, будто OnTransReply=~20s и OnOrder=~0.1s

Другие сервера не пробовали? Я что-то разницы не заметил.
avatar
Максим, OnTransReply по красному пунктиру, OnOrder — по зелёному


avatar

Читайте на SMART-LAB:
Самолет лидер по объему ввода жилья в МО
Друзья, привет! Продолжаем делиться своими результатами. 🚀 По данным Главстройнадзора МО , мы стали лидером по объемам ввода  жилья в...
Фото
EUR/USD: Пан или пропал? Ретест треугольника ставит ультиматум
Европейская валюта, протестировав сопротивление 1.1918, повторно устремилась вниз для ретеста пробитой границы треугольника. На этот раз касание...
Фото
Вторичный рынок как часть оборотного цикла
Ресейл в Группе «МГКЛ» — это рабочий инструмент управления оборотом, а не продажа того, что не выкупили. 📦 Сейчас клиент, приходя в...
Фото
Россети Ленэнерго. Отчет об исполнении инвестпрограммы за Q4 2025г. Опасения оправдались - обесценение съело прибыль
Компания Россети Ленэнерго опубликовала отчет об исполнении инвестпрограммы за Q4 2025г., где показаны финансовые показатели компании по...

теги блога FatCat

....все тэги



UPDONW
Новый дизайн