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

BarGenerator模块是以tick数据驱动,如果一个合约长时间没有tick数据过来将导致分钟数据缺失,应该如何解决这个问题呢,要求是实时性(分钟级别),不是盘后解决哈。
请教各位大佬如何修改BarGenerator或者通过其他途径解决呢!

Administrator
avatar
加入于:
帖子: 5100
声望: 295

BarGenerator本身是tick驱动的,如果没有tick就合成不了了。如果硬要加上定时检查,需要额外增加定时检查的逻辑(监听EVENT_TIMER)事件,然后每秒检查当前时间和缓存K线时间戳的偏离度,超过一个水平就全部合成K线。

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

用Python的交易员 wrote:

BarGenerator本身是tick驱动的,如果没有tick就合成不了了。如果硬要加上定时检查,需要额外增加定时检查的逻辑(监听EVENT_TIMER)事件,然后每秒检查当前时间和缓存K线时间戳的偏离度,超过一个水平就全部合成K线。

好的好的 谢谢大佬指导!

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

用Python的交易员 wrote:

BarGenerator本身是tick驱动的,如果没有tick就合成不了了。如果硬要加上定时检查,需要额外增加定时检查的逻辑(监听EVENT_TIMER)事件,然后每秒检查当前时间和缓存K线时间戳的偏离度,超过一个水平就全部合成K线。

陈老师,定时定时合成1分钟Bar的逻辑感觉还是比较重要的。比如像rqdata的数据源,1分钟的bar数据是采用的每个1分钟走完就立刻合成的。但是如果某个品种非常不活跃,比如期权深度虚值的合约的话,可能会导致实盘合成出上一个bar的时间,与回测中rqdata的历史数据的bar的时间点差了很多了。请问这个定时检查的逻辑(监听EVENT_TIMER)事件在VNPY后续的版本会有考虑增加吗?

Administrator
avatar
加入于:
帖子: 5100
声望: 295

目前没,CtaStrategy这些模块,本来就是用来交易流动性好的合约。

对于流动性较差的期权合约,一方面可以用OptionMaster之类的模块来交易(不依赖K线),另一方面也可以用PortfolioStrategy里实现自定义K线切片逻辑来实现

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

沪公网安备 31011502017034号