热点基金 (fund-trending-topic)
概述
从多维度数据源获取热点话题和基金数据,计算每个话题的综合权重,并关联对应的股票和基金,最终生成一份完整的交互式 HTML 分析报告。
当前版本 (v2.0):已接入东方财富 API,可获取真实基金历史涨幅数据。
核心功能
- 真实基金数据 — 通过东方财富 API 获取真实基金净值和涨幅数据(近1周/1月/3月/6月/1年)
- 综合权重计算 —
热度×3.0 + 趋势×2.5 + 相关度×2.0 + 涨幅×1.5 - 趋势图 Dashboard — 每个板块独立展示相关基金的历史涨幅走势(折线+渐变面积图)
- 交互式报告 — 4个 Tab 页,支持全选/反选、权重 Tooltip、ECharts 可视化
- 容错机制 — 如果 API 获取失败,自动使用模拟数据继续生成报告
使用方法
方法 1:命令行运行(推荐)
# 使用真实基金数据生成报告(默认)
python3 scripts/generate_report.py --output ./report.html
# 指定输出路径(使用绝对路径或相对路径)
python3 scripts/generate_report.py --output /Users/yourname/report.html
# 不使用真实数据(使用模拟数据)
python3 scripts/generate_report.py --no-real-data --output ./report.html
# 查看帮助
python3 scripts/generate_report.py --help
方法 2:在 WorkBuddy 对话中使用
直接对 WorkBuddy 说:
生成热点基金报告
WorkBuddy 会:
- 调用生成脚本
- 自动获取真实基金数据(通过东方财富 API)
- 生成完整 HTML 报告
- 展示 HTML 报告
数据获取说明
真实基金数据获取
脚本通过东方财富 API 获取真实数据:
- API 地址:
https://fund.eastmoney.com/pingzhongdata/{code}.js - 获取内容: 基金名称、近1月/近3月/近6月/近1年真实收益率
- 近1周数据: 基于近1月数据估算(API 不直接提供)
- 数据延迟: 可能有 15 分钟延迟(非实时)
热点话题数据
当前版本: 基于内置模板(包含 2026 年 7 月主流板块和基金代码)
未来版本: 计划接入 WebSearch 自动获取实时热点话题
数据真实性保证
✅ 真实数据:
- 基金代码:真实存在的 ETF 基金
- 基金净值:通过东方财富 API 实时获取
- 基金涨幅:基于真实历史净值计算
⚠️ 注意事项:
- 东方财富 API 可能有访问频率限制
- 建议每次生成报告间隔 ≥ 5 分钟
- 热点话题当前基于模板(非自动获取)
报告结构
报告包含 4 个 Tab 页:
| Tab | 内容 | |:---|:---| | 📊 权重排名 TOP10 | 按综合权重排序的热点话题排名表 | | 🔍 详细分析 | 每个话题的催化事件、关联股票、相关基金及历史表现 | | 📈 趋势图 | 按权重排序,每个板块一个 Dashboard,展示相关基金近1周/1月/3月/6月/1年涨幅 | | 📊 可视化 | 综合权重柱状图、四维雷达图、各维度分解对比 |
趋势图 Dashboard 功能
- 全选/反选按钮: 快速显示/隐藏所有基金折线
- 图例交互: 点击图例可单独显示/隐藏某只基金
- Tooltip: 悬停查看具体数值
- 渐变面积图: 参考 fund-trend-screener 样式
权重公式
综合权重 = 热度 × 3.0 + 未来趋势 × 2.5 + 基金相关度 × 2.0 + 基金涨幅 × 1.5
- 热度 (0-100): 话题的市场关注度
- 趋势 (0-100): 话题的未来发展趋势
- 相关度 (0-100): 话题与基金的关联程度
- 涨幅 (真实数值): 相关基金的平均涨幅(通过 API 获取)
依赖
必需依赖
| 依赖 | 用途 | 安装方式 |
|:---|:---|:---|
| Python 3.9+ | 运行生成脚本 | 系统自带或 install_binary |
| requests | HTTP 请求(获取东方财富 API 数据) | pip install requests |
| re | 正则表达式(解析 API 响应) | Python 标准库(无需安装) |
| ECharts 5 | HTML 报告图表渲染 | CDN 自动加载(无需安装) |
可选依赖(未来版本)
| 依赖 | 用途 | 说明 | |:---|:---|:---| | westock-data | 获取真实股票/基金数据 | 已安装技能,需要 MCP 连接 | | WebSearch/WebFetch | 获取实时热点新闻 | WorkBuddy 内置工具(未来版本接入) |
自定义数据源
修改热点话题模板
编辑 scripts/generate_report.py 中的 topics 列表(约第 108-340 行):
{
"name": "你的话题名称",
"heat": 80, # 热度 (0-100)
"trend": 85, # 趋势 (0-100)
"fund_rel": 90, # 相关度 (0-100)
"fund_codes": ["588730", "588510"], # 真实基金代码
"stocks": ["股票1", "股票2"],
"catalysts": [("催化事件", "2026-07")],
"sentiment": "看好",
"color": "#dd6b20",
}
注意:
fund_ret和funds字段会在运行时自动从 API 获取,无需手动设置fund_codes字段用于指定需要获取数据的基金代码
添加新板块
在 topics 列表中添加新的话题字典,确保包含 fund_codes 字段。
输出文件
| 文件 | 说明 |
|:---|:---|
| trending_topics_report.html | 主报告文件(如果未指定 --output) |
| scripts/generate_report.py | 报告生成脚本(支持真实数据获取) |
目录结构
fund-trending-topic/
├── scripts/
│ └── generate_report.py # 主生成脚本(支持真实数据获取)
├── references/
│ └── README.md # 数据源和字段说明
└── SKILL.md # 本文件
版本历史
v2.0 (2026-07-01)
- ✅ 接入真实数据源(东方财富 API)
- ✅ 自动获取基金历史涨幅(近1月/3月/6月/1年)
- ✅ 容错机制(API 失败时自动使用模拟数据)
- ✅ 支持
--output参数指定输出路径 - ✅ 支持
--no-real-data参数禁用真实数据获取
v1.0 (2026-07-01)
- 初始版本
- 硬编码热点话题数据
- 模拟基金历史涨幅数据
限制与免责声明
- 本报告仅供研究参考,不构成任何投资建议
- 基金数据来自东方财富网,可能有 15 分钟延迟
- 投资有风险,决策需谨慎
- 东方财富 API 可能有访问频率限制
相关技能
| 技能 | 关系 | |:---|:---| | fund-trend-screener | 同类技能,专注于基金趋势筛选和轮动池 | | westock-data | 获取真实股票/基金数据(未来版本接入) | | wb-finance-skill | 综合金融分析入口 |
故障排除
API 请求超时
如果看到 ✗ XXXXX 失败: HTTPSConnectionPool... Read timed out 错误:
- 检查网络连接
- 增加超时时间(修改脚本第 30 行
timeout=15为更大值) - 使用
--no-real-data参数禁用真实数据获取
报告生成失败
- 确保 Python 版本 ≥ 3.9
- 确保已安装
requests库:pip install requests - 检查输出路径是否有写入权限
微信扫一扫