Skip to content

cuiqinsain-cloud/financial_analysis_agent_beta04

Repository files navigation

🏦 Beta_04 财务分析自动化系统

一键生成完整的企业财务分析报告,包含盈利结构、经营指标、ROE分解、估值分析等。

✨ 特点

  • 🚀 全自动化:一键从原始财务数据生成完整分析表
  • 📊 多维度分析:8大模块,40+项财务指标
  • 🎨 专业美化:符合财务建模标准的配色和格式
  • 🔄 支持多年对比:自动识别时间序列,支持 YoY 分析
  • 🛠️ 易于扩展:可适配不同公司和行业
  • 📱 无需 LibreOffice:直接计算数值,无需额外依赖

📦 项目文件

financial_analysis_agent/
├── Agents.md                        # 入口:Agent协作文档(推荐首先阅读)
├── README.md                        # 本文件:用户使用指南
│
├── generate_beta04_v22.py           # 核心:V2.2分析表生成器(推荐使用)
├── subject_mapping.py               # 动态科目映射工具
├── subject_mapping_config.json      # JSON配置文件:科目映射规则
├── subject_validator_v22.py         # V2.2科目完整性验证器
├── requirements.txt                 # Python依赖包列表
├── .gitignore                       # Git忽略文件配置
│
├── venv/                            # Python虚拟环境(不提交到Git)
│
└── examples/                        # 示例文件
    ├── 福耀玻璃.xlsx                  # 示例:原始财务数据
    ├── 金山办公.xlsx                  # 示例:原始财务数据
    └── 福耀玻璃_Beta04_完整分析.xlsx    # 输出:完整的 Beta_04 分析表

🚀 快速开始

0. 环境准备

Python 环境要求

  • Python 3.7+
  • 依赖包:openpyxl

创建虚拟环境(推荐)

# 在项目目录下创建虚拟环境
python3 -m venv venv

# 激活虚拟环境
source venv/bin/activate  # macOS/Linux
#
venv\Scripts\activate     # Windows

# 安装依赖
pip install -r requirements.txt

注意

  • 虚拟环境仅限当前项目目录,不影响系统环境
  • 每次使用前需要激活虚拟环境

1. 准备数据

准备一个包含以下 3 个工作表的 Excel 文件:

  • balance:资产负债表(按列存储不同年度,年份从第3列开始)
  • 损益现金流:损益表和现金流量表(年份从第2列开始)
  • 收入成本:收入和成本明细(年份从第2列开始)

参考示例文件:examples/福耀玻璃.xlsx

2. 运行分析

确保已激活虚拟环境

source venv/bin/activate  # macOS/Linux

运行程序

# 使用默认文件(examples/福耀玻璃.xlsx)
python3 generate_beta04_v22.py

# 指定输入文件
python3 generate_beta04_v22.py 你的公司.xlsx

# 指定输入和输出文件
python3 generate_beta04_v22.py 输入.xlsx 输出.xlsx

3. 查看结果

生成的 Excel 文件包含完整的财务分析,示例输出:

✓ 成功生成 Beta_04 财务分析表
  输入文件: examples/福耀玻璃.xlsx
  输出文件: 福耀玻璃_Beta04_完整分析.xlsx
  分析年度: 2024, 2023, 2022, 2021, 2020, 2019, 2018

【2024年关键指标】
  营收: 38,710,428,679
  净利润: 7,504,038,370
  毛利率: 35.6%
  净利率: 18.5%
  ROE: 20.1%
  EPS: 2.75

📊 分析模块

1️⃣ 资产负债表数据

  • 资产(现金、投资、运营资产、长期资产)
  • 负债(预收、应付、有息负债)
  • 权益(资本投入、未分配利润)

2️⃣ 损益表数据

  • 主营收入、主营成本、费用明细
  • 折旧摊销、资本开支
  • 损耗、其他收益、现金收益
  • 利息支出、财务费用、所得税
  • 股权收益、其他业务收入/成本、营业外收入/成本

