← 返回

Регистрация свечей разных таймфреймов в стратегии

Доброго времени суток!

Изучаю библиотеку на примере 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-минутки обрабатываются нормально.

Что сделано не так? Что я упустил?

本主题对您有帮助吗?

分享主题

评论 (6)

登录创建账户, 登录或注册以发表评论

dimmon
dimmon 作者

Никто не сталкивался с похожей проблемой?

Mikhail Sukhov
Mikhail Sukhov

dimmon: Никто не сталкивался с похожей проблемой?

Если вы пример изменили, выложите исходники измененные сюда. Это существенно упростит поиск.

dimmon
dimmon 作者

Mikhail Sukhov: Если вы пример изменили, выложите исходники измененные сюда. Это существенно упростит поиск.

Выкладываю исходники здесь - RsiBot

Бьюсь уже несколько дней над тем, как получать и тиковые и 5-минутные свечи в одной стратегии. Надеюсь на помощь.

P.S.

Михаил, спешу поблагодарить Вас за создание такой колосальной библиотеки :) Труд проделан героический ;)

Mikhail Sukhov
Mikhail Sukhov

dimmon: Бьюсь уже несколько дней над тем, как получать и тиковые и 5-минутные свечи в одной стратегии. Надеюсь на помощь.

Ошибку нашел. У меня, все как написал ниже Greene-nsk.

Greene-nsk
Greene-nsk

Помню у меня были проблемы, когда в одном candleManager регистрировал несколько бумаг и таймфреймов. Не знаю, бага это или фича. В результате сделал на каждую пару бумага-таймфрейм по отдельному candleManager и все работает. Я собираю их в лист и когда какая-нибудь таймфрейм-бумага нужна, зову: candleManager = CandleManagersList.First(cm => cm.IsTimeFrameCandlesRegistered(security, securityTimeFrame));

dimmon
dimmon
dimmon 作者

Спасибо, воспользовался Вашими советами. Отработало :)