← Voltar

Дважды вызывается правило WhenPartiallyMatched, хотя произошла одна сделка

Лог работы стратегии:

20:35:11.550 | | QuikTrader | RegisterOrder: TransactionId=4502221, Id=0, Price=133885, Balance=5, Security=RIU2@RTS, State=None 20:35:11.917 | | QuikTrader | New order: TransactionId=4502221, Id=1653852924, Price=133885, Balance=5, Security=RIU2@RTS, State=Active 20:35:11.917 | | TS_RIU2@RTS_SPBFUT010Lt | Выставлена Sell заявка ('SHORT'). TransactionId=4502221, id=1653852924, цена 133885, V=5, Pos=0 20:35:12.188 | | QuikTrader | Order changed: TransactionId=4502221, Id=1653852924, Price=133885, Balance=5, Security=RIU2@RTS, State=Active 20:35:12.189 | | QuikTrader | Order changed: TransactionId=4502221, Id=1653852924, Price=133885, Balance=5, Security=RIU2@RTS, State=Active 20:35:15.766 | | TS_RIU2@RTS_SPBFUT010Lt | Новая Sell сделка 69988399 по цене 133885 на 1 заявки 4502221. 20:35:15.767 | | QuikTrader | Order changed: TransactionId=4502221, Id=1653852924, Price=133885, Balance=4, Security=RIU2@RTS, State=Active 20:35:15.768 | | TS_RIU2@RTS_SPBFUT010Lt | Новая позиция -1. 20:35:15.805 | | TS_RIU2@RTS_SPBFUT010Lt | WhenPartiallyMatched. TransactionId=4502221, Id=1653852924, цена 133885, средняя цена 133885, V=5, Balance=4. P/L=-305, Pos=-1 20:35:15.859 | | QuikTrader | CancelOrder: TransactionId=4502221, Id=1653852924, Price=133885, Balance=4, Security=RIU2@RTS, State=Active 20:35:15.895 | | TS_RIU2@RTS_SPBFUT010Lt | Подготовлена 'STOP Buy' заявка по цене 134085, V=1 для заявки с Id=1653852924, активации по цене 133965, StopSize=200 20:35:15.897 | | QuikTrader | RegisterOrder: TransactionId=4502223, Id=0, Price=133815, Balance=1, Security=RIU2@RTS, State=None 20:35:16.233 | | QuikTrader | New order: TransactionId=4502223, Id=1653852973, Price=133815, Balance=1, Security=RIU2@RTS, State=Active 20:35:16.234 | | TS_RIU2@RTS_SPBFUT010Lt | Выставлена 'PROFIT Buy' заявка по цене 133815 для заявки с Id=1653852924. TransactionId=4502223, Id=1653852973, V=1, Pos=-1, задержка 00:00:00.3361409 20:35:16.504 | | QuikTrader | Order changed: TransactionId=4502221, Id=1653852924, Price=133885, Balance=4, Security=RIU2@RTS, State=Done 20:35:16.505 | | TS_RIU2@RTS_SPBFUT010Lt | WhenPartiallyMatched. TransactionId=4502221, Id=1653852924, цена 133885, средняя цена 133885, V=5, Balance=4. P/L=-305, Pos=-1 20:35:16.507 | | TS_RIU2@RTS_SPBFUT010Lt | Подготовлена 'STOP Buy' заявка по цене 134085, V=1 для заявки с Id=1653852924, активации по цене 133965, StopSize=200 20:35:16.549 | | QuikTrader | RegisterOrder: TransactionId=4502224, Id=0, Price=133815, Balance=1, Security=RIU2@RTS, State=None 20:35:16.605 | | QuikTrader | Order changed: TransactionId=4502223, Id=1653852973, Price=133815, Balance=1, Security=RIU2@RTS, State=Active 20:35:16.607 | | QuikTrader | Order changed: TransactionId=4502223, Id=1653852973, Price=133815, Balance=1, Security=RIU2@RTS, State=Active 20:35:16.941 | | QuikTrader | New order: TransactionId=4502224, Id=1653852985, Price=133815, Balance=1, Security=RIU2@RTS, State=Active 20:35:16.941 | | TS_RIU2@RTS_SPBFUT010Lt | Выставлена 'PROFIT Buy' заявка по цене 133815 для заявки с Id=1653852924. TransactionId=4502224, Id=1653852985, V=1, Pos=-1, задержка 00:00:00.3919062 20:35:17.211 | | QuikTrader | Order changed: TransactionId=4502224, Id=1653852985, Price=133815, Balance=1, Security=RIU2@RTS, State=Active 20:35:17.212 | | QuikTrader | Order changed: TransactionId=4502224, Id=1653852985, Price=133815, Balance=1, Security=RIU2@RTS, State=Active

Видно что в 20:35:16.505 правило WhenPartiallyMatched активируется второй раз, хотя Position остается равным -1. В 20:35:15.859 заявка снимается.

Ниже приведен скриншот из квика (заявка зеленым цветом), где также видно что для заявки с Id=1653852924 исполнено было 1, после чего заявка снята. На правило WhenPartiallyMatched для заявки подписан один раз. Версия S# 4.1.2

Este tópico foi útil?

Compartilhar tópico

Comentários (10)

Entrar ou Criar conta, Faça login ou cadastre-se para deixar um comentário

paveld
paveld Autor

Ошибка принята?

esper
esper

Если выставить ```csharp .Once()

paveld
paveld Autor

На правило частичного исполнения нельзя - ведь заявка может много раз исполниться частично

esper
esper

paveld: На правило частичного исполнения нельзя - ведь заявка может много раз исполниться частично Если правило сработает несколько раз по нескольким частичным исполнениям заявки, то мы в любом случае не будем знать на исполнение какого именно объема правило сработало в данный момент, так? Тогда в чем смысл ограничивать количество срабатываний правила, если в любом случае придется самостоятельно высчитывать объем?

paveld
paveld Autor

esper:

paveld: На правило частичного исполнения нельзя - ведь заявка может много раз исполниться частично Если правило сработает несколько раз по нескольким частичным исполнениям заявки, то мы в любом случае не будем знать на исполнение какого именно объема правило сработало в данный момент, так? Тогда в чем смысл ограничивать количество срабатываний правила, если в любом случае придется самостоятельно высчитывать объем? Наоборот, не ограничиваю количество срабатываний правила. То что объем не определить - это уже понял что он приходит только по правилу OrderChanged. Количество срабатываний правила частичного исполнения заявки должно быть равно количеству трейдов по этой заявке. Помоему логично. Поэтому хочется понять так ли это на самом деле или это все таки ошибка.

paveld
paveld Autor

Уважаемые разработчики библиотеки! Ответьте хотя бы ошибка это или так и задумано было.

Alexander
Alexander

Да, бага есть. Будем думать как поправить.

paveld
paveld Autor

Alexander Mukhanchikov: Да, бага есть. Будем думать как поправить.

Подскажите пожалуйста, исправляли баг или нет7

Alexander
Alexander

paveld:

Alexander Mukhanchikov: Да, бага есть. Будем думать как поправить.

Подскажите пожалуйста, исправляли баг или нет7

Нет, по срокам пока тоже неизвестно. Большое исправление должно быть.

esper
esper

В 4.1.5 поправили правило. Просьба проверить ушла ли ошибка.