🚀 AI 一键生成 qmt 策略代码
立即体验
👉 AI 生成代码 👈

如何在 qmt 平台使用 Python 调用 VBA 函数获取 gmd_ex 格式数据?

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

问题描述

python调vba函数 并 获取gmd_ex格式的数据 (更快,更直接)

1.环境准备:目前该模式需要通过投研专业版进行调用,并且必须用投研先锋版本的安装包,非先锋版不支持。
另外需要本地有 xtquant,官网下载 xtquant 包即可:https://dict.thinktrader.net/nativeApi/download_xtquant.html?id=TB5IbM
2.可使用 python 函数 便捷获取 vba 公式的输出

data = xtdata.get_vba_func_result(
"dynainfo(7, '000001.SZ')",
stock_code,
period,
start_time, end_time, count,
dividend_type
)
print(data)

3.填写 vba 公式内容即可获取 gmd_ex 格式的数据:

解决方案

在 qmt 平台中,使用 Python 调用 VBA 函数并获取 gmd_ex 格式的数据是一种更快速、更直接的数据获取方式。以下是详细的实现步骤和注意事项:

1. 环境准备

要使用此功能,您需要满足以下环境要求:

  • 客户端版本:必须使用 投研专业版,并且需要安装 投研先锋版本 的安装包。非先锋版不支持此功能。
  • xtquant 库:本地 Python 环境中需要安装 xtquant 库。您可以从迅投官网下载 xtquant 包:下载链接

2. Python 调用 VBA 函数示例

安装好 xtquant 后,您可以使用 xtdata.get_vba_func_result 函数便捷地获取 VBA 公式的输出结果。该函数会返回 gmd_ex 格式的数据。

以下是一个具体的 Python 代码示例:

from xtquant import xtdata

# 定义参数
stock_code = '000001.SZ'  # 股票代码
period = '1d'             # 周期,例如 '1d' 表示日线
start_time = '20230101'   # 开始时间
end_time = '20231031'     # 结束时间
count = -1                # 获取数量,-1 表示根据时间范围获取
dividend_type = 'none'    # 复权方式,'none' 表示不复权

# 调用 VBA 函数获取数据
# 这里以 dynainfo(7) 为例,获取最新价
data = xtdata.get_vba_func_result(
    "dynainfo(7)",        # VBA 公式内容
    stock_code,
    period,
    start_time, 
    end_time, 
    count,
    dividend_type
)

# 打印结果
print(data)

3. 填写 VBA 公式内容

xtdata.get_vba_func_result 的第一个参数中,您可以填写任何合法的 VBA 公式内容。例如:

  • "dynainfo(7)":获取最新价。
  • "MA(CLOSE, 5)":获取 5 日均线。
  • "MACD.MACD":获取 MACD 指标的值。

通过这种方式,您可以充分利用 qmt 平台内置的丰富 VBA 函数库,将其计算结果直接引入到 Python 策略中,从而提高策略开发效率和运行速度。