Получение списка бумаг в хранилище
Atom
10.02.2014


При анализе структуры S#.API выясняется, что у классов StorageRegistry/LocalMarketDataDrive нет метода для получения полного списка бумаг, сохраненных в данном хранилище.
Вроде как в S#.API для этого имеется класс SecurityList - "Класс для представления в виде списка инструментов, хранящихся во внешнем хранилище", однако все мои попытки получить через него список бумаг оказались неуспешными.
Например такой код:
Код

var storage = new StorageRegistry();
((LocalMarketDataDrive)storage.DefaultDrive).Path = sPath;
((LocalMarketDataDrive) storage.DefaultDrive).UseAlphabeticPath = true;
var _securityList = new SecurityList((IStorage)storage);

выдает ошибку "Не удалось привести тип объекта "StockSharp.Algo.Storages.StorageRegistry" к типу "Ecng.Serialization.IStorage".

Прошу подсказать способ, которым можно получить список бумаг в хранилище.


Теги:


Спасибо:


whitebar

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


Столкнулся с такой же ситуацией.
Я просто просматриваю папки в StorageRegistry, и, если имя папки похоже на Id инструмента, добавляю папку в список.

Как то так:
Код

            var securities =
                Directory.EnumerateDirectories(@"D:\Quotes\", "*.*", SearchOption.AllDirectories)
                    .Where(d => d.Contains("@") && Directory.EnumerateDirectories(d,"*.*", SearchOption.TopDirectoryOnly).Any())
                    .Select(d => d.Split("\\").FirstOrDefault( f => f.Contains("@")));



Подразумевается, что папка с инструментом содержит символ @.
На выходе переменная securities содержит список инструментов.
Спасибо:


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

loading
clippy