Install
openclaw skills install @e-fintech/etf-fund-queryETF(交易型开放式指数基金)信息与行情查询。ETF 在证券交易所上市交易,通常通过券商股票账户买卖,盘中按交易价格成交,以6位证券代码识别(如510300)。 支持查询ETF基础信息、规模费率、持仓明细、历史分红、区间收益、资金流向、涨幅榜、热搜榜、按持仓股票反查相关ETF,以及最新价、盘中涨跌、成交、换手率、IOPV、溢折率和分钟走势。 适用于用户关注场内ETF基础信息、成交活跃度、主题ETF筛选、同类ETF比较和实时行情等场景。如果用户通过银行、基金公司或第三方基金销售平台申购赎回指数基金,应使用 open-fund-query;如果用户查询指数本身,应使用 index-query。
openclaw skills install @e-fintech/etf-fund-query把中文自然语言中的 ETF 查询请求,转成真实数据查询,并以普通投资者能理解的方式返回事实信息和比较结果。
本技能仅提供基金和指数相关数据查询服务;基于查询结果生成的归纳、比较和说明由 AI 自动生成,仅供参考,不构成投资建议、收益预测或任何交易决策依据。
指数直通车 AI Skills 是易方达基金专为 AI 智能体打造的指数产品数据查询工具。它致力于搭建大模型与指数基金市场之间的信息桥梁,助力各类智能体实时调取准确、齐全的场内 ETF 与场外指数基金产品数据,全面覆盖指数基金检索、持仓分析、分红追踪等核心应用场景,显著提升指数投资的数据获取与分析效率。
每位用户每日享有 500 次免费 API 接口调用额度。单次提问可能调用多个接口,额度按实际接口调用次数计算。
如需获取API Key,请在微信搜索“指数直通车”小程序,在「AI Skills」页面申请。更多说明可访问帮助文档:https://cdn.efunds.com.cn/eda/h5/itcenter/pd/ai-skills-doc/help.pdf
问题反馈或技术支持邮箱:indexhub@efunds.com.cn
用户表达以下意图时,使用本 skill:
| 场景 | 典型请求 |
|---|---|
| ETF基础信息 | 查询某只ETF的名称、规模、费率、跟踪指数、基金经理 |
| ETF筛选 | 按指数、行业主题寻找ETF候选,再比较规模、费率、流动性 |
| ETF比较 | 比较多只ETF的规模、费率、收益、跟踪误差、资金流向 |
| 持仓查询 | 查询ETF前十大持仓,或按股票反查持有该股票的ETF |
| 收益与分红 | 查询区间收益、今年以来收益、成立以来收益、历史分红 |
| 热点发现 | 查询涨幅榜、热搜榜、短期市场关注点 |
| 实时行情 | 查询最新价、涨跌额/幅、成交量/额、换手率、IOPV、溢折率或分钟走势 |
| 交易辅助信息 | 查询成交活跃度、场内购买相关基础信息 |
open-fund-queryquote/etf、quote/minite 等场内行情接口——它们仅接受交易所场内 ETF 代码,场外代码硬套只会查空或查错。此时应按净值口径说明场外基金没有盘口、IOPV 和成交额,并转向 open-fund-query。search/etf 或 etf/detail 验证该代码是场内 ETF,再调 quote/etf、quote/minite 等行情接口;禁止用行情接口试探代码类型。接口返回"代码类型不匹配"时停止,按场外基金或指数路由处理。处理用户问题时,按以下步骤执行:
识别查询对象
选择查询能力
references/catalog-etf.md 为准。调用真实数据
scripts/api_client.py 发起;它是唯一的鉴权、缓存和调用记账通道。config.py 当作模块 import 后自行发请求。组织回答
输出前检查
INSTALL.md,按其中步骤完成安装与授权配置。install/install.sh 进行统一安装。INDEX_HUB_API_KEY 临时覆盖授权信息;默认从 ~/.config/index-hub/api_key 读取,且兼容旧变量 ETF_API_KEY。如均未配置,应按安装流程引导用户完成配置和验证。guardrails.py 中的最终回答检查能力。None、null 和异常占位值转换成自然语言;最终回答检查不能替代数据解析层的清洗。| 用户意图 | 查询方式 | 回答重点 |
|---|---|---|
| 主题或行业ETF筛选 | 先搜索主题候选,再查详情 | 跟踪指数、规模、费率、成交活跃度、风险提示 |
| 单只ETF查询 | 详情查询,可补充搜索、收益、持仓、分红或行情 | 名称、代码、跟踪指数、规模、费用、基金经理;按需补充行情 |
| 多只ETF对比 | 批量详情查询,可补充收益 | 统一口径比较,说明每个结论基于哪个维度 |
| 持仓透视 | 持仓查询 | 前十大持仓、持仓比例、报告期 |
| 按股票找ETF | 持仓股票反查 | ETF名称、代码、对应股票持仓比例、规模 |
| 区间收益 | 收益查询 | 起止日期、收益率、历史收益不代表未来表现 |
| 历史分红 | 分红查询 | 分红日期、每份分红、分红次数 |
| 热榜与涨幅榜 | 发现类查询 | 热搜榜为当日指数直通车小程序内搜索累计;涨幅榜为实时涨幅榜,可返回榜单中的ETF、跟踪指数和行情信息 |
| 场内购买说明 | 基础说明,可结合候选ETF | 股票账户、盘中交易、交易成本和产品费用的区别 |
| 能力 | 用途 |
|---|---|
ETF关键词搜索(search/etf) | 按代码、名称、指数、主题关键词召回ETF候选;响应随附规模、各周期涨跌幅、估值、净流入、日均成交额、年化跟踪误差和 lastPrice、changeRate、premiumRate 等实时行情字段,筛选、排序、比较基于搜索结果在本地完成 |
批量ETF详情(etf/detail) | 查询规模、费率、跟踪指数、基金经理、年化跟踪误差、资金流向、溢折率(iopvDiscount),随附行情字段 lastPrice、changeRate、turnoverRate |
批量ETF持仓(etf/holdings) | 查询前十大持仓和报告期 |
批量区间收益(etf/return) | 查询预设周期或自定义区间收益 |
批量历史分红(etf/dividends) | 查询历史分红记录 |
ETF规模变动(etf/etf-scale) | 查询基金规模与净流入的逐日变动(万元) |
持仓股票反查ETF(search/etf-by-stock) | 根据股票查找持有该股票的ETF;响应中每只ETF随附 holdingsDetail 持仓明细(stockCode、secuSht、holdNavRat、endDt),用户要"具体持仓明细"时读取该字段,而不是改用前十大持仓接口 |
ETF盘口行情(quote/etf) | 批量查询最新价、涨跌幅、成交额、成交量、换手率、IOPV、溢折率、昨收和精确行情时间(date + timeStamp),单次最多 50 只 |
ETF历史K线(quote/etf/kline) | 查询日/周/月/分钟历史K线,支持原始、前复权、后复权 |
ETF分钟行情(quote/minite) | 批量查询当日分时分钟走势,或按 lastTimestamp 获取增量分钟数据,并随附最新盘口快照 |
ETF实时涨幅榜(discovery/top-etf) | 查询涨幅榜中的ETF、跟踪指数和行情信息 |
热搜榜(discovery/hot-search) | 查询指数直通车产品内部搜索热榜关键词 |
按类型热搜推荐(discovery/hot-search-recommend) | 按产品类型(指数/ETF/场外基金)查询热搜推荐列表 |
具体请求参数、响应路径、字段名、单位和异常值处理规则,必须以 references/catalog-etf.md 为准。
search/etf 以关键词(代码、名称、指数、主题)召回候选;搜索响应已随附规模、各周期涨跌幅、估值、净流入、日均成交额、年化跟踪误差和实时行情等比较字段,筛选、排序和比较基于搜索结果在本地完成,不为每只候选重复请求详情。pageSize 取大值一次取回候选,以 totalNum 为界,仅当前几页确实无匹配时才翻页,最多翻页 5 页,仍覆盖不全时在回答中说明筛选阈值、覆盖范围与排序口径,不得继续翻页扫库;多产品详情用批量接口一次传入全部代码,禁止逐个单查。discovery/top-etf 服务端榜单,禁止用搜索、行情接口或自行抽取的样本计算、重建涨幅榜。用户要求自己抽样算一个榜单时,应说明不完整样本不等于全市场涨幅榜,并改用该接口查询。date + timeStamp),或需要涨跌额、昨收(yesterdayClosePrice)、成交量(dealVolume)、IOPV(iopv)、溢折率(deviationRate)、完整盘口时,直接使用 quote/etf(批量快照,单次最多 50 只,含精确行情时间)。否则已通过搜索、产品详情或实时涨幅榜获得随附 lastPrice、changeRate(详情另含 turnoverRate、iopvDiscount,搜索另含 premiumRate、dealBalance)时,直接复用随附结果,禁止再调行情接口获取相同信息。quote/etf,当日分钟轨迹或增量刷新用 quote/minite,日/周/月/分钟历史K线用 quote/etf/kline。availabilityStatus)时,不继续用 ETF 搜索、详情或行情等任何接口反复确认或试错;说明该代码不是 ETF,必要时转向对应的指数或场外基金查询。date + timeStamp 是行情数据时间,serverTime 是服务器处理时间。非交易时段应表述为“接口返回的最新一笔行情”,不得把上一交易日行情称为当前实时行情。etf/detail(最多 20 个)、etf/holdings、etf/return、etf/dividends(各最多 10 个)、etf/etf-scale(最多 20 个)、quote/etf(最多 50 个)等均为批量接口,代码上限以 catalog 为准。同一问题涉及多只 ETF 时,汇总所有代码一次性传入;超过上限时按上限分组,不逐只调用。{"fundCodes":["510300","159915","512880"]}。--output 将响应保存到本地文件,再对该文件执行 jq/python3 处理;禁止为相同请求再次调用 api_client.py。api_client.py 调用应使用相同的 INDEX_HUB_TURN_ID,否则轮次缓存会失效;只修改输出格式或重试同一请求时不应更换 TURN_ID。python3 scripts/api_client.py --method POST --path /skill/v2/etf/detail \
--body '{"fundCodes":["510300"]}' --compact --output /tmp/etf_detail.json
jq -r '.data[] | [.fundCode, .detail.extdSecuSht, .detail.fundScale] | @tsv' /tmp/etf_detail.json
api_client.py 增加 --refresh;只修改输出格式时不刷新。scripts/api_client.py 的真实返回;任何绕过 api_client 的方式(自编 HTTP 客户端、直接 import 配置发请求等)获得的数据不得用于回答。references/catalog-etf.md 为唯一口径。$ 表示根节点;不要把路径文字误当成真实字段名。None、结构与示例不一致、列表异常为空等情况,必须先请求该接口并检查真实返回 JSON 结构,再决定使用哪一层路径;禁止跨接口套用 data、data.list、data.data 模板猜测。面向普通投资者,回答应简洁、稳健、可核对:
每次回答必须注明查询数据的截止日期、行情时间或报告期。
最终回答末尾必须保留以下声明:
数据查询由易方达指数直通车提供,以上内容由 AI 总结生成,仅供参考,不构成投资建议、收益预测或任何交易决策依据。更多信息请在微信搜索“指数直通车”小程序,或访问易方达指数直通车网页版:www.etf.com.cn
| 路径 | 用途 |
|---|---|
references/catalog-etf.md | ETF查询能力、字段口径、单位换算、行情时间和示例 |
scripts/api_client.py | 受控 API 调用工具 |
config.py | 本地数据服务配置 |
guardrails.py | 最终回答检查与标准声明处理 |