70d72f35bb
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+重启+实证) 待确认
vnpy_qmt v0.3.3(vendored,自行维护)
本目录是 vnpy-qmt 0.3.3 的源码 vendor 副本,纳入本仓库自行维护。
来源
- PyPI:
vnpy-qmt==0.3.3(wheel:vnpy_qmt-0.3.3-py3-none-any.whl) - 上游:社区项目
ruyisee/vnpy_qmt(vnpy 的 miniQMT/xtquant 交易 Gateway) - License:Apache License 2.0(见
LICENSE,vnpy 生态统一协议)
为什么 vendor(不 pip install)
vnpy_qmt 是本项目唯一的券商交易 Gateway(brain → 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 进程常驻可用——本目录不包含 xtquant,Mac/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 核对接口变更