3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在使用 QMT(xtquant)进行量化交易开发时,connect 函数返回 -1 通常表示与本地 QMT 客户端的交易服务建立连接失败。结合您提供的前置条件,行情数据可以正常获取,说明底层通信部分是通的,但交易接口未能成功连接。请按照以下几个常见原因进行逐一排查:
您提供的路径是 D:\Program Files\东北证券NET专业版\userdata_mini。QMT 的底层 C++ 核心库对路径中的空格(如 Program Files)和中文字符支持较差,极易导致连接初始化失败。
D:\QMT_DBZQ。然后将 path 修改为 D:\QMT_DBZQ\userdata_mini 再试。您提到“可以获取历史数据和订阅股票数据”,这只需要行情服务连通即可。但 connect 主要是连接交易服务。
connect 会返回 -1。在调用 xt_trader = XtQuantTrader(path, session_id) 时,如果 session_id 是固定的,且上一次运行的进程没有正常退出(或者在后台残留),会导致端口被占用,再次 connect 就会返回 -1。
session_id。import random
session_id = int(random.randint(100000, 999999))
xt_trader = XtQuantTrader(path, session_id)
您提到测试了 Python 3.10 和 3.13。目前 xtquant 官方对 Python 3.6 - 3.11 的支持是比较稳定的,Python 3.13 可能存在兼容性问题。既然您有 Python 3.10,建议在排查其他问题时,全程使用 Python 3.10 环境进行测试。
通过 pip install xtquant 安装的库版本,可能与您电脑上安装的“东北证券NET专业版”客户端内置的底层接口版本不一致。
bin.x64\Lib\site-packages\xtquant 文件夹,将这个文件夹直接复制到您当前 Python 3.10 环境的 site-packages 目录下,或者将其路径加入到 sys.path 中,确保使用的是与客户端完全配套的 xtquant 库。xtquant 与 QMT 客户端之间是通过本地回环地址(127.0.0.1)和特定端口进行 Socket 通信的。某些杀毒软件或 Windows 防火墙可能会拦截这种本地端口通信。
D:\QMT(无空格无中文路径)。session_id。xtquant 库文件。