Skip to content

About

Buffett-style DCF intrinsic value analysis for China A-share market | Python + Streamlit + Tushare

Topics

Resources

Stars

4 stars

Watchers

0 watching

Forks

Repository files navigation

📈 DCF Valuation System | A股DCF估值分析系统

Python Streamlit SQLite License Tushare

巴菲特价值投资理念的 A 股 DCF 内在价值分析工具 | Built with Python + Streamlit
🧪 开箱即用 — 内置 29 只精选股票测试数据 | Ready to run without API token


⚡ Quick Start · 快速开始

git clone https://github.com/Mirror-Heart/dcf-valuation-system.git
cd dcf-valuation-system
pip install -r requirements.txt
streamlit run streamlit_app.py

打开 http://localhost:8501,无需任何配置即可体验全部功能。

📊 项目已包含测试数据库 finance_test.db(1 MB, 29只股票 + 近4个月行情)。生产使用请配置 Tushare Token 采集全量数据。

数据采集命令(data_collector.py)

python3 data_collector.py --mode full     # 全部股票补齐所有缺失历史段(含分红)
python3 data_collector.py --mode quick    # 市值>50亿股票补齐缺失历史段(默认,含分红)
python3 data_collector.py --dividend      # 仅全量更新历史分红数据
python3 data_collector.py --dividend-codes 600519.SH,000858.SZ  # 指定股票更新分红
  • 限速/并发(.env):TS_API_CALLS_PER_MIN(令牌桶速率,默认 90,上限 400)、COLLECTOR_MAX_WORKERS(并发线程,默认 8)。

✨ Features · 功能

🧮 DCF 计算器 | Calculator

  • 输入股票代码自动获取财务数据 | Auto-fetch financial data by stock code
  • 可调节参数:增长率、折现率、安全边际 | Adjustable parameters
  • 实时股价 / 敏感性分析矩阵 | Real-time price + sensitivity matrix
  • FCF 取均一化值与最近一期中较小者(保守原则)| Conservative FCF estimation
  • 一键保存到跟踪列表 | One-click save to watchlist

📊 批量分析 | Batch Analysis

  • 一键分析全市场或自定义股票池 | Market-wide or custom pools
  • PE / PB / ROE / EPS 关键指标 | Key financial indicators
  • 按低估程度排序,发现投资机会 | Sorted by undervaluation level

⭐ 智能跟踪 | Smart Watchlist

  • 颜色标记分类 / 多列排序 / 名称展开计算详情 | Color markers + multi-column sort
  • 点击股票名查看完整 DCF 计算过程 | Click to expand DCF details

🤖 AI 分析 | AI Analysis(可选)

  • 多 LLM 提供商支持 | Multi-provider: 通义千问/智谱/MiniMax/Ollama
  • 测试连接 + 保存配置 | Test connection + save config

📈 估值回测 | Valuation Backtest

  • 单只股票历史 PE/PB/股息率多重锚点回测 | Historical PE/PB/Dividend backtest
  • 批量回测引擎 + 评级统计 + CSV 导出 | Batch engine + rating stats + CSV export
  • 自动提取最近年报 EPS | Auto EPS extraction
  • 行业感知评级(v2.4):7 大行业分组主指标切换(银行/周期/地产看 PB,消费/医药/科技看 PE);溢价锚弃用绝对最低点、改用 10 年 5% 分位锚(距底溢价,0%=贴底);ROE 质量门槛(年报中位 + 当期同比否决);PE>50 绝对红线;强周期 PE<15% 顶部预警 | Industry-aware valuation rating
  • 三层对比界面(v2.4):核心速览表(8 行窗口、低估/高估行底色、分位进度条、点击行下钻)→ 估值明细卡(metric 网格 + ROE 当期同比)→ 全量明细折叠 | 3-layer comparison UI

📸 Screenshots · 截图

DCF 计算参考 参数自定
批量跟踪 AI 对照评估

🗄️ 数据库 | Database

表 / Table 说明 关键字段
stock_basic 股票基本信息 ts_code, name, industry
income_statement 利润表 revenue, net_profit, eps, roe
balance_sheet 资产负债表 total_assets, total_liab, total_equity
cash_flow 现金流量表 经营/投资/筹资现金流
daily_basic 每日行情 close, pe, pb, total_share

📝 版本历史 | Changelog

版本 日期 内容
v2.4 2026-08 行业感知估值评级:7 大行业分组(银行保险/强周期/地产证券/消费品牌/医药医疗/科技制造/其他)主指标硬切换,分位阈值 25/75 起步;溢价锚从绝对最低点改为 10 年 5% 分位锚(距底溢价正数口径,0%=贴底);ROE 质量门槛 C-lite(年报≥中位×70% + 当期同比下滑>30% 否决);PE>50 禁判低估;强周期 PE<15% 顶部预警;地产/医药用 7 年窗口。估值对比三层界面:核心速览表(8 行滚动、行底色着色、分位进度条、点击行下钻)→ 估值明细卡(metric 网格、距底溢价解释、ROE 同比)→ 全量明细折叠。采集器重构:quick/full 双模式四步缺失补齐(探测→对比→任务→并发),update 模式删除,交易日历接入(trade_cal + 当日缓存)。
v2.3 2026-06 FCF 偏离度预警(≥3倍自动标红)、行业维持性 Capex 15 档细化、个股参数持久化、周期波动提示
v2.2 2026-06 估值回测模块(valuation_backtest + valuation_batch):单只/批量 PE-PB-股息率历史回测、评级统计、CSV 导出
v2.1 2026-05 同花顺风格全局 UI 主题、跟踪列表 st.dataframe 重构、备选内在价值列、折价率按数值排序
v2.0 2026-05 项目结构精简、README 合并、测试数据库内置、FCF 保守取值(trimmed_mean / 去峰归一化)
v1.5 2026-03 UI 优化、批量分析自定义股票池

📄 License

MIT — see LICENSE

⚠️ Disclaimer · 免责声明

本系统仅供学习和研究使用,不构成投资建议。投资有风险,入市需谨慎。

This system is for educational and research purposes only. Not financial advice.


🙏 致谢 | Acknowledgments

  • Tushare — A 股数据接口
  • Streamlit — Python Web 框架
  • 灵感来源:沃伦·巴菲特的价投哲学

About

Buffett-style DCF intrinsic value analysis for China A-share market | Python + Streamlit + Tushare

Topics

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages