【实操排查】QMT查询持仓返回None是查询失败还是没有持仓?
发布时间:14小时前阅读:6

调用query_stock_positions(acc)返回None,很多新手第一反应是"查询出错了",其实未必。XtQuant的文档里说的很清楚:None有两种含义,一种是查询本身失败(连接问题、账号问题等),另一种是当前确实没有持仓,两种情况都返回None,不做区分。要判断是哪种情况,需要结合其他信息来辅助判断。
区分方式:先调用query_stock_asset(acc)查一下资产,如果asset返回正常的XtAsset对象,说明账号连接是好的,这时候positions返回None大概率就是真的没有持仓;如果asset也返回None,说明连接本身有问题,要先排查连接。另外可以查一下query_stock_orders(acc),如果有委托记录但持仓为空,也基本能佐证是正常情况。
策略代码里处理None的时候要注意:直接对None迭代(比如for pos in positions:)会报TypeError,需要先做非空判断。推荐的写法是if positions is None: pass,或者用positions = positions or []来保证后续迭代不出错。这种防御性编程习惯在XtQuant里很重要,很多接口都可能返回None,没做判断的话策略容易在空仓状态下崩溃。
QMT接口使用有问题找我,量化开户+策略调试一起搞。以上内容仅供投资者教育参考,不构成任何投资建议,入市有风险,投资需谨慎。
温馨提示:投资有风险,选择需谨慎。
-
国常会力挺“六张网”,利好哪些板块?普通人如何稳健布局?
2026-05-18 15:52
-
REITs打新: 风电项目 ⌈中核新能⌋ 今日发售!点击领取认购操作指南~
2026-05-18 15:52
-
华泰AI涨乐APP超实用提示词分享,直接复制使用~
2026-05-18 15:52


问一问

+微信
分享该文章
