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

这两天看了2.1.6版本里的海龟策略,发现在新的K线生成时,会根据情况预设限价单和停止单。而这两种单是需要在价格到达预定价格时才会被触发为市价单。我暂时没跟踪到在什么地方这两种单子被触发的代码。我猜想是不是有个单独的订单处理类,在OnTick函数里检查所有的限价单和停止单,在满足条件时将它们触发给市价单发出。不知道我这个猜想和vnpy的实现是不是一样,有了解这个触发机制的同学能解下惑吗?非常感谢!

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

自己跟了一下框架代码,经过多次不同类的send_order(或其它类似的订单发送函数),最后跟到strategy.on_stop_order()上,但本策略的on_stop_order是个空函数,简单pass了。所以还是没明白这个停止单最后会在什么时候,什么地方被触发。

Administrator
avatar
加入于:
帖子: 4122
声望: 229

差不多的原理,回测的话在vnpy.app.cta_strategy.backtesting模块下,搜索send_order函数可以看到内部的完整逻辑。

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

回测部分基本了解了,策略的停止单最后会放入回测引擎的活动订单数组里,然后数组里的单子会在符合条件时被模拟成交。
但是实盘逻辑里,我暂时还没找到那个猜想的“订单处理对象”,以及对应的处理代码,能再指教一下吗?

Member
avatar
加入于:
帖子: 736
声望: 35

那就请去engine.py里看一下

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

找到相关代码了,谢谢!

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