Install
openclaw skills install @davidyin1976/financial-edu-davidA股上市公司财务分析全流程工具包。覆盖年报采集、三表提取、指标计算、可视化看板、数据核对的全链路。用于对A股上市公司进行近3-5年财务经营状况综合分析,包括年报PDF下载(巨潮资讯网)、合并资产负债表/利润表/现金流量表提取(PDF→xlsx)、财务指标计算(偿债/营运/盈利/发展/现金流/杜邦分析)、ECharts动态可视化看板(HTML)及东方财富F10数据交叉核对。触发场景:(1) "分析XX公司财务状况""XX股票财务分析""XX年报分析"等财务分析需求 (2) "下载XX年报" (3) "生成财务可视化看板" (4) "核对XX财务数据"。
openclaw skills install @davidyin1976/financial-edu-david对指定A股上市公司进行3-5年财务经营状况综合分析,覆盖从数据采集到可视化交付的完整链路。
pip install requests pdfplumber openpyxl严格按以下顺序执行,每阶段完成后确认数据正确性再进入下一阶段。
目标:从巨潮资讯网下载目标股票近N年(默认4年)年报PDF
步骤:
python scripts/fetch_annual_reports.py \
--code {股票代码} --name "{股票名称}" \
--years {起始年}-{结束年} --dir "{目标目录}" --market {sh|sz}
GET https://www.cninfo.com.cn/new/information/topSearch/query?key={code}POST https://www.cninfo.com.cn/new/hisAnnouncement/query(参数详见 cninfo_api.md)GET https://static.cninfo.com.cn/{adjunctUrl}输出:目录下 N 份年报 PDF + 采集日志.json
目标:从PDF提取合并资产负债表、利润表、现金流量表 → xlsx
步骤:
import pdfplumber
with pdfplumber.open("年报.pdf") as pdf:
for i, page in enumerate(pdf.pages):
text = page.extract_text() or ""
if "合并资产负债表" in text and "母公司" not in text:
print(f"资产负债表在第{i}页")
# 同理探测利润表、现金流量表
pdf_config.json(格式见下方示例)python scripts/extract_financial_tables.py --dir "{目标目录}" --config pdf_config.json
pdf_config.json 格式:
{
"2022": {
"file": "2023-04-21_公司名_2022年度报告.PDF",
"balance_pages": [104, 105, 106],
"income_pages": [108, 109, 110],
"cash_pages": [111, 112, 113],
"ann_id": "1216492757",
"ann_url": "https://www.cninfo.com.cn/new/disclosure/detail?annoId=1216492757",
"raw_url": "https://static.cninfo.com.cn/finalpage/2023-04-21/1216492757.PDF"
}
}
PDF解析核心问题:
pending_subject 状态机处理输出:每年一份 xlsx(3个sheet),文件命名:{股票名}_合并三表_{年份}年.xlsx
目标:计算完整的财务指标体系 + 杜邦分析
步骤:
_core_data.json
_metrics.json
metrics_guide.md输出:_core_data.json + _metrics.json
目标:生成HTML格式的动态财务分析数据可视化看板
看板结构(必须包含以下全部模块):
| 模块 | 内容 | 图表类型 |
|---|---|---|
| 页头 | 公司名、代码、年份、数据来源 | 静态HTML |
| 核心结论 | 5条关键发现(好/中/差三色标注) | 静态HTML |
| 数据核对 | 与东方财富F10对比表 | 静态表格 |
| 指标一览 | 偿债/营运/盈利/发展 四类指标汇总 | 彩色标注表格 |
| 图表1 | 资产负债趋势 | ECharts分组柱状图 |
| 图表2 | 营收与净利润趋势 | ECharts多线图 |
| 图表3 | 经营/投资/筹资现金流 | ECharts分组柱状图 |
| 图表4 | 盈利能力指标趋势 | ECharts多线图 |
| 图表5 | 偿债能力指标趋势 | ECharts多线图 |
| 图表6 | 营运能力指标 | ECharts柱+线混合图 |
| 图表7 | 增长率指标 | 分组柱状图 |
| 图表8 | 费用率结构 | 堆叠柱状图 |
| 杜邦分析 | ROE分解树形图(东方财富风格) | 纯HTML+CSS |
| 风险预警 | 高中低三类风险 + 改进建议 | 彩色卡片 |
技术规范:
<script> 中,无外部JSON依赖杜邦分析实现:
目标:确保分析数据与官方公开数据一致
步骤:
_core_data.jsonpending_subject 状态机处理_core_data.json 示例结构:
{
"2022": {
"资产总计": 10309876543.21,
"负债合计": 6615432109.87,
"营业收入": 6165432109.87,
...
}
}
_metrics.json 示例结构:
{
"2022": {
"流动比率": 0.65,
"资产负债率%": 64.17,
"销售毛利率%": 14.83,
"ROE_归母%": 0.87,
"杜邦ROE": 0.87,
"杜邦净利率": 0.35,
"杜邦总资产周转率": 0.60,
"杜邦权益乘数": 3.47,
...
}
}
scripts/fetch_annual_reports.py — 年报下载脚本(接受命令行参数)scripts/extract_financial_tables.py — PDF三表提取脚本(接受命令行参数)scripts/generate_dashboard.py 中的模式),不依赖独立脚本