【PTrade 量化 API】get_etf_stock_info 函数详解:查询 ETF 成分股持仓数量与现金替代规则
前言在上一篇文章中我们介绍了用get_etf_stock_list一键获取 ETF 全量成分股列表完成了基础的持仓穿透。但在 ETF 申赎套利、实物申购、成分股风险排查等实际量化场景中仅知道成分股名单远远不够我们还需要知道单只成分股的持仓数量、申购时能否现金替代、个股是否停牌等关键信息。本文就带大家完整学习 PTrade 平台的get_etf_stock_info函数从功能定义、参数语法、返回字段到实战代码、避坑指南全面掌握 ETF 成分股明细查询方法。一、函数功能概述get_etf_stock_info的核心功能是根据指定的 ETF 代码与成分股代码返回该成分股在对应 ETF 中的持仓数量、现金替代标志、交易状态等详细信息。如果说get_etf_stock_list是 ETF 的「配料清单」那get_etf_stock_info就是每一味配料的「详情说明书」—— 不仅知道 ETF 持有哪些股票还能知道每只股票持有多少、申购时能不能用现金代替、当前能不能正常交易。二、函数语法与参数说明2.1 调用格式# 查询单只成分股详情 get_etf_stock_info(etf_code, stock_code) # 批量查询多只成分股详情 get_etf_stock_info(etf_code, [stock_code1, stock_code2, ...])2.2 参数说明表格参数名数据类型必填说明etf_codestr是单只 ETF 的证券代码必须带市场后缀例如510300.SS、159915.SZstock_codestr / list是待查询的成分股代码支持单个字符串或代码列表均需附带市场后缀2.3 使用环境限制该函数为 PTrade 股票交易模块专属 API仅可在 PTrade 客户端的股票交易环境中调用回测环境或其他第三方环境无法正常运行。三、返回值核心字段详解函数返回嵌套字典结构外层字典的键为成分股代码内层字典存储该股票的各项明细信息。高频实用的核心字段如下表字段名数据类型字段含义取值说明code_numfloatETF 对该成分股的持仓数量单位为股例如4700.0代表 ETF 持有 4700 股该股票cash_replace_flagintETF 申购时是否支持现金替代1 支持现金替代0 不支持现金替代is_openint成分股当前交易状态1 正常交易0 停牌不可买卖四、实战代码示例4.1 示例 1查询单只成分股持仓细节场景说明查询沪深 300ETF510300.SS中贵州茅台600519.SS的持仓数量、现金替代权限及当前交易状态。def initialize(context): print(策略启动查询沪深300ETF中贵州茅台的持仓细节) g.etf_code 510300.SS # 沪深300ETF代码 g.stock_code 600519.SS # 贵州茅台代码 def before_trading_start(context, data): # 1. 调用函数获取单只成分股详情 stock_detail get_etf_stock_info(g.etf_code, g.stock_code) # 2. 提取核心字段并格式化 hold_num stock_detail[g.stock_code][code_num] can_replace 可以 if stock_detail[g.stock_code][cash_replace_flag] 1 else 不可以 is_trading 正常交易 if stock_detail[g.stock_code][is_open] 1 else 已停牌 # 3. 打印结果 print(f{g.etf_code}沪深300ETF中 {g.stock_code}贵州茅台的详情) print(f1. ETF持仓数量{hold_num} 股) print(f2. 申购时能否现金替代{can_replace}) print(f3. 股票当前状态{is_trading}) def handle_data(context, data): pass运行输出示例策略启动查询沪深300ETF中贵州茅台的持仓细节 510300.SS沪深300ETF中 600519.SS贵州茅台的详情 1. ETF持仓数量100.0 股 2. 申购时能否现金替代可以 3. 股票当前状态正常交易4.2 示例 2批量查询多只成分股并对比场景说明同时查询沪深 300ETF 中贵州茅台、工商银行两只成分股的信息对比持仓数量与现金替代规则。def initialize(context): print(策略启动对比沪深300ETF中两支成分股的持仓细节) g.etf_code 510300.SS # 沪深300ETF代码 g.stock_codes [600519.SS, 601398.SS] # 贵州茅台、工商银行 def before_trading_start(context, data): # 1. 批量查询多只成分股详情 stocks_detail get_etf_stock_info(g.etf_code, g.stock_codes) # 2. 循环遍历输出每只股票信息 for code in g.stock_codes: stock_name 贵州茅台 if code 600519.SS else 工商银行 hold_num stocks_detail[code][code_num] can_replace 可以 if stocks_detail[code][cash_replace_flag] 1 else 不可以 print(f\n{stock_name}{code}详情) print(f- ETF持仓数量{hold_num} 股) print(f- 能否现金替代{can_replace}) def handle_data(context, data): pass运行输出示例策略启动对比沪深300ETF中两支成分股的持仓细节 贵州茅台600519.SS详情 - ETF持仓数量100.0 股 - 能否现金替代可以 工商银行601398.SS详情 - ETF持仓数量6100.0 股 - 能否现金替代可以五、使用注意事项避坑指南双参数必填代码必须带市场后缀ETF 代码与成分股代码均为必传参数且必须附带.SS沪市或.SZ深市后缀缺少参数、漏写后缀或代码格式错误都会返回空字典。仅支持查询 ETF 自有成分股只能查询目标 ETF 实际包含的成分股。若查询的股票不在该 ETF 成分股列表中例如在上证 50ETF 中查询宁德时代会返回空信息并非函数调用失败。批量查询需传入列表格式查询多只成分股时需将股票代码放入 Python 列表中统一传入而非多个独立参数单只查询直接传入字符串即可。运行环境限制与get_etf_stock_list一致该函数仅在 PTrade 股票交易模块可用使用前请确认当前运行环境。六、总结get_etf_stock_info是 ETF 精细化量化策略的核心底层工具尤其适用于 ETF 实物申赎套利、停牌成分股风险排查、申赎成本估算等场景。配合get_etf_stock_list函数可以完整实现「获取全量成分股 → 批量查询持仓细节」的全流程为 ETF 相关量化策略提供完整的数据支撑。风险提示本文只做技术教学不做任何投资建议本文举例上市公司名称 仅仅用作举例说明不具有任何其他含义投资有风险入市需谨慎

