问题描述
原生 python 可以通过 get_etf_iopv 获取 ETF 的 iopv,但是 mini QMT 没找到对应的函数,该如何获取?
解决方案
根据 QMT 官方 API 文档,获取 ETF 的 IOPV(基金份额参考净值)可以使用内置的 get_etf_iopv 函数。
QMT 中获取 ETF IOPV 的方法
在 QMT 客户端内置的策略代码中,您可以直接调用 get_etf_iopv(stockcode) 来获取指定 ETF 的 IOPV。
函数用法:
get_etf_iopv(stockcode)
参数说明:
stockcode:ETF基金代码,字符串类型,格式为“代码.市场”,例如"510050.SH"。
返回值:
- 返回该 ETF 的 IOPV(基金份额参考净值),数值类型。
代码示例:
def handlebar(ContextInfo):
# 获取华夏上证50ETF的IOPV
iopv_value = get_etf_iopv("510050.SH")
print(f"510050.SH 当前的 IOPV 为: {iopv_value}")
关于 miniQMT (xtquant) 的说明
如果您使用的是独立于 QMT 客户端运行的 miniQMT(即 xtquant 库),由于 xtquant 的接口与 QMT 内置的 ContextInfo 体系有所不同,可能没有直接暴露 get_etf_iopv 这个独立的全局函数。
在 miniQMT 中,如果您无法直接找到该函数,可以尝试以下替代方案:
- 检查 Tick 数据字段:通过
xtdata.get_full_tick获取 ETF 的最新分笔数据,检查返回的字典中是否包含 IOPV 相关的字段(具体取决于券商的数据源支持)。 - 使用 QMT 作为数据桥梁:在 QMT 客户端内运行一个简单的策略,定时调用
get_etf_iopv获取数据,并将其写入本地文件或通过 Socket 发送给您的 miniQMT 进程。 - 查阅最新 xtquant 文档:随着版本更新,
xtdata模块可能会补充 ETF 申赎清单及 IOPV 相关的接口,建议关注官方的更新日志。