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

在ctpgateway中有定时执行查询函数, 这用于主界面上仓位更新这容易理解
def init_query(self):
""""""
self.count = 0
self.query_functions = [self.query_account, self.query_position]
main engine有处理这个事件,用于GUI显示;
我看到策略里比如cta或者spreadtrading都又订阅了position事件 会去更新coverter里的holdings 但是同时又会去根据ontrade去更新仓位 processposition拿到当前总量,但是on trade信息是增量式的 这两步是不是有些重复?(考虑一种情况, ontrade来的晚了一些,onposition刚查出成交后的总量 那么ontrade信息会重复计数) 我的理解是开始查一次即可,后面每个策略没必要单独去订阅position事件吧 反而会出错 感觉 当然不订阅 等于说是完全依赖网络的可靠性 我猜想系统订阅position事件是为了考量网络不行的时候 万一ontrade掉包了 可以等于重新拉了一遍完整数据了

再结合 我以前报过的一个bug https://github.com/vnpy/vnpy/issues/2234 实际上ontrade也不够准 应该不处理 用onorder去更新仓位更合理;

Administrator
avatar
加入于:
帖子: 3902
声望: 208

持续查询持仓的目的是为了保证和服务端的同步,当然你也可以完全在本地计算

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