tick回测模式下,在on_tick()函数上用self.buy(tick.last_price,1)开多单,但下单没成功,self.pos没有变化,请问会是什么问题?
tick回测模式下,在on_tick()函数上用self.buy(tick.last_price,1)开多单,但下单没成功,self.pos没有变化,请问会是什么问题?
数据不够,策略引擎没完成初始化,进入实际交易状态,多准备点数据吧
我准备了一个月的数据了,共计91w条tick数据 策略引擎已经是完成初始化的,但交易记录为空.我确定已经下了单的了,为了测试,我是设置一到11点,我就调用self.buy(tick.last_price,1),断点调试也确定到了self.buy(tick.last_price,1)这一步。不知道为啥就是没看到下单记录
运行结果图
yaqiang27 wrote:
我准备了一个月的数据了,共计91w条tick数据 策略引擎已经是完成初始化的,但交易记录为空.我确定已经下了单的了,为了测试,我是设置一到11点,我就调用self.buy(tick.last_price,1),断点调试也确定到了self.buy(tick.last_price,1)这一步。不知道为啥就是没看到下单记录
运行结果图
先用vnpy自带的策略运行一次看看,若正常运行。就是你的代码出问题了。
刚才我才发现我代码里if not am.inited: return 写成 if am.inited: return
据我所知。self.trading 在vnpy的ui, 策略交易模块中,点击“初始化”,“启动” 就会为true。
所以self.trading 应该会在回测或策略交易模块被更改
yy10112001 wrote:
据我所知。self.trading 在vnpy的ui, 策略交易模块中,点击“初始化”,“启动” 就会为true。
所以self.trading 应该会在回测或策略交易模块被更改
已经找到问题了,我跟踪调试后发现,run_backtesting()会先调用on_init()在load_tick(1)上下载对应天数的tick,然后调用self.callback(data),这个时候策略初始化才算完成,剩下的数据才会用来做交易,所以我是数据载入天数不够,程序中也存在逻辑问题。已经能正常下单了。谢谢你的回答哈
yaqiang27 wrote:
yy10112001 wrote:
据我所知。self.trading 在vnpy的ui, 策略交易模块中,点击“初始化”,“启动” 就会为true。
所以self.trading 应该会在回测或策略交易模块被更改
已经找到问题了,我跟踪调试后发现,run_backtesting()会先调用on_init()在load_tick(1)上下载对应天数的tick,然后调用self.callback(data),这个时候策略初始化才算完成,剩下的数据才会用来做交易,所以我是数据载入天数不够,程序中也存在逻辑问题。已经能正常下单了。谢谢你的回答哈
您好,请问load_bar(1)不是代表的一天的数据吗?请问数据库中有数据会自动从数据库掉用吗?
横权霸 wrote:
yaqiang27 wrote:
yy10112001 wrote:
据我所知。self.trading 在vnpy的ui, 策略交易模块中,点击“初始化”,“启动” 就会为true。
所以self.trading 应该会在回测或策略交易模块被更改
已经找到问题了,我跟踪调试后发现,run_backtesting()会先调用on_init()在load_tick(1)上下载对应天数的tick,然后调用self.callback(data),这个时候策略初始化才算完成,剩下的数据才会用来做交易,所以我是数据载入天数不够,程序中也存在逻辑问题。已经能正常下单了。谢谢你的回答哈
您好,请问load_bar(1)不是代表的一天的数据吗?请问数据库中有数据会自动从数据库掉用吗?
是代表一天的数据,数据库中有数据的话会先在数据上获取的,如果不满足的话再到rqdata获取