rss

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

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

Блог компании OsEngine | Слой тестирования #27. Orders_11. Запрос потерянных MyTrades по исполненным ордерам. Коннекторы к OsEngine #96

Обновили «Механизм запроса ордеров при частичной потере связи с биржей». Добавили в него слежение за тем, чтобы по каждому ордеру пришло соответствующее кол-во MyTrade.  

В данной статье обсудим Автотест для сопровождения нового функционала.

Тест, который запрашивает MyTrades по ордерам со статусом Done и Partial, если MyTrades задержались или потерялись.

Слой тестирования #27. Orders_11. Запрос потерянных MyTrades по исполненным ордерам. Коннекторы к OsEngine #96

Где тест находится в проекте?

Слой тестирования #27. Orders_11. Запрос потерянных MyTrades по исполненным ордерам. Коннекторы к OsEngine #96 

Рис.1. Расположение теста RequestLostMyTrades в проекте OsEngine.

 

Настройки теста

Слой тестирования #27. Orders_11. Запрос потерянных MyTrades по исполненным ордерам. Коннекторы к OsEngine #96 

Рис.2. Настройки теста в проекте OsEngine.

  1. Кнопка включения теста. Если Вы подключены к какому-то брокеру или бирже, тест начнётся.
  2. Портфель для ордера.
  3. Бумага для торгов.
  4. Класс бумаги.
  5. Объём для ордера.

Суть теста.

  1. Отключаем штатный приём сообщений о MyTrades от коннектора на время, чтобы ввести AServerOrderHub в заблуждение о том, что MyTrade по исполненному ордеру потерялся.
  2. Выставляем Лимит ордера на покупку. Так, чтобы он исполнился.
  3. Через 5ть секунд включаем в коннекторе штатный приём сообщений о новых статусах ордеров.
  4. AServerOrderHub начинает искать потерянные трейды по ордеру, посылая сообщения о том, что по ордеру нужно обновить статус и MyTrades.
  5. Сообщение об ордере приходит. О том, что он в состоянии Done.
  6. Сообщение об исполнении приходит (MyTrade).

Если вы сделали всё правильно, Вы увидите:

Слой тестирования #27. Orders_11. Запрос потерянных MyTrades по исполненным ордерам. Коннекторы к OsEngine #96 

По ордеру прошло 2 MyTrade. Все они пришли не стандартным способом, а через экстренный канал запросов статуса ордера, по которому, если ордер в статусе Done, к нам должны прийти и MyTrades.

Экстренный канал запроса MyTrades – оттестирован.

 

Включение разрешения у коннектора

Чтобы это заработало, в разрешении сервера должно быть включено свойство CanQueryOrderStatus в TRUE. В разрешениях Т-Инвест коннектора это выглядит так:

Слой тестирования #27. Orders_11. Запрос потерянных MyTrades по исполненным ордерам. Коннекторы к OsEngine #96 

 

Просмотр работы AServerOrderHub в логе коннектора

Если в классе AServerOrdersHub включить полное логирование, вот так:

Слой тестирования #27. Orders_11. Запрос потерянных MyTrades по исполненным ордерам. Коннекторы к OsEngine #96

В логе коннектора можно увидеть, как он запрашивает статус потерянного ордера, и в какой момент какие статусы ордера приходят в AServerOrderHub:

Слой тестирования #27. Orders_11. Запрос потерянных MyTrades по исполненным ордерам. Коннекторы к OsEngine #96

Новый функционал в AServerOrdersHub расположен в регионе «Query MyTrades to execute orders»:

Слой тестирования #27. Orders_11. Запрос потерянных MyTrades по исполненным ордерам. Коннекторы к OsEngine #96 

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

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

Слой тестирования #27. Orders_11. Запрос потерянных MyTrades по исполненным ордерам. Коннекторы к OsEngine #96

https://smart-lab.ru/company/os_engine/blog/1024149.php

OsEngine: https://github.com/AlexWan/OsEngine
Поддержка OsEngine: https://t.me/osengine_official_support
Канал Научный трейдинг: https://t.me/bad_quant

6.2К

теги блога OS_Engine_team

....все тэги



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