xtquant connect()=-1 怎么处理
XtQuantTrader.connect() 返回 -1,表示交易连接没有建立成功。它通常不是策略买卖逻辑的问题,也和前面的 pkg_resources is deprecated 警告无关。
先区分两个输出
text
UserWarning: pkg_resources is deprecated as an API
[交易] connect 第1次 => -1pkg_resources是旧版xtquant的依赖警告,程序仍会继续运行,不会直接让connect()变成-1。connect()=-1才是连接问题。不要为了消除警告先升级或替换券商自带的xtquant,这可能造成版本不匹配。
不改代码的排查顺序
- 确认 miniQMT 客户端已经登录资金账号,并保持客户端运行。
- 在 miniQMT 设置中启用“独立交易”或对应的外部交易开关。不同券商文字可能不同。
- 确认代码中的
userdata_mini指向当前正在运行的 miniQMT 用户数据目录,不要指向另一套客户端或旧目录。 - 完全退出所有 QMT、miniQMT 和策略进程,再先启动客户端、登录成功,最后运行策略。
- 检查策略目录旁边是否有一个手工复制的
xtquant文件夹。Python 会优先加载它,可先改名为xtquant.bak再测试。 - 确认启动脚本使用的 Python,和安装
xtquant的 Python 是同一环境。 - 多个策略进程应使用不同的随机
session_id,避免重复会话互相冲突。
打印实际加载路径:
python
import sys
import xtquant
print(sys.executable)
print(xtquant.__file__)若 xtquant.__file__ 指向策略目录里的旧副本,先处理路径冲突;若指向另一家券商或另一套 miniQMT,也要切回当前客户端的包。
miniQMT 已无法使用怎么办
部分券商已经收紧 miniQMT 的申请或使用条件。若客户端本身无法登录、账户没有独立交易权限,重复重试 connect() 不会解决问题,可以改用大 QMT 内置策略,或通过本机桥接继续运行原来的外部 Python 策略。
KimiQuant 桌面安装版 会在本机把常用 xtquant 调用转到大 QMT,原策略继续 import xtquant;完整原理见 miniQMT 桥接内置 QMT。账号密码和下单仍留在自己的券商客户端中。
反馈时记录什么
至少保留:券商客户端名称和版本、userdata_mini 实际路径、sys.executable、xtquant.__file__、客户端是否已登录及是否开启独立交易。不要发送资金密码、短信验证码或完整令牌。