相关新闻

10万一套“中国造“房子,美国人排队抢:河北小伙靠预制房出海,3年狂卖3000套

10万一套“中国造“房子,美国人排队抢:河北小伙靠预制房出海,3年狂卖3000套

房子卖出白菜价,美国人却抢疯了。出品 | 跨境派 作者 | 徐小雨01预制房卖爆海外:从手机壳到"卖房子",跨境电商的边界被彻底打破过去我们讲跨境电商,脑海里浮现的是数据线、手机壳、小家电。谁能想到,现在连&…

2026/8/1 23:28:00阅读更多 →
CrewAI多智能体协作框架:构建高效虚拟开发团队实践

CrewAI多智能体协作框架:构建高效虚拟开发团队实践

1. 项目概述:用CrewAI构建虚拟开发团队的背景与价值去年参与一个跨国项目时,我深刻体会到分布式团队协作的痛点:时区差异导致沟通延迟、技术栈不统一造成环境冲突、任务分配效率低下...这些问题促使我开始探索AI Agent在团队协作中的应用可能…

2026/8/1 23:28:00阅读更多 →
使用CrewAI构建高效AI虚拟开发团队指南

使用CrewAI构建高效AI虚拟开发团队指南

1. 项目概述 最近在尝试用CrewAI搭建虚拟开发团队,发现这个框架确实能大幅提升AI协作效率。作为一个长期关注AI Agent技术的开发者,我想分享下如何从零开始配置一个完整的虚拟开发团队环境。 CrewAI是一个专门用于构建和管理AI Agent团队的Python框架。…

2026/8/1 23:28:00阅读更多 →
Java Double保留小数位:5种方法原理、避坑与选型指南

Java Double保留小数位:5种方法原理、避坑与选型指南

1. 项目概述:为什么“保留小数”是个技术活?最近在排查一个线上问题,一个看似简单的金额计算,因为Double类型处理不当,导致最终展示给用户的金额差了0.01元。这让我再次意识到,在Java开发中,处理…

2026/8/2 0:48:34阅读更多 →
精选20个SpringBoot开源项目:从入门到实战的完整学习路径

精选20个SpringBoot开源项目:从入门到实战的完整学习路径

1. 项目概述:为什么我们需要一份SpringBoot开源项目清单?如果你是一名Java开发者,或者正在学习SpringBoot,那么你肯定不止一次地有过这样的困惑:教程看了一大堆,基础功能也写得差不多了,但一到想…

2026/8/2 0:48:34阅读更多 →
BIOS/UEFI详解:从开机自检到虚拟化设置,新手进阶必备指南

BIOS/UEFI详解:从开机自检到虚拟化设置,新手进阶必备指南

1. 从开机第一声“滴”说起:BIOS究竟是什么?每次按下电脑的开机键,在屏幕亮起、操作系统徽标出现之前,你的电脑其实已经经历了一场无声的“自检仪式”。这个仪式的核心导演,就是BIOS。对于很多朋友来说,BIO…

