Инструменты Quik
Atom Reply
1/30/2017


Подскажите, может кто сталкивался с проблемой и как ее лучше решить. Программа загружает в комбобокс все возможные инструменты из quik, а их очень очень много. Можно ли как-то настройками конфигурации в Квике ограничить нужные инструменты, которые будут загружаться в приложение или же лучше сделать поиск по комбобоксу? Поиска хочу избежать, так как в комбобоксе тип данных Security[], а поиск получилось сделать только по String.

Tags:


Thanks:




19 Answers
Support

Avatar
Date: 1/31/2017
Reply


Можно так: 1) Установить QuikTrader.RequestAllSecurities = false... 2) Нужные инструменты запросить в обработчике события Security.Connected при помощи Connector.LookupSecurities() 3) Инструменты будет получены в событии Connector.LookupSecuritiesResult() 4. В результате Connector.Securities будет содержать только запрошенные инструменты.
Thanks: Evgeny

klim95vlad

Avatar
Date: 2/1/2017
Reply


Support Перейти
Можно так: 1) Установить QuikTrader.RequestAllSecurities = false... 2) Нужные инструменты запросить в обработчике события Security.Connected при помощи Connector.LookupSecurities() 3) Инструменты будет получены в событии Connector.LookupSecuritiesResult() 4. В результате Connector.Securities будет содержать только запрошенные инструменты.


А, если не сложно, не могли бы Вы написать на примере одного любого инструмента.
Topic starter
Thanks:

Support

Avatar
Date: 2/2/2017
Reply


trader.RequestAllSecurities = false;
trader.Connected += () =>
{
trader.LoocupSecurities(new Secucrity() { Id = "RIH7@FORTS", Board = ExchangeBoard.Forts });

}

trader.LookupSecuritiesResult += securities =>
{
//TODO Здесь получаем запрошенные инструменты... Теперь в trader.Securities будет только RIH7@FORTS
}
Thanks:

Support

Avatar
Date: 2/2/2017
Reply


.
Thanks:

klim95vlad

Avatar
Date: 2/2/2017
Reply


Support Перейти
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;

});
Topic starter
Thanks:

klim95vlad

Avatar
Date: 2/2/2017
Reply


Trader.LookupSecuritiesResult += securities =>
{
comboBox.ItemsSource = Trader.Securities
};

Вот так должно быть?
Topic starter
Thanks:

Support

Avatar
Date: 2/3/2017
Reply


Да
Thanks:

Георгий

Avatar
Training
Date: 2/3/2017
Reply


А как получить инструменты только по определенному рынку (только акции например)?
Thanks:

Support

Avatar
Date: 2/7/2017
Reply


trader.Connected += () =>
{
trader.LoocupSecurities(new Secucrity() { Type = SecurityTypes.Stock });
}
Thanks:

klim95vlad

Avatar
Date: 2/13/2017
Reply


Trader.RequestAllSecurities = false;
Trader.Connected += () =>
{
Trader.LookupSecurities(new Security() { Id = "RIH7@FORTS", Board = ExchangeBoard.Forts });

};

Trader.NewSecurities += securities => this.GuiAsync(() =>
{

Security.ItemsSource = (Trader.Securities);
});

Trader.LookupSecuritiesResult += securities =>
{
Security.ItemsSource = Trader.Securities
};

Вот так все сделал, как Вы сказали, а в последнем блоке начиная с "Trader.LookupSecuritiesResult" выдает ошибку "Делегат "Action<Exception, IEnumerable<Security>>" не принимает аргументы 1"
Topic starter
Thanks:

Support

Avatar
Date: 2/14/2017
Reply


Trader.LookupSecuritiesResult += (ex, securities) =>
{
Security.ItemsSource = Trader.Securities
};
В последней версии еще один аргумент добавили
Thanks:

Support

Avatar
Date: 2/14/2017
Reply


Support Перейти
Trader.LookupSecuritiesResult += (ex, securities) =>
{
if (ex != null)
return;
Security.ItemsSource = Trader.Securities
};
В последней версии еще один аргумент добавили


Thanks:

klim95vlad

Avatar
Date: 3/6/2017
Reply


Подскажите пожалуйста, а если нужно отфильтровать акции по нескольким площадкам, грубо говоря нужны только TQBR, FORTS и CETS, это возможно реализовать?
Topic starter
Thanks:

Support

Avatar
Date: 3/9/2017
Reply


Для каждой площадки вызываете LookupSecurities
Trader.LookupSecurities(new Security() { Id = "@FORTS", Board = ExchangeBoard.Forts });
Trader.LookupSecurities(new Security() { Id = "@TQBR", Board = ExchangeBoard.Micex });
Thanks: klim95vlad

klim95vlad

Avatar
Date: 3/9/2017
Reply


Support Перейти
Для каждой площадки вызываете LookupSecurities
Trader.LookupSecurities(new Security() { Id = "@FORTS", Board = ExchangeBoard.Forts });
Trader.LookupSecurities(new Security() { Id = "@TQBR", Board = ExchangeBoard.Micex });

Делаю вот так, отображает только TQBR все равно
Trader.RequestAllSecurities = false;
Trader.Connected += () =>
{
Trader.LookupSecurities(new Security() { Board = ExchangeBoard.MicexTqbr });
Trader.LookupSecurities(new Security() { Board = ExchangeBoard.Forts });

};
Trader.LookupSecuritiesResult += (ex, securities) =>
{
Security.ItemsSource = Trader.Securities;
};

Trader.NewSecurities += securities => this.GuiAsync(() =>
{

Security.ItemsSource = (Trader.Securities);


});
Topic starter
Thanks:

Support

Avatar
Date: 3/9/2017
Reply


сделайте как я написал
Thanks:

klim95vlad

Avatar
Date: 3/9/2017
Reply


Support Перейти
сделайте как я написал


Вот так имеете ввиду?
Trader.Connect();

Trader.RequestAllSecurities = false;

Trader.LookupSecurities(new Security() { Board = ExchangeBoard.MicexTqbr });
Trader.LookupSecurities(new Security() { Board = ExchangeBoard.MicexCets });

Trader.LookupSecuritiesResult += (ex, securities) =>
{
Security.ItemsSource = Trader.Securities;
};


Trader.NewSecurities += securities => this.GuiAsync(() =>
{
Security.ItemsSource = (Trader.Securities);
});

Тоже не проходит
Topic starter
Thanks:

klim95vlad

Avatar
Date: 3/9/2017
Reply


Заработало, спасибо большое!
Topic starter
Thanks:

Георгий

Avatar
Training
Date: 3/9/2017
Reply


Код
Id = "@TQBR",
потеряли
Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy