vn.py量化社区
By Traders, For Traders.
Member
avatar
加入于:
帖子: 21
声望: 0

问下,仿照着布林带的代码写了一个在回测中1h小时的数据合成4小时的数据,但是在回测中的K线图表还是1小为刻度的,这个说明我的这个合成有问题么,还是K先显示只是这样显示的?
description

description

description

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

再追问下,因为tick不支持合成日线,我可以不可以用self.bg4h = BarGenerator(self.on_24hbar, 24, self.on_24hbar, Interval.HOUR)拿小时线来合成日线

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

description
回测数据是数据库一小时的K线

Administrator
avatar
加入于:
帖子: 3840
声望: 202
  1. K线图表显示的是原始数据的频率,所以1小时正常的
  2. 内置的BarGenerator是用分钟线数据合成的,所以没法这么做了,可以很容易自己扩展写一个用小时线合成的
Member
avatar
加入于:
帖子: 21
声望: 0

还请教下,数据库是1H小是K线,实盘代码定义了bg合成4小时的K线self.bg4h = BarGenerator(self.on_bar, 4, self.on_4hbar, interval=Interval.HOUR),

我理解的逻辑实盘中,bg将tick合成1分钟推送到on_bar里面 on_bar调用我自己写的bg4h生成4h的K线再推送到on_4hbar.

那么问题来了初始化导入数据库的K线是1小时的,这样写会回调到on_bar里面由1h合成4小时 再推送到on_4hbar么?(tick可以合成4小时的K线,数据K1小时的导入数据能不能合成,不行的话,我就只有用4小时的数据了)
def on_init(self):
self.write_log("策略初始化")
self.load_bar(days=60, interval=Interval.HOUR, callback=self.on_bar, use_database=True)
self.write_log("loadbar完成")

Administrator
avatar
加入于:
帖子: 3840
声望: 202

不会,自带的BG合成的基本要素是1分钟线,不是1小时线。

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