Блог им. 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:
Инвестиции без спешки: торгуем в выходные
Алексей Девятов Рынок часто движется импульсами, тем важнее оценивать активы без спешки, не отвлекаясь на инфошум. Для этого отлично подходят...
Фото
⚡ Получайте кэшбэк за сделки
Мы запустили акцию для тех, кто давно не пользовался нашим торговым терминалом — или только хочет попробовать.  Можно получать...
Фото
Что происходит с российскими нефтяниками?
Несмотря на высокие мировые цены на «черное золото», акции российских нефтегазовых компаний в последнее время не пользуются особым...
Фото
Выработка электроэнергии в РФ в марте 2026г. по Росстату и объем потребления энергии в апреле 2026г.
Росстат представил данные по выработке электроэнергии в РФ в марте 2026г.: 👉 выработка электроэнергии в РФ — 106,34 млрд кВт*ч. ( -0,7%...

теги блога FatCat

....все тэги



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