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

比如我要写一个基于5min bar的双合约策略。按照我对pair_trading_strategy示例的理解,要自己在on_bars()里面合成5min bar:

def on_bars(self, bars: Dict[str, BarData]):
    if (leg1_bar.datetime.minute + 1) % 5:
            return
    #合成5min bar
    #基于5min bar的策略逻辑
  1. 合成5min bar的部分相当于BarGenerator的update_bar()函数?这么理解正确么?
  2. 这样做实盘也可以么?还是在on_tick中也要做相应变动?
Member
avatar
加入于:
帖子: 337
声望: 27
  1. 不是的,这个只是每五分钟推一次on_bar,不是5分钟bar。
  2. portfolio strategy模块合成N分钟K线可参考【投资组合策略7天入门】课程。
Member
加入于:
帖子: 13
声望: 0

青青子荆 wrote:

  1. 不是的,这个只是每五分钟推一次on_bar,不是5分钟bar。
  2. portfolio strategy模块合成N分钟K线可参考【投资组合策略7天入门】课程。
  1. 这个我知道,我的意思是如果在注释位置把合成五分钟bar写出来是不是就可以了?
    比如可不可以继续用BarGenerator来实现?
    def on_bar(bar: BarData):
     pass
    for symbol in symbols:
     self.bgs[symbol] = BarGenerator(on_bar, 5, on_5min_bar)
    然后
    def on_bars(bars):
     for symbol in symbols:
         self.bgs[symbol].update_bar(bars[symbol])
    这样做会有什么问题么?
© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

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