VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 6
声望: 0

回测我是用开盘价作为开仓价格,发出委托后,当前bar是马上可以成交的,但系统的成交是放到下一个bar来判断,下一bar的最低价如果高于委托的开盘价,系统会撤销委托,但实盘时这种情况是会成交的。如果我不写self.cancel_all(),系统又会连续开多笔同向仓,if self.pos == 0:的判断好像失效了。请问有什么办法解决吗,委托可以设置马上成交

Member
avatar
加入于:
帖子: 4764
声望: 289

“如果我不写self.cancel_all(),系统又会连续开多笔同向仓”这句是指的实盘还是回测呢?如果指的回测,是因为上笔委托没有成交吧

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

是的,没成交将进入待处理,又没有cancel,就变成多笔了
委托成交,我找到方法了,把order.price >= long_cross_price删了就行了

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

发现删除order.price >= long_cross_price判断 会影响收益率计算,计算会不准 ,请问有修改委托可以当前bar成交,不影响收益计算的方式吗

Member
avatar
加入于:
帖子: 4764
声望: 289

没有,这样就变成未来函数了

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

open不涉及未来函数,就是一个确定的限价,符合条件发起委托没必要限制,规避未来函数和信号闪烁应该在策略本身上考虑,不应该在系统机制上限制

Member
avatar
加入于:
帖子: 20
声望: 4

就算是实际实盘,如果用的是bar的策略,在收到一根bar的open数据的时候,其实这根bar已经结束了,下一根bar已经开始了。你说的情况对于用bar的策略应该不成立吧,只有实际你在用tick或者是手动在交易才有可能。

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

如果策略是上个bar的close和最新的open价作比较,符合条件就直接open开仓,最新bar的open价基本都能成交,除非当前open价成交量小并且马上跳开成了最低才有可能滑点成交,如果下一个bar再发出委托,如果已经有趋势了,走了一个bar的价格,就不是滑点能解决的了,下一bar的最低比上一个open高,就会大概率不成交被撤单

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

不过删除order.price >= long_cross_price,影响收益计算的问题我解决了,所以目前就只是建议了

Member
avatar
加入于:
帖子: 54
声望: 1

这个还是推荐用停止单吧,或者用超价限制单,一般来说上一根的close和最新的open应该是一个价,但是为了防止未来函数的出现框架里面要求不能用还没有合成完成的k数据

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

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】