3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 QMT 中,获取 ETF 的实时 IOPV(基金份额参考净值)和成分股列表(通常包含在 ETF 申赎清单数据中)主要使用以下两个 API 函数:
get_etf_iopv(stockcode): 用于获取 ETF 的实时 IOPV。get_etf_info(stockcode): 用于获取 ETF 的申赎清单详细数据,其中包含成分股列表。以下是具体的代码示例和说明:
# -*- coding: gbk -*-
def init(ContextInfo):
# 设置需要查询的ETF代码,例如:华夏上证50ETF
ContextInfo.etf_code = '510050.SH'
def handlebar(ContextInfo):
# 1. 获取实时 IOPV
# 注意:IOPV 通常在交易时间段内实时更新
iopv = get_etf_iopv(ContextInfo.etf_code)
print(f"ETF代码: {ContextInfo.etf_code}, 当前IOPV: {iopv}")
# 2. 获取 ETF 申赎清单及成分股
# 该函数返回一个字典,包含了现金差额、最小申赎单位等信息,以及成分股列表
etf_info = get_etf_info(ContextInfo.etf_code)
if etf_info:
# 获取成分股列表,键名为 'stocks'
stock_list = etf_info.get('stocks', [])
print(f"成分股数量: {len(stock_list)}")
print(f"前5只成分股: {stock_list[:5]}") # 打印前5个作为示例
# 也可以获取其他信息,例如现金差额
cash_balance = etf_info.get('cashBalance')
print(f"现金差额: {cash_balance}")
else:
print("未获取到ETF申赎清单数据")
get_etf_iopv(stockcode)stockcode (字符串),例如 '510050.SH'。get_etf_info(stockcode)stockcode (字符串),例如 '510050.SH'。stocks: 成分股列表 (List),包含成分股的代码。cashBalance: 现金差额。nav: 基金份额净值。creationLimit: 申购上限。redemptionLimit: 赎回上限。reportUnit: 最小申购、赎回单位。注意:请确保在“数据管理”中补充了相关的 ETF 数据,以保证回测或运行时能获取到正确的信息。在实盘模式下,这些数据通常由行情服务器实时推送。