← 返回

Окончание загрузки позиций

Может я чего не нахожу, точно ли нет возможности узнать, что все начальные позиции получены и все что не получены можно признать нулевыми? Например в API InteractiveBrokers (TWS API) прям явно приходит PositionEnd, когда по всем позициям сработало событие Position. Нельзя ли сделать такое же событие в StockSharp или может уже есть какой-то способ явно узнать, что позиции загружены?

本主题对您有帮助吗?

分享主题

评论 (3)

登录创建账户, 登录或注册以发表评论

Support
Support

Добрый день

Возможно, вам подойдет событие Connector.SubscriptionOnline

Balex
Balex 作者

Support: Добрый день

Возможно, вам подойдет событие Connector.SubscriptionOnline

Не понял когда точно зовется SubscriptionOnline, но похоже и при поиске Security, и при подписке на Level1 и все это до того как придет позиция. Нельзя ли сделать отдельное событие вроде PositionsFinished означающее, что все явно определнные позиции загружены и все остальные можно принять равными нулю?

На всякий поясню. После запроса Connector.SubscribePositions начинают приходить позиции, в частности, например, основной инструмент и хедж. Алгоритм ждет когда придут обе позиции. Хорошо если обе позиции есть в Quik, даже если 0, то она приедет, но если ее нет в "Лимитах по бумагам", то позиция никогда не приходит. Приходится доверять таймеру и через х секунд после запроса позиций считать, что все что не пришло 0... но мало ли кто где сколько задержался, а некорректные данные о позиции это потеря средств.

Как я написал в начальном вопросе у InteractiveBrokers есть явное событие PositionEnd, означающее, что все что было можно загрузили. Полагаю, что и в lua ваш компонент знает, когда закончил обрабатывать позиции и может поделиться этой информацией. Надеюсь так же и для других коннекторов.

Balex
Balex 作者

Спасибо посмотрю, хотя из названия не очень понятно. Зато рядом заметил MarketDataSubscriptionFinished. Потестирую.