【迅投 QMT】QMT如何获取ETF申赎清单?download_etf_info()与get_etf_info()教程
本方案由EasyQuant AI量化助手提供。
问题背景
ETF 套利、申购赎回和成分股篮子分析,都需要获取 ETF 的申赎清单数据。QMT 提供download_etf_info()下载 ETF 申赎清单,并通过get_etf_info()读取本地数据。
实现思路
下载最新 ETF 申赎清单数据。
读取全部 ETF 信息。
按 ETF 代码获取单只 ETF 清单。
提取申购赎回状态、现金差额和成分股信息。
完整代码示例
from xtquant import xtdata ETF_CODE = "510050.SH" def download_etf_data(): """ 下载全部ETF申赎清单信息。 """ xtdata.download_etf_info() print("ETF申赎清单数据下载完成") def get_single_etf_info(etf_code): """ 获取单只ETF的申赎清单信息。 """ all_etf_info = xtdata.get_etf_info() if not all_etf_info: print("未获取到ETF申赎清单数据") return None etf_info = all_etf_info.get(etf_code) if etf_info is None: print("未找到ETF代码:", etf_code) return None return etf_info def analyse_etf_info(etf_info): """ 输出ETF申赎状态和成分股信息。 """ print("========== ETF基础信息 ==========") print("现金差额:", etf_info.get("现金差额")) print("申购允许:", etf_info.get("是否允许申购")) print("赎回允许:", etf_info.get("是否允许赎回")) print("申购单位:", etf_info.get("申购赎回单位")) components = etf_info.get("成份股信息", []) print("\n========== ETF成分股 ==========") print("成分股数量:", len(components)) for component in components[:10]: print(component) def main(): # 第一步:下载清单数据 download_etf_data() # 第二步:读取指定ETF信息 etf_info = get_single_etf_info(ETF_CODE) if etf_info is None: return # 第三步:分析数据 analyse_etf_info(etf_info) if __name__ == "__main__": main()筛选允许申购赎回的 ETF
from xtquant import xtdata def get_available_etfs(): all_etf_info = xtdata.get_etf_info() available_etfs = [] for etf_code, etf_info in all_etf_info.items(): can_create = etf_info.get("是否允许申购") can_redeem = etf_info.get("是否允许赎回") if can_create == 1 and can_redeem == 1: available_etfs.append(etf_code) return available_etfs注意事项
使用前应调用
xtdata.download_etf_info()下载最新数据。ETF 申赎清单通常每日更新,策略运行前建议重新下载或确认本地数据日期。
不同版本或数据模式下,返回字段名称可能略有差异,应先打印字典结构确认。
现金替代标志决定某些成分券能否或必须使用现金替代。
获取清单不代表账户具备 ETF 申购赎回资格,实际权限以券商账户为准。
总结
QMT 的 ETF 申赎清单接口可用于读取 ETF 成分股、现金差额和申购赎回状态,是 ETF 套利、篮子交易及申赎策略的重要数据基础。