问题描述
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 策略中,从而提高策略开发效率和运行速度。