vn.py官网
开源量化社区
Member
avatar
加入于:
帖子: 8
声望: 0

如开仓信号是30分钟,平仓信号在4小时,该如何创建K线呢?
BarGenerator在Interval是MINUTE的情况下最多只能创建60分钟K线,如果用minute创建30分钟,再用hour创建4小时,会冲突的吧?
而且初始化的时候interval该怎么选择呢?

Member
avatar
加入于:
帖子: 3124
声望: 182

都是基于1分钟K线数据合成的半小时和四小时,选分钟就好了。
多周期策略编写可参考示例策略multi_timeframe_strategy

Member
avatar
加入于:
帖子: 8
声望: 0

xiaohe wrote:

都是基于1分钟K线数据合成的半小时和四小时,选分钟就好了。
多周期策略编写可参考示例策略multi_timeframe_strategy

60分钟内的多周期是没问题的,都试了。
但如果这样创建4小时线: self.bg_240m = BarGenerator(self.on_bar, 240, self.on_240min_bar, interval=Interval.MINUTE)
在self.on_240min_bar里print出不来当前bar的信息,是不是意味这样的创建方式不对?

请您指点指点

Member
avatar
加入于:
帖子: 3124
声望: 182

超过60分钟bg的Interval就不能选minute了。bg默认的Interval是Interval.MINUTE
合成四小时首先应该在策略文件最上面加一句:
from vnpy.trader.constant import Interval
然后合成四小时K线:
self.bg_4h = BarGenerator(self.on_bar, 4, self.on_4hour_bar, Interval.HOUR)

Member
avatar
加入于:
帖子: 8
声望: 0

xiaohe wrote:

超过60分钟bg的Interval就不能选minute了。bg默认的Interval是Interval.MINUTE
合成四小时首先应该在策略文件最上面加一句:
from vnpy.trader.constant import Interval
然后合成四小时K线:
self.bg_4h = BarGenerator(self.on_bar, 4, self.on_4hour_bar, Interval.HOUR)

在策略类的init函数里这样写,对么?
self.bg_30m = BarGenerator(self.on_bar, window=30, on_window_bar=self.on_30m_bar, interval=Interval.MINUTE)
self.bg_4h = BarGenerator(self.on_bar, window=4, on_window_bar=self.on_4h_bar, interval=Interval.HOUR)

那在回测时,set_parameters里面,interval选MINUTE还是HOUR?

Member
avatar
加入于:
帖子: 3124
声望: 182

是的。
minute,因为都是由一分钟K线合成的,bg初始化里填的Interval只是告诉bargenerator要合成的K线的频率,感兴趣可以自己去vnpy.trader.utility下看一下BarGenerator的代码

Member
avatar
加入于:
帖子: 8
声望: 0

xiaohe wrote:

是的。
minute,因为都是由一分钟K线合成的,bg初始化里填的Interval只是告诉bargenerator要合成的K线的频率,感兴趣可以自己去vnpy.trader.utility下看一下BarGenerator的代码

谢谢您的耐心解答!

Member
加入于:
帖子: 13
声望: 0

请问如果要合成90min bar该怎么办呢?可以用1.5 hour么?

Member
avatar
加入于:
帖子: 3124
声望: 182

可参考微信公众号【vnpy-community】-【进阶课程】-【CTA策略】的课时08-K线的自定义合成

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

沪公网安备 31011502017034号