VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 71
声望: 3

我想开发一个多周期策略,用到15min,1h和 day四个周期
我想在on_tick中合成1分钟数据,然后四个周期的bar数据都源自1分钟数据的合成。
求助,def on_tick(self, tick: TickData):该如何写才能把生成的bar带入到 on_bar中的bg_15min.update_bar(bar)中?

class myStrategy(CtaTemplate):
def init(self, cta_engine, strategy_name, vt_symbol, setting):
"""构造函数"""
super().init(cta_engine, strategy_name, vt_symbol, setting)

    #日线
    self.am_daily = my_ArrayManager(size=100)
    self.bg_daily = DailyBarGenerator(self.on_daily_bar, time(14, 59)) #自定义的用于日线的bargenerator
     #60min
    self.am_60min = my_ArrayManager(size=100)
    self.bg_60min = BarGenerator(
        self.on_bar,
        window=60,
        on_window_bar=self.on_60min_bar,
        interval=Interval.MINUTE
    )

     #15min
    self.am_15min = my_ArrayManager(size=100)
    self.bg_15min = BarGenerator(
        self.on_bar,
        window=15,
        on_window_bar=self.on_15min_bar,
        interval=Interval.MINUTE
    )

    def on_tick(self, tick: TickData):
    """
    Callback of new tick data update.
    此处进行修改,仅仅合成分钟数据,其他数据都是基于1分钟数据合成
    """        
    #我这里该如何写?

    pass
Member
avatar
加入于:
帖子: 5010
声望: 302

update_tick
多时间窗口可参考示例策略multi_timeframe_strategy

Member
avatar
加入于:
帖子: 71
声望: 3

谢谢,我想问在实盘中,多周期怎么更新bar
我看了例子后
应该在
def on_tick(self, tick: TickData):
self.bg_15min.update_tick(tick)

而且只需要在1个barganerator实例里头写出update_tick(tick)就可以。

© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】