🚀 AI 一键生成 qmt 策略代码

QMT报错 formula not exists: 单股模型示范 解决方法

qmt | 发布时间: 2026/5/25
以下内容由 EasyQuant 生成。

问题描述

调用函数报错

报错 RuntimeError: func:subscribeFormulaSync, error:{ "error" : { "params" : { "ErrorID" : 300000, "ErrorMsg" : "[xtquant]formula not exists: 单股模型示范" }, "status" : 1 } }

解决方案

在 QMT 或 xtquant 中调用公式/策略订阅函数时,遇到 RuntimeError: func:subscribeFormulaSync, error: ... [xtquant]formula not exists: 单股模型示范 的报错,通常是因为系统无法在 QMT 客户端中找到对应的策略模型

🔍 原因分析

  1. 模型未创建:在 QMT 客户端的“策略开发”或“模型管理”中,确实没有名为“单股模型示范”的策略。
  2. 模型未编译:模型虽然已经新建,但没有点击“编译”进行保存,导致底层系统无法识别。
  3. 名称拼写错误:代码中调用的模型名称与 QMT 客户端中实际的模型名称不完全一致(例如多了一个空格、繁简体不同等)。
  4. 连接的客户端不正确:如果你运行的是独立的 xtquant 脚本,可能连接到了一个没有该模型的 QMT 客户端实例。

🛠️ 解决方案

请按照以下步骤进行排查和修复:

第一步:检查 QMT 客户端中的模型列表

  1. 打开你正在使用的 QMT 客户端。
  2. 进入 “策略开发” 界面。
  3. 在左侧的“模型管理”面板中,查找是否存在名为 “单股模型示范” 的 Python 模型。

第二步:新建或重命名模型

  • 如果不存在
    1. 在模型管理面板右键,选择“新建模型”,选择“Python模型”。
    2. 在弹出的【策略编辑器】中,将“基本信息”里的名称严格填写为 单股模型示范
    3. 编写或粘贴你的策略代码(必须包含 inithandlebar 函数)。
    4. 点击上方的 “编译” 按钮保存模型。
  • 如果已存在
    1. 检查名称是否有不可见的空格或拼写差异。
    2. 打开该模型,重新点击一次 “编译” 按钮,确保模型已成功保存到系统中。

第三步:检查代码调用

确保你在 Python 代码中调用 subscribeFormulaSync(或类似函数)时,传入的字符串与客户端中的模型名称完全一致:

# 确保名称完全一致,没有多余的空格
formula_name = '单股模型示范'

第四步:确认 xtquant 连接状态

如果你使用的是 xtquant 独立包,请确保 xtdata.connect() 连接的端口和路径,正是你刚刚创建了该模型的 QMT 客户端。如果连接到了其他未登录或未创建该模型的终端,依然会报找不到公式的错误。

完成以上步骤后,重新运行你的代码,该报错即可解决。