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

操作系统: windows7;
Python环境: Anaconda Python 2.7 32位;
Vn.py框架: v1.9.1 Release;

报错内容:
id_tmp = mainEngine.sendOrder(req, 'CTP')之后, id_tmp可以返回订单号'CTP.5',
也确实成交了,但是用info_tmp = mainEngine.getOrder(id_tmp), info_tmp是None;

问题:
请问是否有一定能够直接查询到订单状态的api,比如到tdApi层?

Administrator
avatar
加入于:
帖子: 1888
声望: 85
  1. 请检查你的查询语句调用的位置,记住要在收到onOrder推送后再调用,否则还没收到数据是查不到的
  2. 所有API中的查询功能都是异步的,也就是发出查询请求后要等待一段时间才能收到返回,返回结果也可能存在延时,还不如自己基于onOrder推送来维护
Member
avatar
加入于:
帖子: 8
声望: 0

谢谢您的回复!

这两天研究了下调用关系,发现gateWay.onOrder()之后eventEngine.put(), eventEngine.__process(), 这些流程都是通的,而且eventEngine还有个timer。

所以,问题是这个完整无死角的流程是什么原因导致的交易所onRtnOrder()中返回的event data数据没有到dataEngine.orderDict中呢?

还望不吝赐教,指导一下!

Administrator
avatar
加入于:
帖子: 1888
声望: 85

因为这个返回是需要时间的,你可能是在数据返回前就进行了查询

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