🚀 AI 一键生成 qmt 策略代码

miniqmt 无法连接:XtQuantTrader 连接报 -1 怎么解决?

qmt | 发布时间: 2026/5/21
以下内容由 EasyQuant 生成。

问题描述

miniqmt 无法连接

如题,xtdata 相关功能正常

XtQuantTrader 连接就报 -1, 是因为收盘后不能连接交易服务器吗?还是我的版本不支持呢?

qmt 精简模式正常启动,可以看到账户信息和持仓信息

解决方案

miniqmt 无法连接:XtQuantTrader 报错 -1 的原因分析

在使用 miniqmt(XtQuant)进行量化交易开发时,如果遇到 xtdata 行情模块正常,但 XtQuantTrader 交易模块连接时返回 -1,这通常意味着 Python 脚本无法成功连接到本地运行的 QMT 客户端交易服务

针对您的疑问,首先解答两点:

  1. 是否因为收盘后不能连接?
    通常不是。只要您的 QMT 客户端(精简模式)保持运行且交易账号处于登录状态,本地的 Python 脚本随时都可以连接上客户端。收盘后只是无法向交易所报单,但本地接口连接应该是正常的。
  2. 是否因为版本不支持?
    有可能,但概率较小。更常见的原因是路径配置错误或账号参数不匹配。

常见排查步骤与解决办法

请按照以下步骤逐一排查:

1. 检查 QMT 客户端运行状态

虽然您提到 QMT 精简模式已正常启动并能看到持仓,但请确保:

  • 交易账号已经成功登录,且没有掉线。
  • 必须保持 QMT 客户端处于开启状态,因为 XtQuantTrader 是通过本地端口与 QMT 客户端进行通信的。

2. 检查 path 路径配置(最常见原因)

在初始化 XtQuantTrader 时,需要传入 QMT 的用户数据路径。对于 miniqmt(精简模式),这个路径必须指向 QMT 安装目录下的 userdata_mini 文件夹。

错误示例:

path = 'D:\\国信证券QMT交易端\\userdata' # 这是完整版 QMT 的路径

正确示例:

path = 'D:\\国信证券QMT交易端\\userdata_mini' # 必须是 userdata_mini

请仔细检查代码中传入的 path 变量是否正确。

3. 检查 session_idaccount_id

  • session_id:通常可以设置为一个随机整数,确保每次运行不冲突即可(例如 int(time.time()))。
  • account_id:必须与您在 QMT 精简模式中登录的资金账号完全一致。请注意区分账号类型(如股票账号、信用账号等)。

4. 检查 Python 环境与架构

  • QMT 提供的 XtQuant 库通常区分 32 位和 64 位。请确保您使用的 Python 解释器架构(通常推荐 64 位 Python 3.6-3.10)与下载的 XtQuant 库架构一致。

5. 检查防火墙与本地端口

XtQuantTrader 与 QMT 客户端之间通过本地回环地址(127.0.0.1)和特定端口进行通信。如果您的电脑安装了严格的杀毒软件或防火墙,可能会拦截该本地通信,导致连接返回 -1。尝试临时关闭防火墙测试是否能连接成功。

6. 检查 XtQuant 库版本

如果您的 QMT 客户端刚刚进行了自动升级,而 Python 环境中的 xtquant 库还是很久以前的旧版本,可能会出现底层通信协议不匹配的情况。建议从 QMT 客户端安装目录下的 bin.x64/Lib/site-packages 中提取最新的 xtquant 文件夹,覆盖到您当前 Python 环境的 site-packages 中。

总结:
绝大多数情况下,XtQuantTrader 返回 -1 是因为 userdata_mini 路径填写错误QMT 客户端未登录/未启动。请重点检查初始化时的路径参数。