3️⃣ 盈利结构分析(全部使用公式)

主营收入
  - 主营成本
  - 费用
  + 损耗
  + 其他收益
  + 现金收益
  - 利息支出
  - 财务费用
  - 所得税
= 业务利润
  + 股权收益
  + 其他业务利润
  + 营业外利润
= 净利润
  - 分红
= 利润留存
  + 折旧摊销
  - CAPEX
= 自由现金流 (FCF)

4️⃣ 经营指标

盈利能力

  • 毛利率、费率、净利率
  • 研发费率、销售费率、管理费率

营运能力

  • 应收周转、存货周转
  • 应收占比、预收占比

5️⃣ 资产负债结构

  • 资产结构:现金/股权/经营/长期资产占比
  • 负债结构:经营负债/有息负债占比
  • 权益结构:资本投入/利润留存占比

6️⃣ 同比增长分析(YoY)

  • 营收 YoY
  • 净利润 YoY
  • 资产 YoY
  • 权益 YoY

7️⃣ ROE 分解(杜邦分析)

ROE = 净利率 × 资产周转率 × 权益乘数

识别 ROE 的驱动因素:

  • 盈利能力(净利率)
  • 运营效率(资产周转率)
  • 财务杠杆(权益乘数)

8️⃣ 估值指标

  • 每股指标:DPS(股息)、EPS(收益)、FPS(自由现金流)
  • 估值倍数:PE、股息率、市值
  • 需手动填写年度最高价和最低价

🎨 美化特点

颜色编码(符合财务建模标准)

  • 🔵 蓝色字体:手动输入字段(如股价)
  • 🟢 绿色字体:跨工作表引用
  • 黑色字体:计算字段
  • 🟨 黄色背景:关键假设和输入项

专业格式

  • ✅ 清晰的分区标题(蓝色粗体 + 灰色背景)
  • ✅ 金额使用千分位分隔符
  • ✅ 百分比自动格式化
  • ✅ 边框和对齐
  • ✅ 适当的列宽设置

💡 使用场景

📈 投资分析

  • 评估公司基本面
  • 对比历史趋势
  • 计算估值水平
  • 识别投资机会

🏢 企业管理

  • 财务健康检查
  • 绩效指标监控
  • 经营效率分析
  • 战略决策支持

🎓 学习研究

  • 财务分析实践
  • 杜邦分析应用
  • 现金流研究
  • 估值模型学习

🔄 定期监控

  • 季度/年度报表跟踪
  • 关键指标变化预警
  • 行业对标分析
  • 趋势预测

🛠️ 适配其他公司

🚀 方式1:动态科目识别(V2.2推荐)

使用标准科目名称,系统自动识别数据位置:

步骤

  1. 检查科目映射配置:

    python3 subject_mapping.py --config-info
  2. 分析你的Excel文件,查看科目映射情况:

    python3 subject_mapping.py 你的公司.xlsx
  3. 运行科目完整性验证(严格模式):

    python3 subject_validator_v22.py 你的公司.xlsx
  4. 生成分析表:

    python3 generate_beta04_v22.py 你的公司.xlsx

优势

  • ✅ 科目可以在任意行,系统自动查找
  • ✅ 支持科目别名(如"货币资金"→"现金及现金等价物")
  • ✅ 无需修改代码,纯配置驱动
  • ✅ 支持复合科目(如"有息负债"=短期借款+长期借款)
  • ✅ 严格模式验证,确保所有42个必需字段完整覆盖

🔧 科目配置管理

查看当前配置

python3 subject_mapping.py --config-info

添加新的科目别名

# 为"货币资金"添加新别名"现金资产"
python3 subject_mapping.py --add-alias balance 货币资金 现金资产

# 为"研发费用"添加新别名"R&D费用"
python3 subject_mapping.py --add-alias income 研发费用 R&D费用

📄 方式2:调整数据格式

将你的数据整理成与 examples/福耀玻璃.xlsx 相同的格式


