rss

Профиль компании

Финансовые компании

Блог компании OsEngine | AServer #11. Кэширование массива ордеров в коннекторе при массовой проверки статусов ордеров на запуске. Коннекторы к OsEngine #99

Сегодня разговор пойдёт про то, как ускорить работу коннектора в момент его перезапуска, если пользователь держит в рынке несколько десятков (или даже сотню) ордеров. Для этого надо модернизировать работу одного метода в коннекторе и сделать там КЭШ ордеров, запрошенных с рынка. Это позволяет в десятки раз быстрее вернуть роботов в строй и обеспечить им актуализацию данных по ордерам быстрее.

AServer #11. Кэширование массива ордеров в коннекторе при массовой проверки статусов ордеров на запуске. Коннекторы к OsEngine #99

*серия постов «Коннекторы к OsEngine» — для программистов. Если Вы пользуетесь OsEngine как пользователь, можете дальше не читать.

1. Зачем это нужно?

Внутри дня происходят штатные переподключения коннекторов, после которых OsEngine перезапрашивает статус лимитных ордеров, которые у него стоят в рынке. Ведь ордер может исполниться в момент, когда не было связи. Пока ордеров до 10 штук, проблем никаких, и это довольно быстро. Однако ситуация поменялась, и у некоторых пользователей теперь может быть под сотню лимиток, стоящих в стаканах.

После того, как мы создали и внедрили в стандартную сборку маркет-мейкерские алгоритмы, обычным поведением роботов клиентов стало то, что они держат десятки лимитных ордеров в рынке.

И если ордеров под сотню, то будет столько же запросов метода GetOrderStatus у коннектора. И в итоге без кэширования процесс актуализации статусов ордеров может занять несколько минут! Что может приводить к сбоям в логике работы роботов у клиентов.

Кэширование ордеров в коннекторе полностью устраняет эту проблему.

2. Откуда вызывается метод GetOrderStatus.

Модуль контроля своих ордеров делает это после включения коннектора, вот здесь:

AServer #11. Кэширование массива ордеров в коннекторе при массовой проверки статусов ордеров на запуске. Коннекторы к OsEngine #99

Работает это в том случае, если у коннектора есть соответствующее разрешение.

3. Пример реализации кэширования ордеров.

Рабочий пример можно посмотреть здесь:

AServer #11. Кэширование массива ордеров в коннекторе при массовой проверки статусов ордеров на запуске. Коннекторы к OsEngine #99

Удачных алгоритмов!

Комментарии открыты для друзей!

AServer #11. Кэширование массива ордеров в коннекторе при массовой проверки статусов ордеров на запуске. Коннекторы к OsEngine #99

OsEngine: https://github.com/AlexWan/OsEngine
Поддержка OsEngine: https://t.me/osengine_official_support

Канал Научный трейдинг (Bad Quant): https://t.me/bad_quant

AServer #11. Кэширование массива ордеров в коннекторе при массовой проверки статусов ордеров на запуске. Коннекторы к OsEngine #99

https://www.tbank.ru/invest/

 

6.1К

теги блога OS_Engine_team

....все тэги



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