Files
claude_dev 70d72f35bb chore(vendor): vendor vnpy_qmt 0.3.3 源码自行维护
vnpy_qmt 是唯一券商交易 gateway(关键路径),社区包断更有风险。
按 vnpy_v4.4.0 同一套约定 vendor 源码、sys.path 引用、不 pip install。
- vnpy_qmt_v0.3.3/vnpy_qmt/ (5文件587行) + LICENSE(Apache-2.0) + README
- run_web.py 加 if-exists 路径块,import 方式不变 (from vnpy_qmt import QmtGateway)
Mac 验证: py_compile 全过 + import 解析到 vendor 副本(仅卡 xtquant Win-only,符合预期)
VPS 生产切换(Part B: rsync+pip uninstall+重启+实证) 待确认
2026-07-15 21:15:53 +08:00
..

vnpy_qmt v0.3.3vendored,自行维护)

本目录是 vnpy-qmt 0.3.3 的源码 vendor 副本,纳入本仓库自行维护。

来源

  • PyPIvnpy-qmt==0.3.3wheelvnpy_qmt-0.3.3-py3-none-any.whl
  • 上游:社区项目 ruyisee/vnpy_qmtvnpy 的 miniQMT/xtquant 交易 Gateway
  • LicenseApache License 2.0(见 LICENSEvnpy 生态统一协议)

为什么 vendor(不 pip install

vnpy_qmt 是本项目唯一的券商交易 Gatewaybrain → vnpy_qmt → xtquant → miniQMT 下单链路的关键一环)。 社区包存在断更/失效风险,关键路径依赖外部仓库不可控。vendor 源码后,我们能自主修 bug、跟进 vnpy 接口变更。

与同目录的 vnpy_v4.4.0/ 采用同一套约定:源码 vendor、sys.path 引用、不 pip install。

如何引用

run_web.py 启动时把本目录加入 sys.path(与 vnpy_v4.4.0 同样的 if-exists 块):

qmt_dir = os.path.join(project_dir, "vnpy_qmt_v0.3.3")
if os.path.exists(qmt_dir):
    sys.path.insert(0, qmt_dir)

业务代码 import 方式不变

from vnpy_qmt import QmtGateway

维护注意

  • vnpy 接口兼容性已验证(对 vnpy_v4.4.0 零漂移,2026-07 真机实证)。后续若升级 vnpy,需重新核对 BaseGateway/OrderData/Status 枚举/ZoneInfo 等 import。
  • xtquant 是国金 QMT 官方库(行情 xtdata + 交易 xttrader),仅 Windows + miniQMT 进程常驻可用——本目录不包含 xtquantMac/NAS 无法完整 import(会卡在 from xtquant import ...),属正常。
  • 文件清单:vnpy_qmt/__init__.py(导出 QmtGateway/ qmt_gateway.py(主 Gateway/ td.py(交易)/ md.py(行情)/ utils.py

升级方法

pip download vnpy-qmt==<新版本> --no-deps -d /tmp/dl
# 解压 wheel,用 vnpy_qmt/ 覆盖本目录,更新本 README 版本号,diff 核对接口变更