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

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


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

Его описание: http://doc.stocksharp.ru/html/M_StockSharp_Algo_History_Russian_Finam_FinamHistorySource_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 ; и 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


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

Support

Avatar
Date: 5/26/2017
Reply


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

Дмитрий_

Avatar
Date: 5/26/2017
Reply


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

Thanks: Дмитрий_


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

loading
clippy