Использование готовой коллекции данных в HistoryEmulationConnector

Использование готовой коллекции данных в HistoryEmulationConnector
Atom
14.03.2017
Pelmen32


Добрый день. Хочу передать коллекцию тиковых сделок IEnumerable в HistoryEmulationConnector.

Есть ли способ это сделать без использования механизма сохранения коллекции в файл через StorageRegistry?

Пытаюсь делать на основе примера тестирование на исторических данных через Финам, с использованием метода RegisterHistorySource, но никак не получается. Данные не подгружаются, свечки не строятся. Подскажите, пожалуйста, мою ошибку, может быть есть у кого рабочее решение.

Пытаюсь сделать следующим образом: _historyTicks - переменная содержащая коллекцию IEnumerable (тики загружены, проверил)

d1 = _historyTicks.ElementAt(0).ServerTime; d2 = _historyTicks.ElementAt(_historyTicks.Count() - 1).ServerTime;

_historyConnector = new HistoryEmulationConnector(new[] , new[] ) } },

                            UseExternalCandleSource = false,
                            CreateDepthFromOrdersLog = false,
                            CreateTradesFromOrdersLog = false,
                        };

_historyConnector.HistoryMessageAdapter.StartDate = d1; _historyConnector.HistoryMessageAdapter.StopDate = d2;

Func<DateTimeOffset, IEnumerable> selectionData = d => _historyTicks.Where(ht => ((ht.ServerTime.Date == d.Date) && (ht.ServerTime.TimeOfDay==d.TimeOfDay)));

_historyConnector.RegisterHistorySource(_selSecurity, MarketDataTypes.Trades, typeof (Trade), selectionData);

var candleManager = new CandleManager(_historyConnector);

_candleTimeFrame = TimeSpan.FromMinutes(5);

_connectorCandleSеries = new CandleSeries(typeof(TimeFrameCandle), _selSecurity, _candleTimeFrame);

candleManager.Processing += DrawElement;

candleManager.Start(_connectorCandleSеries);

_historyConnector.Start();




Спасибо: RashinSergey


< 1 2 
Pelmen32

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


Спасибо, что подсказали про смещение на 1 день. Вроде разобрался. Если период в HistoryMessageAdapter задавать в формате UTC, то пропущенных дней нет.

Период указываю следующим образом:

_historyConnector.HistoryMessageAdapter.StartDate = d1.Date.ToUniversalTime();
                _historyConnector.HistoryMessageAdapter.StopDate = d2.Date.ToUniversalTime().AddDays(1);
Спасибо:

Support

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


ок.

Спасибо:
< 1 2 

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

loading
clippy