Изображение блога
Алексей Ван <o-s-a.net>
Алексей Ван <o-s-a.net> Блог компании Os_Engine
18 января 2024, 16:13

AServer #6. Thread 3. Работа с ордерами. Коннекторы к OsEngine #62

Ордера в OsEngine высылаются в IserverRealization не напрямую, а через отдельную очередь. Посмотрим на неё одним глазком.

AServer #6. Thread 3. Работа с ордерами. Коннекторы к OsEngine #62


1. Нужные нам классы в проекте.

AServer #6. Thread 3. Работа с ордерами. Коннекторы к OsEngine #62


2. Какие методы в IServerRealizationвызываются данным потоком?

AServer #6. Thread 3. Работа с ордерами. Коннекторы к OsEngine #62

  1. Вызывается из AServer, для чего там работает поток в методе: ExecutorOrdersThreadArea().
  2. Вызывается, только если состояние сервера ServerConnectStatus == Connect.
  3. Вызывается, только если прошло не менее N секунд в поле WaitTimeSecondsAfterFirstStartToSendOrders, IServerPermission для данного типа коннектора.

 

3.AServer. РегионThread 3. Work with orders.

AServer #6. Thread 3. Работа с ордерами. Коннекторы к OsEngine #62

  1. Место работы потока, посылающего торговые приказы в ServerRealization.
  2. Очередь с приказами, ожидающими отправки в ServerRealization.
  3. Механизм доступа к переменной, которая определяет время ожидания от того, как сервер перейдёт в режим Connect, до того как можно будет отправить в ServerRealization первый ордер.
  4. Может ли сервер изменять цену ордера без его отзыва с биржи.
  5. Исполнить ордер. Метод для передачи в сервер торгового приказа извне.
  6. Изменить цену ордера без его отзыва. Метод для передачи в сервер торгового приказа извне.
  7. Отменить ордер. Метод для передачи в сервер торгового приказа извне.
  8. Отменить все ордера. Метод для передачи в сервер торгового приказа извне.
  9. Отменить ордера по конкретной бумаге. Метод для передачи в сервер торгового приказа извне.
  10. Обработчик события появления нового ордера на бирже.
  11. Событие: новый ордер.
  12. Событие: пользователь прислал ордер на исполнение.
  13. Событие: пользователь прислал ордер на отзыв.

  

4. Три торговых метода AServerпринимают приказы и ставят их в очередь.

AServer #6. Thread 3. Работа с ордерами. Коннекторы к OsEngine #62

  1. Ставят приказы в очередь, три метода:
  • ExecuteOrder
  • ChangeOrderPrice
  • CancelOrder

5.Очередь разбирается в ExecutorOrdersThreadArea.

AServer #6. Thread 3. Работа с ордерами. Коннекторы к OsEngine #62

  1. Ожидание работоспособности сервера через задержку.
  2. Если в очереди нет приказов, спим 1 млс.
  3. Разбор очереди.
  4. Вызываем SendOrder.
  5. Вызываем CancelOrder.
  6. Вызываем ChangeOrderPrice.

Вот таким вот образом заявки попадают в ServerRealization, а затем и на биржу…

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

Пост из серии «Коннекторы к OsEngine»

Серия о том, как стать настоящим программистом и изменить свою профессию.

Оглавление и смыслы здесь: https://smart-lab.ru/company/os_engine/blog/959953.php

Комментарии открыты для друзей, добавляйтесь!

AServer #6. Thread 3. Работа с ордерами. Коннекторы к OsEngine #62

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

Регистрируйся в АЛОР и получай бонусы: https://www.alorbroker.ru/open
Сайт АЛОР БРОКЕР: https://www.alorbroker.ru
Раздел «Для клиентов»: https://www.alorbroker.ru/openinfo/for-clients
Программа лояльности от АЛОР БРОКЕР и OsEngine: https://smart-lab.ru/company/os_engine/blog/972745.php

AServer #6. Thread 3. Работа с ордерами. Коннекторы к OsEngine #62

0 Комментариев

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн