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

tick回测模式下,在on_tick()函数上用self.buy(tick.last_price,1)开多单,但下单没成功,self.pos没有变化,请问会是什么问题?

Administrator
avatar
加入于:
帖子: 3810
声望: 199

数据不够,策略引擎没完成初始化,进入实际交易状态,多准备点数据吧

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

我准备了一个月的数据了,共计91w条tick数据 策略引擎已经是完成初始化的,但交易记录为空.我确定已经下了单的了,为了测试,我是设置一到11点,我就调用self.buy(tick.last_price,1),断点调试也确定到了self.buy(tick.last_price,1)这一步。不知道为啥就是没看到下单记录

运行结果图

description

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

yaqiang27 wrote:

我准备了一个月的数据了,共计91w条tick数据 策略引擎已经是完成初始化的,但交易记录为空.我确定已经下了单的了,为了测试,我是设置一到11点,我就调用self.buy(tick.last_price,1),断点调试也确定到了self.buy(tick.last_price,1)这一步。不知道为啥就是没看到下单记录

运行结果图

description

先用vnpy自带的策略运行一次看看,若正常运行。就是你的代码出问题了。
刚才我才发现我代码里if not am.inited: return 写成 if am.inited: return

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

据我所知。self.trading 在vnpy的ui, 策略交易模块中,点击“初始化”,“启动” 就会为true。
所以self.trading 应该会在回测或策略交易模块被更改

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

yy10112001 wrote:

据我所知。self.trading 在vnpy的ui, 策略交易模块中,点击“初始化”,“启动” 就会为true。
所以self.trading 应该会在回测或策略交易模块被更改
已经找到问题了,我跟踪调试后发现,run_backtesting()会先调用on_init()在load_tick(1)上下载对应天数的tick,然后调用self.callback(data),这个时候策略初始化才算完成,剩下的数据才会用来做交易,所以我是数据载入天数不够,程序中也存在逻辑问题。已经能正常下单了。谢谢你的回答哈

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

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)不是代表的一天的数据吗?请问数据库中有数据会自动从数据库掉用吗?

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

横权霸 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获取

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