← Zurück

Загрузка исторических данных в понедельник

Задача простая - мы "разогреваем" стратегию, подгружая исторические данные перед стартом, чтобы сформировались индикаторы. Для этого добавляем к realtime данным исторические данные из гидры.


                        candleManager = new CandleManager(new TradeCandleBuilderSource(connector));
                        var cbs = new TradeStorageCandleBuilderSource { StorageRegistry = storageRegistry };
                        candleManager.Sources.OfType<TimeFrameCandleBuilder>().Single().Sources.Add(cbs);

                        candleSeries = new CandleSeries(typeof(TimeFrameCandle), security, timeFrame);
                        candleSeries.ProcessCandle += Draw;
                        
                        int numHistDays = DateTime.Today.DayOfWeek.ToString() == "Monday" ? 3 : 1;
                        candleManager.Start(candleSeries, DateTime.Now - TimeSpan.FromDays(numHistDays), DateTime.MaxValue);

Т.е. в любой день недели мы запрашиваем данные за прошлый торговый день из хранилища. Но в понедельник, так как было 2 выходных, это не работает, т.к. надо запросить данные из пятничных торгов.

В теории кусок кода выше должен работать. Но в реальности, почему-то данные за пятницу ни при каких условиях не подкачиваются (либо подкачиваются но не отображаются на графике), хотя обращение к файлам идет:


FileAccess: N:\Hydra MarketData\R\RIM4@FORTS\2014_04_04\trades.bin
FileAccess: N:\Hydra MarketData\R\RIM4@FORTS\2014_04_05\trades.bin
FileAccess: N:\Hydra MarketData\R\RIM4@FORTS\2014_04_06\trades.bin
FileAccess: N:\Hydra MarketData\R\RIM4@FORTS\2014_04_07\trades.bin

War dieses Thema hilfreich?

Thema teilen

Kommentare (11)

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

Mikhail Sukhov
Mikhail Sukhov

Пятница это четвертое. Судя по логу был запрос

devruss
devruss Autor

Михаил Сухов: Пятница это четвертое. Судя по логу был запрос

Ну так я о том и говорю, что запрос был, а данные не выводятся... Более того, если поставить запрос за 10 дней назад, то обращение к файлам идет, но вывода данных нет

Я такой баг вижу каждый понедельник... во вторник данные за понедельник выводятся без проблем уже

Mikhail Sukhov
Mikhail Sukhov

devruss: Я такой баг вижу каждый понедельник... во вторник данные за понедельник выводятся без проблем уже

А если делать запрос напрямую к тикам через Storage API?

devruss
devruss Autor

Михаил Сухов:

devruss: Я такой баг вижу каждый понедельник... во вторник данные за понедельник выводятся без проблем уже

А если делать запрос напрямую к тикам через Storage API?

это как?

Тот способ, который выше, ты мне сам подсказал, других способов скрестить live & historical data в S# я не знаю

Mikhail Sukhov
Mikhail Sukhov

devruss: это как?

SampleStorage

devruss
devruss Autor

Михаил Сухов:

devruss: это как?

SampleStorage

Вот этот метод?


var loadedTrades = tradeStorage.Load(DateTime.Today, DateTime.Today + TimeSpan.FromMinutes(1000));

А как потом эти тиковые сделки запихнуть в candleManager?

Mikhail Sukhov
Mikhail Sukhov

devruss: А как потом эти тиковые сделки запихнуть в candleManager?

В начале я бы их проэнумеровал, чтобы узнать, если ли данные.

devruss
devruss Autor

Михаил Сухов:

devruss: А как потом эти тиковые сделки запихнуть в candleManager?

В начале я бы их проэнумеровал, чтобы узнать, если ли данные.

Круто, а как это сделать?

Данные есть - так как в бэктестинге выводятся из того же стораджа и все ок

Mikhail Sukhov
Mikhail Sukhov

Через foreach

devruss
devruss Autor

Данные есть

devruss
devruss Autor

понедельник уже близко=) Михаил, есть идеи как загрузить историю за прошлую неделю?