Может я чего не нахожу, точно ли нет возможности узнать, что все начальные позиции получены и все что не получены можно признать нулевыми? Например в API InteractiveBrokers (TWS API) прям явно приходит PositionEnd, когда по всем позициям сработало событие Position. Нельзя ли сделать такое же событие в StockSharp или может уже есть какой-то способ явно узнать, что позиции загружены?
Kommentare (3)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
Добрый день
Возможно, вам подойдет событие Connector.SubscriptionOnline
Не понял когда точно зовется SubscriptionOnline, но похоже и при поиске Security, и при подписке на Level1 и все это до того как придет позиция. Нельзя ли сделать отдельное событие вроде PositionsFinished означающее, что все явно определнные позиции загружены и все остальные можно принять равными нулю?
На всякий поясню. После запроса Connector.SubscribePositions начинают приходить позиции, в частности, например, основной инструмент и хедж. Алгоритм ждет когда придут обе позиции. Хорошо если обе позиции есть в Quik, даже если 0, то она приедет, но если ее нет в "Лимитах по бумагам", то позиция никогда не приходит. Приходится доверять таймеру и через х секунд после запроса позиций считать, что все что не пришло 0... но мало ли кто где сколько задержался, а некорректные данные о позиции это потеря средств.
Как я написал в начальном вопросе у InteractiveBrokers есть явное событие PositionEnd, означающее, что все что было можно загрузили. Полагаю, что и в lua ваш компонент знает, когда закончил обрабатывать позиции и может поделиться этой информацией. Надеюсь так же и для других коннекторов.
Спасибо посмотрю, хотя из названия не очень понятно. Зато рядом заметил MarketDataSubscriptionFinished. Потестирую.