Доброго времени суток!
Изучаю библиотеку на примере SampleSamartSma. На данный момент необходимо модифицировать стратегию, чтобы учитывались и 5минутные свечи и тиковые.
В MainWindow.xaml.cs регистрирую оба таймфрейма:
//Регистрирую основной таймфрейм
_candleManager.RegisterTimeFrameCandles(_lkoh, _timeFrame);
//Регистрирую тиковый таймфрейм
_candleManager.RegisterTimeFrameCandles(_lkoh, TimeSpan.FromTicks(1));
в классе самой стратегии (за основу взят RSI) пишу следующее:
var tickCandle = m_candleManager.GetLastTimeFrameCandle(base.Security, TimeSpan.FromTicks(1));
if (tickCandle == null)
{
return StrategyProcessResults.Continue;
}
Однакоже tickCandle всегда Null, хотя сделки проходят, на графике свечки меняются. 5-минутки обрабатываются нормально.
Что сделано не так? Что я упустил?
Comments (6)
Login or Create account, Log in or register to leave a comment
Никто не сталкивался с похожей проблемой?
Если вы пример изменили, выложите исходники измененные сюда. Это существенно упростит поиск.
Выкладываю исходники здесь - RsiBot
Бьюсь уже несколько дней над тем, как получать и тиковые и 5-минутные свечи в одной стратегии. Надеюсь на помощь.
P.S.
Михаил, спешу поблагодарить Вас за создание такой колосальной библиотеки :) Труд проделан героический ;)
Ошибку нашел. У меня, все как написал ниже Greene-nsk.
Помню у меня были проблемы, когда в одном candleManager регистрировал несколько бумаг и таймфреймов. Не знаю, бага это или фича. В результате сделал на каждую пару бумага-таймфрейм по отдельному candleManager и все работает. Я собираю их в лист и когда какая-нибудь таймфрейм-бумага нужна, зову: candleManager = CandleManagersList.First(cm => cm.IsTimeFrameCandlesRegistered(security, securityTimeFrame));
Спасибо, воспользовался Вашими советами. Отработало :)