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

description

我的策略要同时用到一分钟和五分钟的K线,在策略文件中是这么写的,是哪里错了吗? self.put_event()是on_bar和on_5_min_bar下面都要加吗?
def init(self, cta_engine, strategy_name, vt_symbol, setting):
""""""
super().init(cta_engine, strategy_name, vt_symbol, setting)

    self.bg1 = BarGenerator(self.on_bar)
    self.am1 = ArrayManager()

    self.bg5 = BarGenerator(self.on_bar, 5, self.on_5_min_bar)
    self.am5 = ArrayManager()

def on_tick(self, tick: TickData):
    """
    Callback of new tick data update.
    """
    self.bg1.update_tick(tick)
    self.bgx.update_tick(tick)

def on_bar(self, bar: BarData):
    """
    Callback of new bar data update.
    """
    self.bg1.update_bar(bar)
    self.bg5.update_bar(bar)
    if not self.am1.inited:
         return

def on_5_min_bar(self, bar: BarData):
    """"""
    self.cancel_all()

    self.am5.update_bar(bar)
    if not self.am5.inited:
        return
Member
avatar
加入于:
帖子: 5080
声望: 306

你on_bar已经收到1分钟的bar了,可以直接用了,不需要update_bar了。
多周期策略请参考vnpy_ctastrategy.strategies里的示例策略multi_timeframe_strategy。

Member
avatar
加入于:
帖子: 46
声望: 1

xiaohe wrote:

你on_bar已经收到1分钟的bar了,可以直接用了,不需要update_bar了。
多周期策略请参考vnpy_ctastrategy.strategies里的示例策略multi_timeframe_strategy。

self.bg1.update_tick(tick)
self.bgx.update_tick(tick)
请问这两个都要吗

Member
avatar
加入于:
帖子: 5080
声望: 306

示例策略multi_timeframe_strategy调用一个即可

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

沪公网安备 31011502017034号

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