Не понимаю работу метода FinamHistorySource.Refresh

Не понимаю работу метода FinamHistorySource.Refresh
Atom
5/24/2017
Дмитрий_


Здравствуйте.

Его описание:
http://doc.stocksharp.ru...storySource_Refresh.htm

int step = 0;
Security security = new Security { Id = "SBER@TQBR", Board = ExchangeBoard.Micex };
При вызове метода FinamHistorySource.Refresh(securityStorage, security, s => { isCanceled = UpdateLoadingProgressBar(s, security, ++step); }, () => isCanceled); всегда загружается 14787 инструментов, что занимает приличное время.
1) Как правильно использовать параметр criteria
(Тип: StockSharp.BusinessEntities.Security Инструмент, поля которого будут использоваться в качестве фильтра.),
чтобы загружался только нужный security?
2) Какой параметр criteria использовать для групповой загрузки инструментов (например: GAZP@TQBS, SBER@TQBS и SBERP@TQBS)?

3) Если правильно понимаю логику метода:
Допустим
Security security = new Security { Board = ExchangeBoard.Spb};
и FinamHistorySource.Refresh(securityStorage, security, s => { isCanceled = UpdateLoadingProgressBar(s, security, ++step); }, () => isCanceled); то перебор (поиск) инструментов будет только среди бумаг, где ExchangeBoard = Spb? На практике, всё равно грузит все 14787 инструментов.

Tags:


Thanks:


Support

Avatar
Date: 5/25/2017
Reply


1) В любом случае будут загружены все инструменты, т.к. criteria - это фильтр..
2) Работает как поиск подстроки, т.е. можно использовать "@TQBS"
3) Что бы прервать загрузку в момент получения нужного инструмента используйте делегат isCanceled
Thanks:

Дмитрий_

Avatar
Date: 5/25/2017
Reply


1) Какая практическая ценность criteria (зачем он нужен), если в любом случае будут загружены все инструменты? (покажите на примере)
2) Зачем отфильтровывать 1 инструмент?
3) Куда сохраняются отфильтроавнные инструменты?
4) В чём разница между:
Security security = new Security { Id = "SBER@TQBR", Board = ExchangeBoard.Micex };
FinamHistorySource.Refresh(securityStorage, security, s => { isCanceled = UpdateLoadingProgressBar(s, security, ++step); }, () => isCanceled);
и
Security security = new Security ();
FinamHistorySource.Refresh(securityStorage, security, s => { isCanceled = UpdateLoadingProgressBar(s, security, ++step); }, () => isCanceled);
если потом, я всё равно могу получить данные
var dataSecurity = historySource.GetCandles(security, timeFrame, from, to);?


Thanks:

Дмитрий_

Avatar
Date: 5/25/2017
Reply


5) "2) Работает как поиск подстроки, т.е. можно использовать "@TQBS" " - покажите пожалуйста на примере
Thanks:

Support

Avatar
Date: 5/26/2017
Reply


1) фильтр только по типу инструмента
2) вопрос не понятен
3) securityStorage
4) см. п1.
5) Security security = new Security { Id = "@TQBR"};
Thanks:

Дмитрий_

Avatar
Date: 5/26/2017
Reply


2) Имел ввиду, что используя фильтр
Security security = new Security { Id = "SBER@TQBR", Board = ExchangeBoard.Micex };
в securityStorage сохранятся все 14787 инструментов, корме SBER@TQBR. Поэтому "Зачем отфильтровывать 1 инструмент? "
Сейчас прояснилось, что в securityStorage сохранится только SBER@TQBR
5) Security security = new Security { Id = "@TQBR"}; - данный фильтр не оставляет в securityStorage инструменты с Id = "@TQBR".
Thanks:

Support

Avatar
Date: 5/29/2017
Reply


Функция FinamHistorySource.Refresh неправильно работает или приводит к возникновению ошибки?
Thanks:

Дмитрий_

Avatar
Date: 5/29/2017
Reply


Всё работает, просто хочу увеличить эффективность загрузки. Думал, как фильтр (criteria) может помочь с этим?
Покажите пожалуйста на примере, как сделать так, чтобы в securityStorage сохранились, допустим, только фьючерсы FORTS.
Thanks:

Support

Avatar
Date: 5/30/2017
Reply


Security security = new Security { Type = SecurityTypes.Future };
Thanks: Дмитрий_


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

loading
clippy