⚙️ JSON 配置文件详解

📋 subject_mapping_config.json 结构

配置文件采用分层结构,包含以下主要部分:

{
  "meta": {                           // 元信息
    "version": "2.2.0",
    "description": "Beta_04 财务分析系统科目映射配置",
    "last_updated": "2026-02-03"
  },

  "balance_mapping": {                // 资产负债表科目映射
    "subjects": {
      "资产": {
        "aliases": ["资产", "资产总计", "总资产"],
        "description": "资产合计"
      }
    }
  },

  "income_mapping": {                 // 损益现金流表科目映射
    "subjects": { /* ... */ }
  },

  "revenue_mapping": {                // 收入成本表科目映射
    "subjects": { /* ... */ }
  },

  "composite_mapping": {              // 复合科目(需汇总多个科目)
    "subjects": {
      "折旧摊销": {
        "components": ["固定资产折旧", "使用权资产折旧", "无形资产摊销"],
        "description": "折旧摊销合计"
      }
    }
  },

  "beta04_field_mapping": {           // Beta_04字段与源数据映射关系
    "balance": { /* ... */ },
    "income": { /* ... */ },
    "revenue": { /* ... */ }
  },

  "validation_rules": {               // 验证规则
    "core_subjects": {                // 核心必需科目
      "balance": ["资产", "负债", "所有者权益"],
      "income": ["销售费用", "管理费用", "研发费用"],
      "revenue": ["主营业务收入", "主营业务成本"]
    }
  }
}

🔧 配置维护方法

1. 查看配置信息

python3 subject_mapping.py --config-info

2. 添加科目别名

# 语法:mapping_type = balance | income | revenue
python3 subject_mapping.py --add-alias <mapping_type> <subject> <alias>

# 示例:
python3 subject_mapping.py --add-alias balance 货币资金 银行存款
python3 subject_mapping.py --add-alias income 研发费用 研发支出

3. 手动编辑配置文件

  • 直接编辑 subject_mapping_config.json
  • 修改后会自动加载新配置
  • 支持添加新科目、别名、复合科目规则

4. 验证配置有效性

# 测试配置是否能正确识别科目
python3 subject_mapping.py 测试文件.xlsx

📊 配置文件特点

  • 结构化:JSON格式,层次清晰,易于理解
  • 灵活性:支持多个别名、复合科目、验证规则
  • 可扩展:容易添加新科目和映射规则
  • 版本管理:包含元信息,便于版本控制
  • 向后兼容:保持与现有代码的兼容性

📚 文档说明

Agent协作入口文档,包含:

  • 项目概览和快速开始
  • 核心功能和技术实现
  • 所有已修复的问题列表
  • V2.2动态科目识别详解
  • 使用示例和验证方法
  • Agent协作指南

适合:其他Agent快速了解项目全貌

JSON配置文件,包含:

  • 科目映射规则:支持多别名、复合科目
  • Beta_04字段映射:分析表与源数据的对应关系
  • 验证规则:核心必需科目和可选科目
  • 元信息:版本、更新时间等

适合:配置科目映射、理解数据提取逻辑

🔥 示例:福耀玻璃 2024 年分析

关键财务指标

指标 2024年 2023年 YoY
营收 387亿 361亿 +7.2%
净利润 75亿 66亿 +13.6%
毛利率 35.6% 34.8% +0.8pp
净利率 18.5% 17.4% +1.1pp
ROE 20.1% 19.8% +0.3pp

ROE 分解

ROE 20.1% = 净利率 18.5% × 资产周转率 0.61 × 权益乘数 1.77

主要发现

  • 盈利能力提升:毛利率和净利率均有改善
  • 现金流健康:自由现金流为正,FPS > EPS
  • 资产结构稳健:现金资产占比 32.7%
  • ⚠️ 有息负债增加:从 145亿 增至 150亿

⚙️ 技术栈

  • Python 3.7+
  • openpyxl:Excel 文件读写
  • 虚拟环境:项目独立的 Python 环境,不影响系统环境

