如图,布林带上下轨都不显示,请问是什么原因,用的两个模板策略,参数也都没改,求大神解答!
如图,布林带上下轨都不显示,请问是什么原因,用的两个模板策略,参数也都没改,求大神解答!
回测的时候print得出来东西吗
是不是历史数据不够初始化
xiaohe wrote:
是不是历史数据不够初始化
对于价差交易的StatisticalArbitrageStrategy策略,未经任何修改,直接套入hc2101和rb2101的价差,实验后发现就是self.am.inited不能为True, 但使用任意一个cta策略,历史数据是能够完成初始化的,所以也不是rqdata的问题,在on_init函数中,同样是使用的self.load_bar(10),cta策略可以初始化,而spread策略无法初始化。
今天做了一下实验,代码如下:
第3个分钟print的结果:
第n个分钟print的结果:
根据以上结果显示,self.am 不去拉取历史数据,而是在运行过程中积累实时数据作为初始化的数据。
arraymanager是储存传进来的数据进行指标计算的,拉取历史数据初始化是load_bar函数做的事情
xiaohe wrote:
arraymanager是储存传进来的数据进行指标计算的,拉取历史数据初始化是load_bar函数做的事情
那就是self.load_bar出现了问题,但是我的rqdata数据也没到期,在cta策略中能正常初始化,实在头大啊,不知道前辈有没有遇到过类似的问题,还请指教一下。
可以自己去vnpy.app.spread_trading.base里看一下load_bar_data函数,与cta不同,这里是没有写去rqdata拉数据的逻辑的,这里直接去数据库拉的,数据库没有的自然就找不到了
xiaohe wrote:
可以自己去vnpy.app.spread_trading.base里看一下load_bar_data函数,与cta不同,这里是没有写去rqdata拉数据的逻辑的,这里直接去数据库拉的,数据库没有的自然就找不到了
之前研究了一下load_bar_data,没看出个所以然,按照前辈所说的, 利用vnpy自带的数据管理模块更新数据以后,可以正常使用,感谢解答