【量化入门】XtQuant如何实现在推送回调里调用同步查询接口?
发布时间:10小时前阅读:10

在on_stock_order等回调函数里调用query_stock_positions这类同步查询接口,有时候会卡住不返回,这是XtQuant的线程调度机制导致的。推送回调和同步查询共用同一个处理线程,在push回调里等待query的结果,而query的结果又排在push之后处理,形成了死锁,所以卡住了。
解决方法有两种:一是用set_relaxed_response_order_enabled(True)开启宽松时序模式,这样query的结果会从独立的专用线程返回,不会和push回调争同一个处理队列,死锁问题解除;二是在回调里改用异步版本的查询接口(如果有的话),或者把需要查询的逻辑放到单独的线程里异步执行,不在回调主流程里等待。
需要注意的是,开启宽松时序之后,查询数据和推送数据之间的时序关系会变得不确定。比如在t1时刻push了一个委托状态变化,然后在回调里发起查询,拿到的结果可能是更早时刻的状态快照,而不是"push之后的最新状态"。策略逻辑如果依赖严格的时序一致性,要小心这个副作用,官方推荐在回调里尽量用异步查询接口来规避。
XtQuant多线程逻辑有疑问找我,量化环境+开户一站式解决。以上内容仅供投资者教育参考,不构成任何投资建议,入市有风险,投资需谨慎。
温馨提示:投资有风险,选择需谨慎。
-
国常会力挺“六张网”,利好哪些板块?普通人如何稳健布局?
2026-05-18 15:52
-
REITs打新: 风电项目 ⌈中核新能⌋ 今日发售!点击领取认购操作指南~
2026-05-18 15:52
-
华泰AI涨乐APP超实用提示词分享,直接复制使用~
2026-05-18 15:52


问一问

+微信
分享该文章
