3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 QMT (XtQuant) 量化交易接口中,xt_trader.connect() 返回 -1 表示 Python 脚本与 MiniQMT 客户端建立连接失败。即使您的 MiniQMT 已经登录,仍可能由以下几个常见原因导致:
miniqmt_path 路径配置错误(最常见原因)XtQuantTrader 初始化时传入的 miniqmt_path 必须是 MiniQMT 安装目录下的 userdata_mini 文件夹的绝对路径,而不是 QMT 的根目录或 .exe 文件的路径。
r'D:\国信证券QMT交易端\bin.x64' 或 r'D:\国信证券QMT交易端\bin.x64\xtquant.exe'r'D:\国信证券QMT交易端\userdata_mini'如果您通过 pip install xtquant 安装的 Python 库版本,与您电脑上运行的 MiniQMT 客户端版本差异过大,可能会导致底层通信协议不兼容,从而连接失败。
xtquant 库,或者确保 pip 安装的版本与客户端版本一致。XtQuant 与 MiniQMT 之间通过本地 Socket 端口进行通信。如果本地端口被其他程序占用,或者被杀毒软件/防火墙拦截,也会导致连接失败。
虽然 MiniQMT 已经登录,但如果底层交易服务尚未完全启动完毕,立即调用 connect() 可能会失败。
部分券商的 QMT 账号需要单独向客户经理申请开通 API 交易权限。如果未开通权限,即使客户端能登录,API 也可能拒绝连接。
请检查您的初始化代码是否类似于以下正确格式:
import time
from xtquant.xttrader import XtQuantTrader, XtQuantTraderCallback
from xtquant.xttype import StockAccount
# 1. 确保路径精确到 userdata_mini 文件夹
miniqmt_path = r'D:\您的QMT安装目录\userdata_mini'
accountid = '您的资金账号'
session_id = int(time.time())
xt_trader = XtQuantTrader(miniqmt_path, session_id)
acc = StockAccount(accountid, 'STOCK')
# 2. 启动交易线程
xt_trader.start()
# 3. 建立连接
connect_result = xt_trader.connect()
if connect_result == 0:
print("连接成功!")
else:
print(f"连接失败,错误码: {connect_result}。请检查 miniqmt_path 是否正确指向 userdata_mini 目录。")