Может я чего не нахожу, точно ли нет возможности узнать, что все начальные позиции получены и все что не получены можно признать нулевыми? Например в API InteractiveBrokers (TWS API) прям явно приходит PositionEnd, когда по всем позициям сработало событие Position. Нельзя ли сделать такое же событие в StockSharp или может уже есть какой-то способ явно узнать, что позиции загружены?
コメント (3)
ログイン または アカウントを作成, コメントを残すにはログインまたは新規登録してください
Добрый день
Возможно, вам подойдет событие Connector.SubscriptionOnline
Не понял когда точно зовется SubscriptionOnline, но похоже и при поиске Security, и при подписке на Level1 и все это до того как придет позиция. Нельзя ли сделать отдельное событие вроде PositionsFinished означающее, что все явно определнные позиции загружены и все остальные можно принять равными нулю?
На всякий поясню. После запроса Connector.SubscribePositions начинают приходить позиции, в частности, например, основной инструмент и хедж. Алгоритм ждет когда придут обе позиции. Хорошо если обе позиции есть в Quik, даже если 0, то она приедет, но если ее нет в "Лимитах по бумагам", то позиция никогда не приходит. Приходится доверять таймеру и через х секунд после запроса позиций считать, что все что не пришло 0... но мало ли кто где сколько задержался, а некорректные данные о позиции это потеря средств.
Как я написал в начальном вопросе у InteractiveBrokers есть явное событие PositionEnd, означающее, что все что было можно загрузили. Полагаю, что и в lua ваш компонент знает, когда закончил обрабатывать позиции и может поделиться этой информацией. Надеюсь так же и для других коннекторов.
Спасибо посмотрю, хотя из названия не очень понятно. Зато рядом заметил MarketDataSubscriptionFinished. Потестирую.