🔄 版本历史

V2.2.5(当前版本 - 2026-02-04)

  • ✅ 删除重复的"股息"标题行(第120行)
  • ✅ 优化股息率计算公式:分子直接取股息分红,分母为市值(价格*股本)
  • ✅ 新增"税金及附加"科目到期间费用计算
  • ✅ 费用计算更新:研发费用 + 销售费用 + 管理费用 + 税金及附加
  • ✅ 在输出表格中显示"税金及附加"科目

V2.2.2(2026-02-04)

  • ✅ 优化输出格式,严格按照示例文件beta_04 sheet结构
  • ✅ 数据从第2行开始,数据列从第4列(D列)开始
  • ✅ 第1行格式:B列和C列为"定价",D列开始为年份
  • ✅ 移除分节标题,使用空行分隔不同数据组
  • ✅ 关键项目使用粗体标记(资产、负债、权益等)
  • ✅ 新增经营指标:应付(预付)占比、利息支出/业务利润、折旧摊销/长期资产
  • ✅ 新增现金留存和业务现金指标
  • ✅ 完善YoY分析:增加各资产负债项的同比增长细分
  • ✅ 优化ROE分解格式和估值指标(PE高低、股息率高低、市值高低)

V2.2.1(2026-02-04)

  • ✅ 优化科目验证逻辑:移除宽松模式,仅保留严格模式
  • ✅ 强化质量保障:验证所有42个beta04_field_mapping必需字段
  • ✅ 简化用户操作:无需选择模式参数,默认最严格标准
  • ✅ 增强验证报告:显示各工作表完成度百分比和详细统计
  • ✅ 确保数据完整性:防止生成不完整的财务分析表

V2.2(2026-02-04)

  • ✅ 实现动态科目识别,支持不同公司数据结构
  • ✅ 科目映射规则迁移至JSON配置文件
  • ✅ 支持科目别名和复合科目自动汇总
  • ✅ 添加科目完整性验证,防止生成不完整分析
  • ✅ 完整的配置管理工具和命令行接口
  • ✅ 清理项目结构,移除过时文档

V2.1(2026-02-03)

  • ✅ 修复数据提取列索引错误(主营收入等数据)
  • ✅ 修复盈利结构分析混用公式和数值问题
  • ✅ 业务利润公式改为纯引用,无硬编码数值
  • ✅ 将所有原始数据放到损益表数据部分(16个数据项)
  • ✅ 盈利结构分析全部使用公式(10个计算行)

V2.0

  • ✅ 直接计算数值,无需 LibreOffice
  • ✅ 支持多年数据自动识别
  • ✅ 专业配色和格式美化
  • ✅ 完善的错误处理
  • ✅ 修复YoY公式位置错误
  • ✅ 修复A列标签@符号问题

V1.0

  • 基于公式的生成器
  • 需要 LibreOffice 重算公式

🤝 贡献

欢迎提出改进建议!可以通过以下方式:

  • 📝 提交 Issue 报告问题
  • 🔧 提交 Pull Request 贡献代码
  • 💡 分享使用经验和最佳实践

📄 许可证

本项目仅供学习和研究使用。

🎯 路线图

计划中的功能

  • 支持更多财务指标
  • 行业对标分析
  • 图表可视化
  • Web 界面
  • 自动股价获取
  • PDF 报告导出

📞 联系方式

如有问题或建议,请联系项目维护者。


最后更新:2026-02-04 版本:V2.2.5 适用于:A股、港股上市公司财务分析


🌟 快速示例

# 1. 准备你的财务数据(参考福耀玻璃.xlsx)
# 2. 验证科目映射(严格模式 - 必需)
python3 subject_validator_v22.py 你的公司.xlsx

# 3. 运行分析
python3 generate_beta04_v22.py 你的公司.xlsx

# 4. 打开生成的 Excel 文件,开始分析!

就是这么简单! 🎉

About

基于Beta_04策略的分析

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages