🚀 AI 一键生成 qmt 策略代码

mini qmt 报错 "not authenticated" 怎么解决?

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

问题描述

mini qmt 提示 not authenticated

请问一下,我第一次使用 mini qmt,但是提示 func:getStockListInSector, error:{ "error" : { "error" : "not authenticated" } }

解决方案

在第一次使用 mini qmt(通常是通过 xtquant 库连接 QMT 客户端)时,遇到 func:getStockListInSector, error:{ "error" : { "error" : "not authenticated" } } 的报错,根本原因是您的 Python 脚本未能成功连接到已登录的 QMT 客户端数据服务

not authenticated 的字面意思是“未认证”,在 mini qmt 的架构中,这意味着数据接口没有检测到有效的登录状态。请按照以下步骤进行排查和解决:

1. 确认 QMT 客户端已启动并成功登录

mini qmt 本质上是调用本地运行的 QMT 客户端的数据和交易服务。因此,必须先打开 QMT 客户端,并成功登录您的资金账号或测试账号。如果客户端未启动、处于离线状态或断网,Python 脚本将无法获取认证信息。

2. 确认是否开启了 mini qmt 模式

在 QMT 客户端中,确保您使用的是支持 mini qmt(极简模式/独立 Python 运行)的版本。部分券商版本的 QMT 需要在设置中勾选允许外部 Python 连接,或者确保您启动的是带有数据服务的正确版本。

3. 检查 Python 代码中的连接初始化

在调用 getStockListInSector 等数据接口之前,必须确保 xtdata 模块已经正确连接到 QMT 客户端。通常不需要手动调用登录函数,但需要确保连接端口正确(默认数据端口通常是 58609,具体视券商版本而定)。

正确的初始化示例代码:

from xtquant import xtdata

# 尝试连接 QMT 数据服务(通常 xtdata 导入时会自动尝试连接默认端口)
# 如果您的 QMT 安装在非默认路径或使用了非默认端口,可能需要指定路径
# xtdata.data_dir = r'D:\国信证券QMT交易端\userdata_mini'

# 测试连接是否成功,获取沪深300成分股
try:
    sector_name = '沪深300'
    stock_list = xtdata.get_stock_list_in_sector(sector_name)
    print(f"成功获取 {sector_name} 成分股,共 {len(stock_list)} 只")
except Exception as e:
    print(f"获取数据失败,错误信息: {e}")

4. 检查防火墙或杀毒软件拦截

由于 mini qmt 是通过本地 Socket 端口(如 127.0.0.1:58609)与 QMT 客户端通信的,请检查是否有防火墙或杀毒软件拦截了 Python 进程或 QMT 客户端的本地网络通信。

总结

遇到 not authenticated 错误,90% 的情况是因为 QMT 客户端没有打开或者没有登录成功。请保持 QMT 客户端在后台正常运行并处于登录状态,然后再运行您的 Python 脚本。