2026/8/2 0:48:34阅读更多 →
NBTExplorer终极指南:5个简单步骤成为我的世界数据编辑大师

NBTExplorer终极指南:5个简单步骤成为我的世界数据编辑大师

NBTExplorer终极指南:5个简单步骤成为我的世界数据编辑大师 【免费下载链接】NBTExplorer A graphical NBT editor for all Minecraft NBT data sources 项目地址: https://gitcode.com/gh_mirrors/nb/NBTExplorer NBTExplorer是一款专为《我的世界》玩家设计…

2026/8/2 0:46:33阅读更多 →
100天Python进阶:Tesseract-OCR图片文字识别全攻略

100天Python进阶:Tesseract-OCR图片文字识别全攻略

100天精通(进阶篇的这部分内容), 到了第44天, 这里讲的是基于 -OCR 来实现 OCR 图片文字识别实战的引言。对数字化时代而言, OCR技术, 也就是被称作光学字符识别的技术, 变成了信息提取以及加以处理的关键工具。不管是文档电子化, 还是自动化表单处理, 亦…

2026/8/2 0:46:33阅读更多 →
并发编程正在被AI静默替代:GPT-4o已能自动生成无竞态Go代码(附12个生产级prompt工程清单)

并发编程正在被AI静默替代:GPT-4o已能自动生成无竞态Go代码(附12个生产级prompt工程清单)

更多请点击: https://intelliparadigm.com 第一章:并发编程正在被AI静默替代:GPT-4o已能自动生成无竞态Go代码(附12个生产级prompt工程清单) 过去需数日调试的 goroutine 与 channel 协作逻辑,如今在 GPT-…

2026/8/2 0:46:33阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:10阅读更多 →
限时公开!某头部SaaS公司内部AI模板工厂架构文档(含5类行业模板源码+性能压测报告)

限时公开!某头部SaaS公司内部AI模板工厂架构文档(含5类行业模板源码+性能压测报告)

更多请点击: https://intelliparadigm.com 第一章:AI模板批量生成的核心价值与落地全景 AI模板批量生成正从实验性工具演进为现代软件工程的关键基础设施。它通过语义理解、上下文感知与结构化约束,将重复性高、模式明确的代码/文档/配置生成…

2026/8/2 0:00:12阅读更多 →
如何快速找回消失的网页:Web Archives浏览器扩展终极指南

如何快速找回消失的网页:Web Archives浏览器扩展终极指南

如何快速找回消失的网页:Web Archives浏览器扩展终极指南 【免费下载链接】web-archives Browser extension for viewing archived and cached versions of web pages, available for Chrome, Edge and Safari 项目地址: https://gitcode.com/gh_mirrors/we/web-a…

2026/8/2 0:00:13阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:10阅读更多 →
限时公开!某头部SaaS公司内部AI模板工厂架构文档(含5类行业模板源码+性能压测报告)

限时公开!某头部SaaS公司内部AI模板工厂架构文档(含5类行业模板源码+性能压测报告)

更多请点击: https://intelliparadigm.com 第一章:AI模板批量生成的核心价值与落地全景 AI模板批量生成正从实验性工具演进为现代软件工程的关键基础设施。它通过语义理解、上下文感知与结构化约束,将重复性高、模式明确的代码/文档/配置生成…

2026/8/2 0:00:12阅读更多 →
如何快速找回消失的网页:Web Archives浏览器扩展终极指南

如何快速找回消失的网页:Web Archives浏览器扩展终极指南

如何快速找回消失的网页:Web Archives浏览器扩展终极指南 【免费下载链接】web-archives Browser extension for viewing archived and cached versions of web pages, available for Chrome, Edge and Safari 项目地址: https://gitcode.com/gh_mirrors/we/web-a…

2026/8/2 0:00:13阅读更多 →
无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 在数字媒体创作领域,视频编辑处理的质量损…

2026/8/1 0:00:10阅读更多 →
AI辅助本科论文写作:8大工具评测与高效使用指南

AI辅助本科论文写作:8大工具评测与高效使用指南

1. 本科生论文写作的AI辅助现状本科毕业论文是每个大学生必须跨越的一道坎。记得我当年写论文时,光是文献检索就花了整整两周时间,打印的参考文献堆满了半个书桌。如今AI技术的发展为学术写作带来了革命性变化,合理使用这些工具可以节省80%以…

2026/8/1 0:00:10阅读更多 →
如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手 【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 还在为抢不到热门演唱会门票…

2026/8/1 0:00:10阅读更多 →