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

我用BarGenerator(self.on_bar,1,self.on_h_bar,interval.HOUR)
数据使用的是行情记录,至少连续记录2星期
在策略初始化后,所有数据显示都是空的
当改写BarGenerator(self.on_bar,1,self.on_h_bar,interval.MINUTE)
策略初始化后有数据
策略是显示均线数值
不清楚哪有问题,是因为数据是行情记录的吗

Administrator
avatar
加入于:
帖子: 2463
声望: 104

出现这个情况,推荐在on_bar里打印下bar.datetime,看看是不是原始数据的时间戳有什么问题

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

我用interval.HOUR,然后打印bar.close_price的时间跟收盘价是正确的按一小时显示,可是初始化1小时,数据却是空的,连收盘价也是空的。

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

在NewBarGenerator和策略bg里改了这个interval.HOUR,显示的时间戳好像有问题,是rb2001.

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

2019-12-13 19:00:00
3714.0
2019-12-13 21:00:00
3719.0
2019-12-13 21:00:00
3715.0
2019-12-13 22:00:00
3728.0
2019-12-16 09:00:00
3719.0
2019-12-16 10:00:00
3707.0
2019-12-16 11:00:00
3708.0
2019-12-16 13:00:00
3707.0
2019-12-16 14:00:00
3697.0
2019-12-16 19:00:00
3697.0
2019-12-16 20:00:00
3692.0
2019-12-16 21:00:00
3695.0
2019-12-16 21:00:00
3687.0
2019-12-16 22:00:00
3683.0
2019-12-17 09:00:00
3684.0
2019-12-17 09:00:00
3686.0
2019-12-17 10:00:00
3690.0
2019-12-17 11:00:00
3685.0
2019-12-17 13:00:00
3694.0
2019-12-17 14:00:00
3687.0
2019-12-17 15:00:00
3687.0
2019-12-17 20:00:00
3690.0
2019-12-17 21:00:00
3688.0
2019-12-17 21:00:00
3689.0
2019-12-17 22:00:00
3695.0
2019-12-18 09:00:00
3697.0
2019-12-18 10:00:00
3695.0
2019-12-18 11:00:00
3694.0
2019-12-18 13:00:00
3690.0
2019-12-18 14:00:00
3688.0
2019-12-18 15:00:00
3688.0
2019-12-18 20:00:00
3690.0
2019-12-18 21:00:00
3690.0
2019-12-18 21:00:00
3693.0
2019-12-18 22:00:00
3688.0
2019-12-19 09:00:00
3697.0
2019-12-19 10:00:00
3696.0
2019-12-19 11:00:00
3704.0
2019-12-19 13:00:00
3715.0
2019-12-19 14:00:00
3716.0
2019-12-19 19:00:00
3716.0
2019-12-19 20:00:00
3720.0
2019-12-19 21:00:00
3717.0
2019-12-19 21:00:00
3718.0
2019-12-19 22:00:00
3719.0
2019-12-20 09:00:00
3726.0
2019-12-20 10:00:00
3730.0
2019-12-20 11:00:00
3728.0
2019-12-20 13:00:00
3718.0
2019-12-20 14:00:00
3719.0
2019-12-20 18:00:00
3719.0
2019-12-20 21:00:00
3724.0
2019-12-20 21:00:00
3736.0
2019-12-20 22:00:00
3742.0
2019-12-23 09:00:00
3746.0
2019-12-23 10:00:00
3746.0
2019-12-23 11:00:00
3738.0
2019-12-23 13:00:00
3740.0
2019-12-23 14:00:00
3741.0

Administrator
avatar
加入于:
帖子: 2463
声望: 104

暮暮 wrote:

我用interval.HOUR,然后打印bar.close_price的时间跟收盘价是正确的按一小时显示,可是初始化1小时,数据却是空的,连收盘价也是空的。

请贴下完整的代码吧,目前的描述定位不了问题

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

合成任意分钟,1至400分钟,CTA回测都是有交易记录的,但在CTA策略,建立策略,合成1至27分钟K线,初始化有数据,从合成28分钟以上,初始化都是数据为空。

合成30分钟,回测CTA,打印的数据

2019-12-20 09:05:00 3723.0 3720.2
2019-12-20 09:35:00 3725.0 3721.0
2019-12-20 10:05:00 3729.0 3723.0
2019-12-20 10:49:00 3732.0 3725.8
2019-12-20 11:19:00 3720.0 3725.8
2019-12-20 13:49:00 3721.0 3725.4
2019-12-20 14:19:00 3720.0 3724.4
2019-12-20 14:49:00 3729.0 3724.4
2019-12-20 21:19:00 3730.0 3724.0
2019-12-20 21:49:00 3739.0 3727.8
2019-12-20 22:19:00 3744.0 3732.4
2019-12-20 22:49:00 3742.0 3736.8
2019-12-23 09:27:00 3748.0 3740.6
2019-12-23 09:57:00 3743.0 3743.2
2019-12-23 10:42:00 3744.0 3744.2
2019-12-23 11:12:00 3743.0 3744.0
2019-12-23 13:42:00 3737.0 3743.0
2019-12-23 14:12:00 3740.0 3741.4
2019-12-23 14:43:00 3742.0 3741.2
2019-12-23 21:10:00 3736.0 3739.6
2019-12-23 21:40:00 3739.0 3738.8
2019-12-23 22:10:00 3739.0 3739.2
2019-12-23 22:40:00 3737.0 3738.6
2019-12-24 09:10:00 3730.0 3736.2
2019-12-24 09:40:00 3730.0 3735.0
2019-12-24 10:10:00 3729.0 3733.0
2019-12-24 10:54:00 3722.0 3729.6
2019-12-24 11:24:00 3724.0 3727.0
2019-12-24 13:54:00 3722.0 3725.4
2019-12-24 14:24:00 3723.0 3724.0
2019-12-24 14:54:00 3718.0 3721.8
2019-12-24 21:21:00 3718.0 3721.0
2019-12-24 21:51:00 3721.0 3720.4
2019-12-24 22:21:00 3717.0 3719.4

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

原来是self.load_bar(10),这个是10day
如果30分钟K线,计算30日均线,需要超过20day数据才能初始化,如果1小时K线,就要导入30day,初始化才有数据。
这个self.load_bar(),合成的分钟或者小时K线,与load_bar中days的关系能改吗?

Administrator
avatar
加入于:
帖子: 2463
声望: 104

load_bar是你自己指定的日期,一般设置长一点就可以,数据多了无非初始化的时候多花个几秒钟,对其他逻辑没有影响

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