Сжатие свечек в больший таймфрейм
Есть ли возможность получать свечки большего таймфрейма на основании скачанных исторических свечек меньшего таймфрейма?
Например, я загрузил в HistoryEmulationConnector с использованием StorageRegistry 1-минутные свечки и
хочу получить через коннектор и CandleSeries 5-ти минутные свечки.
Если в коннектор загружать тики, то все работает (только последняя свечка не приходит),
с 1-но минутными свечками данное решение не работает.
Можно конечно преобразовать свечки в тики (нашел метод ToTrade и в коннектор грузить преобразованные тики), правда
данный метод еще не опробовал, но может есть более простое решение?
Пытаюсь сделать следующим образом:
Переменная _historyCandles содержит коллекцию 1-но минутных свечек IEnumerable<TimeFrameCandleMessage>
timeFrame=TimeSpan.FromMinutes(1);
storage = new StorageRegistry();
if (candleStorage != null) candleStorage.Delete();
candleStorage = storage.GetCandleStorage(typeof(TimeFrameCandle),_selSecurity, timeFrame);
candleStorage.Save(_historyCandles);
d1 = _historyCandles.ElementAt(0).OpenTime;
d2 = _historyCandles.ElementAt(_historyCandles.Count() - 1).CloseTime.Date +
_selSecurity.Board.WorkingTime.Periods[0].Times[0].Max;
_historyConnector = new HistoryEmulationConnector(new[] { _selSecurity },
new[] { _selPortfolio }, storage)
{
EmulationAdapter =
{
Emulator = { Settings = { MatchOnTouch = false, } }
},
UseExternalCandleSource = true,
CreateDepthFromOrdersLog = false,
CreateTradesFromOrdersLog = false,
};
_historyConnector.HistoryMessageAdapter.StartDate = d1;
_historyConnector.HistoryMessageAdapter.StopDate = d2;
_historyConnector.Connect();
_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();
Результат - 5-ти минутные свечки не приходят.