Использование готовой коллекции данных в HistoryEmulationConnector
Добрый день.
Хочу передать коллекцию тиковых сделок IEnumerable<ExecutionMessage> в HistoryEmulationConnector.
Есть ли способ это сделать без использования механизма сохранения коллекции в файл через StorageRegistry?
Пытаюсь делать на основе примера тестирование на исторических данных через Финам,
с использованием метода RegisterHistorySource, но никак не получается.
Данные не подгружаются, свечки не строятся. Подскажите, пожалуйста, мою ошибку,
может быть есть у кого рабочее решение.
Пытаюсь сделать следующим образом:
_historyTicks - переменная содержащая коллекцию IEnumerable<ExecutionMessage> (тики загружены, проверил)
d1 = _historyTicks.ElementAt(0).ServerTime;
d2 = _historyTicks.ElementAt(_historyTicks.Count() - 1).ServerTime;
_historyConnector = new HistoryEmulationConnector(new[] {_selSecurity}, new[] {_selPortfolio})
{
EmulationAdapter =
{
Emulator = { Settings = { MatchOnTouch = false, } }
},
UseExternalCandleSource = false,
CreateDepthFromOrdersLog = false,
CreateTradesFromOrdersLog = false,
};
_historyConnector.HistoryMessageAdapter.StartDate = d1;
_historyConnector.HistoryMessageAdapter.StopDate = d2;
Func<DateTimeOffset, IEnumerable<Message>> 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();