🚀 AI 一键生成 qmt 策略代码

QMT 策略开发:如何为平台环境安装第三方 Python 库?

qmt | 发布时间: 2025/11/26
以下内容由 EasyQuant 生成。

问题描述

我写的策略需要用到一个默认库里没有的 Python 包,应该如何安装?

解决方案

根据 QMT 官方文档(版本 3.3.6),QMT 内置了 Python 3.6.8 环境。若需要使用默认环境中未包含的第三方库,可以通过 pip 命令将其安装到 QMT 的库目录中。

以下是详细的操作步骤和注意事项:

核心步骤:使用 pip 安装到指定目录

QMT 允许用户通过 pip--target 参数,将第三方库安装到 QMT 的 site-packages 目录下。

1. 准备工作与注意事项(非常重要)

  • 确认 Python 版本:QMT 内置 Python 版本为 3.6.8。建议您使用本机安装的 Python 3.6.x 版本的 pip 进行安装,以确保下载的库文件(Whl包)与 QMT 兼容。
  • 备份文件:安装前,请务必备份 QMT 安装目录下的 bin.x64\Libbin.x64\DLLs 文件夹。如果安装导致环境损坏,可以通过还原备份恢复。
  • 禁止升级核心库切勿升级 QMT 内置的 pandasnumpy 等核心库,否则会导致 QMT 无法运行。

2. 安装命令格式

打开 Windows 的命令提示符(CMD),使用以下命令格式进行安装:

<本地Python3.6路径>\Scripts\pip.exe install <库名称> --target=<QMT安装目录>\bin.x64\Lib\site-packages

3. 具体操作示例

假设您的环境如下:

  • 本地 Python 3.6 安装路径C:\Python36
  • QMT 安装路径D:\QMT
  • 需要安装的库requests

操作步骤:

  1. 按下 Win + R,输入 cmd 并回车。
  2. 在命令行中输入以下命令并运行:
C:\Python36\Scripts\pip.exe install requests --target=D:\QMT\bin.x64\Lib\site-packages

使用国内镜像源加速(推荐):
如果下载速度慢,可以添加 -i 参数使用清华源:

C:\Python36\Scripts\pip.exe install -i https://pypi.tuna.tsinghua.edu.cn/simple requests --target=D:\QMT\bin.x64\Lib\site-packages

验证安装

安装完成后,打开 QMT 客户端,进入【策略编辑器】,新建一个 Python 策略,输入以下代码并运行,如果没有报错,说明安装成功:

#encoding:gbk
import requests # 替换为您刚安装的库名

def init(ContextInfo):
    print("库导入成功")

def handlebar(ContextInfo):
    pass

常见问题 Q&A

Q: 我可以直接在 QMT 的 Python 代码里运行 !pip install 吗?
A: 不可以。QMT 的策略编辑器不支持 Jupyter 风格的魔法命令。必须通过 Windows 命令行(CMD)将库安装到 QMT 的文件目录中。

Q: 安装第三方库后 QMT 报错或无法启动怎么办?
A: 这通常是因为新安装的库依赖项覆盖或冲突了 QMT 原有的核心库(如 pandas)。请立即将之前备份的 LibDLLs 文件夹覆盖回原目录以恢复环境。

Q: 我可以使用 Python 3.9 或 3.10 的 pip 来安装吗?
A: 不建议。虽然纯 Python 库可能通用,但包含 C 扩展的库(如 tensorflow, cv2 等)必须严格对应 Python 版本(cp36)和系统架构(win_amd64)。使用 Python 3.6 的 pip 能确保下载到正确版本的 whl 文件。

Q: 如何查看 QMT 当前已安装了哪些库?
A: 您可以在 QMT 的策略编辑器中运行以下代码来打印已安装模块列表:

#encoding:gbk
import pkg_resources
def init(ContextInfo):
    installed_packages = pkg_resources.working_set
    for dist in installed_packages:
        print(f"{dist.project_name}=={dist.version}")
def handlebar(ContextInfo):
    pass