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

Не понимаю работу метода FinamHistorySource.Refresh
Atom
24.05.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 инструментов.


Теги:


Спасибо:


Support

Фотография
Дата: 25.05.2017
Ответить


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

Дмитрий_

Фотография
Дата: 25.05.2017
Ответить


  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);?
Спасибо:

Дмитрий_

Фотография
Дата: 25.05.2017
Ответить


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

Support

Фотография
Дата: 26.05.2017
Ответить


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

Дмитрий_

Фотография
Дата: 26.05.2017
Ответить


  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".
Спасибо:

Support

Фотография
Дата: 29.05.2017
Ответить


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

Спасибо:

Дмитрий_

Фотография
Дата: 29.05.2017
Ответить


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

Спасибо:

Support

Фотография
Дата: 30.05.2017
Ответить


Security security = new Security ;

Спасибо: Дмитрий_


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy