Подскажите, может кто сталкивался с проблемой и как ее лучше решить. Программа загружает в комбобокс все возможные инструменты из quik, а их очень очень много. Можно ли как-то настройками конфигурации в Квике ограничить нужные инструменты, которые будут загружаться в приложение или же лучше сделать поиск по комбобоксу? Поиска хочу избежать, так как в комбобоксе тип данных Security[], а поиск получилось сделать только по String.
Comentários (19)
Entrar ou Criar conta, Faça login ou cadastre-se para deixar um comentário
Можно так: 1) Установить QuikTrader.RequestAllSecurities = false... 2) Нужные инструменты запросить в обработчике события Security.Connected при помощи Connector.LookupSecurities() 3) Инструменты будет получены в событии Connector.LookupSecuritiesResult() 4. В результате Connector.Securities будет содержать только запрошенные инструменты.
А, если не сложно, не могли бы Вы написать на примере одного любого инструмента.
trader.RequestAllSecurities = false; trader.Connected += () => { trader.LoocupSecurities(new Secucrity() { Id = "RIH7@FORTS", Board = ExchangeBoard.Forts });
}
trader.LookupSecuritiesResult += securities => { //TODO Здесь получаем запрошенные инструменты... Теперь в trader.Securities будет только RIH7@FORTS }
А как получаем запрошенные инструменты? (Что нужно прописать в блоке trader.LookupSecuritiesResult += securities => , который Вы закомментрировали)
И после всего этого использовать стандартное? Trader.NewSecurities += securities => this.GuiAsync(() => { comboBox.ItemsSource = Trader.Securities;
.
Вот так должно быть?
Да
Вот так все сделал, как Вы сказали, а в последнем блоке начиная с "Trader.LookupSecuritiesResult" выдает ошибку "Делегат "Action<Exception, IEnumerable<Security>>" не принимает аргументы 1"
А как получить инструменты только по определенному рынку (только акции например)?
trader.Connected += () => { trader.LoocupSecurities(new Secucrity() ); }
Trader.LookupSecuritiesResult += (ex, securities) => ; В последней версии еще один аргумент добавили
Подскажите пожалуйста, а если нужно отфильтровать акции по нескольким площадкам, грубо говоря нужны только TQBR, FORTS и CETS, это возможно реализовать?
Для каждой площадки вызываете LookupSecurities Trader.LookupSecurities(new Security() { Id = "@FORTS", Board = ExchangeBoard.Forts }); Trader.LookupSecurities(new Security() { Id = "@TQBR", Board = ExchangeBoard.Micex });
Trader.LookupSecuritiesResult += (ex, securities) => ;
сделайте как я написал
Вот так имеете ввиду? Trader.Connect();
Тоже не проходит
Заработало, спасибо большое!