← Назад

Как заставить TimeFrameStrategy стартовать с начала свечки

Есть TimeFrameStrategy. Хочется, чтобы как в WealthLab'е обработка входящей информации происходила после формирования соответствующей таймфрейму свечи. Но, если запускать стратегию в любой момент времени, то, она начинает обрабатывать информацию исходя и этого времени. Т. е., если запустили в 12:45:30, то следующая итерация пойдет с 12:46:30(для минуток). А хочется, чтобы, следующая итерация началась именно в 12:46:00 и последующие стартовали соответственно в 12:47:00, 12:48:00 итд. Подскажите, пожалуйста, как это реализовать?

Комментарии (6)

Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий

esper
esper

CandleSeries.WhenFinished

_series.WhenFinished().Do(candle=>{}).Apply(this);
Lipot
Lipot Автор

Извиняюсь, за тупой вопрос. Но ткните, пожалуйста, куда надо вставлять эту строчку в итеративной модели?

В метод OnProcess или OnStarted?

Как я уже упоминал, хочется, чтобы активация события "Интервал" в итоге происходила ровно в соответствии с таймфреймом. То есть, получается, нужно один раз попасть на окончание свечи и дальше повторять итерацию с постоянным заданным таймфреймом.

esper
esper

А зачем нужна таймфрейм стратегия, если свечки и так формируются с заданным периодом?

Lipot
Lipot Автор

Просто, итеративная модель на данный момент проще воспринимается. Особенно после Wealth Lab'a.

Так как мне решить проблему?

Moadip
Moadip

Используйте Strategy, как базовый класс для своей стратегии, вместо TimeFrameStrategy.

В OnStartedдобавляется правило CandleSeries.WhenFinished.

Когда свечка завершается, выполняется какое то действие. Это и будет "итеративный вариант". В примерах есть SmaStrategy, посмотрите как там сделано.

Lipot
Lipot Автор

Спасибо esper и Moadip. Вероятно, позже перейду к событийной модели.

Мне она, честно говоря, не очень нравится также из-за того, что событие окончания свечки приходит с задержкой 4-8 секунд. Это нормально? Или у меня какой-то глюк. Работаю через Квик.