Есть ли возможность получать свечки большего таймфрейма на основании скачанных исторических свечек меньшего таймфрейма? Например, я загрузил в 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[] , new[] , storage) } }, 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-ти минутные свечки не приходят.
Comments (1)
Login or Create account, Log in or register to leave a comment
Нельзя... Используйте готовые свечи нужного тайм-фрейма...