Обновили «Механизм запроса ордеров при частичной потере связи с биржей». Добавили в него слежение за тем, чтобы по каждому ордеру пришло соответствующее кол-во MyTrade.
В данной статье обсудим Автотест для сопровождения нового функционала.
Тест, который запрашивает MyTrades по ордерам со статусом Done и Partial, если MyTrades задержались или потерялись.
Рис.1. Расположение теста RequestLostMyTrades в проекте OsEngine.
Рис.2. Настройки теста в проекте OsEngine.
Суть теста.
Если вы сделали всё правильно, Вы увидите:
По ордеру прошло 2 MyTrade. Все они пришли не стандартным способом, а через экстренный канал запросов статуса ордера, по которому, если ордер в статусе Done, к нам должны прийти и MyTrades.
Экстренный канал запроса MyTrades – оттестирован.
Чтобы это заработало, в разрешении сервера должно быть включено свойство CanQueryOrderStatus в TRUE. В разрешениях Т-Инвест коннектора это выглядит так:
Если в классе AServerOrdersHub включить полное логирование, вот так:
В логе коннектора можно увидеть, как он запрашивает статус потерянного ордера, и в какой момент какие статусы ордера приходят в AServerOrderHub:
Новый функционал в AServerOrdersHub расположен в регионе «Query MyTrades to execute orders»:
Удачных алгоритмов!
Комментарии открыты для друзей!
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