← Zurück

не могу получить свечки с финама

закачал в Гидре минутные свечки и сделки RIH3 с источника данных Финам. свечки в Гидре показываются, даже график по ним строится.


            var security = new Security
            {
                Id = "RIH3@RTS", 
                Code = "RIH3", 
                Name = "RTS-3.13",
                MinStepSize = 5,
                MinStepPrice = 2,
                Exchange = Exchange.Rts,
            };

            var portfolio = new Portfolio { Name = "test account", BeginValue = 1000000m };

            var storage = new StorageRegistry();

            const string path = @"D:\Hydra\R";
            ((LocalMarketDataDrive)storage.DefaultDrive).Path = path;

            var timeFrame = TimeSpan.FromMinutes(1);



            var tradeStorage = storage.GetTradeStorage(security);

            // вот здесь сделки прекрасно загружаются в большом количестве
            IEnumerable<Trade> trades = tradeStorage.Load(null, null);
            Console.WriteLine("Количество загруженных сделок: " + trades.Count());



            var candleStorage = storage.GetCandleStorage(typeof(TimeFrameCandle), security, timeFrame);

            // а здесь пишет 0
            IEnumerable<Candle> candles = candleStorage.Load(null, null);
            Console.WriteLine("Количество загруженных свечек: " + candles.Count());

В чём может быть проблема? Как правильно поступать в таком случае?

War dieses Thema hilfreich?

Thema teilen

Kommentare (5)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Moadip
Moadip

Название треда не соответствует его содержимому. Гидра, исторические данные » не могу получить свечки с финама

Из названия получается что вы не можете скачать свечки Гидрой с финама.

Если Гидра все скачивает и показывает, разбирайтесь со своим кодом. Или как вариант смотрите как это делает Гидра. Исходники открыты.

softarion
softarion Autor

Ещё есть вариант: собрать свечки из тиков. Подскажите, пожалуйста, как это можно сделать!

esper
esper

Скорее всего у вас неверно указан путь к данным. Как собрать свечки из тиков есть в документации.

softarion
softarion Autor

Да, действительно в документации всё прекрасно написано. Я добавил в пример SampleSMA вот такой код:


var storage = new StorageRegistry();

const string path = @"D:\Hydra\R";
((LocalMarketDataDrive)storage.DefaultDrive).Path = path;
var cbs = new TradeStorageCandleBuilderSource { StorageRegistry = storage };
_candleManager.Sources.OfType<TimeFrameCandleBuilder>().Single().Sources.Add(cbs);

потом запускаю:


_candleManager.Start(series, start_dt, stop_dt);

это почему-то работает ультрадолго. тики за один день грузятся минут 5. приложение в памяти занимает 300 мб (тики за вчера + сегодняшние сделки из квика)

А ведь мне всего лишь нужны минутные свечи.

Есть ли способ побыстрее / попроще их получить?

VassilSanych
VassilSanych

Да, память надо как-то чистить. Потому что история используется только для разового вычисления установочных данных и висит в памяти потом всё время. Для портфеля из 5-6 волатильных инструментов это будет полная *опа.