stock-valuation
تایید شده内生增长分红估值模型(V1.0)—— 通过 ROE、分红率、EPS 计算股票安全买入价。 当用户说以下内容时触发: - 帮我估值、计算股票估值、安全买入价 - 这只股票值多少钱、合理价格是多少 - 用分红模型算一下、内生增长估值 - Yield on Cost、YoC 估值 - 分红折现、DDM 估值 - 该股票现在贵不贵、能不能买
(0)
۰
۲
۶
نصب مهارت
مهارتها کدهای شخص ثالث از مخازن عمومی GitHub هستند. SkillHub الگوهای مخرب شناختهشده را اسکن میکند اما نمیتواند امنیت را تضمین کند. قبل از نصب، کد منبع را بررسی کنید.
نصب سراسری (سطح کاربر):
npx skillhub install linuxyan/skills/stock-valuationنصب در پروژه فعلی:
npx skillhub install linuxyan/skills/stock-valuation --projectمسیر پیشنهادی: ~/.claude/skills/stock-valuation/
محتوای SKILL.md
---
name: stock-valuation
description: |
内生增长分红估值模型(V1.0)—— 通过 ROE、分红率、EPS 计算股票安全买入价。
当用户说以下内容时触发:
- 帮我估值、计算股票估值、安全买入价
- 这只股票值多少钱、合理价格是多少
- 用分红模型算一下、内生增长估值
- Yield on Cost、YoC 估值
- 分红折现、DDM 估值
- 该股票现在贵不贵、能不能买
---
# 内生增长分红估值模型(V1.0)
## 模型简介
本 skill 实现"内生增长分红估值模型",核心逻辑:
- 以公司的 **ROE**(盈利效率)与 **分红率(Payout)** 推导内生增长率
- 以"十年后分红收益率(Yield on Cost)达到 **8%**"为目标
- 反推**当前安全买入价**
> 参考文档:`references/model_spec.md`
---
## 工作流程
### Phase 1:获取财务数据
#### ⚠ 前置检查:确认依赖已安装(必须首先执行)
估值流程依赖两个组件,开始查询数据前**必须先检查它们是否存在**:
**检查 1:金融数据查询脚本**
```bash
QUERY_SCRIPT="$HOME/.workbuddy/plugins/marketplaces/cb_teams_marketplace/plugins/finance-data/skills/neodata-financial-search/scripts/query.py"
if [ ! -f "$QUERY_SCRIPT" ]; then
echo "❌ 金融数据查询插件未安装"
echo "请先在 WorkBuddy 客户端中安装以下插件:"
echo " 插件名: cb_teams_marketplace > finance-data > neodata-financial-search"
echo " 安装路径: $QUERY_SCRIPT"
exit 1
fi
echo "✅ 金融数据查询插件已就绪"
```
**检查 2:估值计算脚本**
```bash
VALUATION_SCRIPT="$HOME/.workbuddy/skills/stock-valuation/scripts/valuation.py"
if [ ! -f "$VALUATION_SCRIPT" ]; then
echo "❌ 估值脚本不存在"
echo "请确认 stock-valuation skill 已正确安装"
echo " 期望路径: $VALUATION_SCRIPT"
exit 1
fi
echo "✅ 估值脚本已就绪"
```
> **如果检查失败**:告知用户需要在 WorkBuddy 客户端中安装对应插件,**不要尝试绕过或手动下载**。安装完成后重新执行检查即可。
#### 1.1 完整数据清单
使用 NeoData 金融数据搜索 API 获取以下 **11 项数据**(可并行查询):
| # | 数据项 | 用途 | 查询关键词示例(替换 `{公司名}` 和 `{代码}`) |
|---|--------|------|------------------------------------------|
| **①** | **最新年报 EPS** | 估值核心输入 | `"{公司名}{代码} {年份}年年报每股收益EPS归母净利润"` |
| **②** | **最新股价 + 行情指标** | 与安全价对比 | `"{公司名}{代码} 最新股价收盘价{日期} PE PB 股息率"` |
| **③** | **近 5 年加权 ROE** | 计算模型输入 | `"{公司名}{代码} 2020-2025加权ROE净资产收益率历年"` |
| **④** | **近 5 年分红数据** | 确定分红率 + 筛选检验 | `"{公司名}{代码} 2020-2025历年分红送配每股派息分红率年度分红中期分红"` |
| **⑤** | **分红政策/承诺/规划** | 确定分红率 | `"{公司名}{代码} 分红政策规划承诺变更修订回报规划"` |
| **⑥** | **近 5 年经营现金流净额** | 筛选条件检验 | `"{公司名}{代码} 2020-2025经营现金流净额经营活动现金流量"` |
| **⑦** | **资产负债率 + 有息负债率** | 筛选条件检验 | `"{公司名}{代码} 2020-2025资产负债率有息负债率财务费用"` |
| **⑧** | **近 5 年每年 EPS** | g_final 可信度评估(历史增速) | `"{公司名}{代码} 2020-2025每年每股收益EPS历年数据"` |
| **⑨** | **行业趋势信息** | g_final 可信度评估(行业空间) | `"{行业名} 2025年2026年行业趋势调整产量增速市场规模消费"` |
| **⑩** | **最新季度业绩**(年报已发布时跳过) | 业绩说明章节 | `"{公司名}{代码} 2026年一季报营收净利润"` |
| **⑪** | **年度分红方案**(年报刚发布时可能查不到) | 确认全年分红率 | `"{公司名}{代码} {年份}年报分红方案每股股利派息"` |
> **调用方式**:所有查询使用相同的 API 脚本:
> ```bash
> python3 $HOME/.workbuddy/plugins/marketplaces/cb_teams_marketplace/plugins/finance-data/skills/neodata-financial-search/scripts/query.py \
> --query "查询关键词" --data-type api 2>/dev/null
> ```
#### 1.2 通用规则(⚠ 关键,严格执行)
**A. 年报时效判断**
- A 股年报截止 **4/30**,查询前先确认当前日期
- 如果当年年报已发布(API 返回截至该年度 12/31 的年报数据),**必须使用最新年报数据**,不要使用 TTM 或旧年报
- 如果年报尚未发布:用最新可用年报数据估值,同时查询最新季度数据写入"业绩说明"章节
**B. 股票代码格式**
- `ts_code` **必须带交易所后缀**:上交所 `.SH`(如 `600519.SH`)、深交所 `.SZ`(如 `000651.SZ`、`002304.SZ`)
**C. 数据年份识别**
- API 返回的多期数据可能混合不同年度,**务必检查每条记录的年份标注**,提取对应年度的数据
- 常见年份字段名:`end_date`、`m_anntime`、报告期
**D. 数据解读防错**
- **"预告" ≠ "实际"**:业绩预告区间 ≠ 年报终值,不能直接用于估值计算
- **避免过度推断**:拿到原始数据后先理解上下文和字段含义,再得出结论
- **数据不完整时降级处理**:如 5 年数据不全可用近 3 年替代,但需在报告中注明
#### 1.3 各数据项详细说明
##### ① 最新年报 EPS
- **取值规则**:必须使用最新年报的**基本每股收益**(非稀释每股收益)
- **优先级**:年报 EPS > 业绩预告 EPS > TTM EPS(降级使用需注明)
- **解读要点**:注意确认 EPS 对应的年度(年报 EPS 对应的是上一会计年度的利润)
- **验证方式**:可交叉验证 `归母净利润 ÷ 总股本 ≈ EPS`
##### ② 最新股价 + 行情指标
- **取值**:最新交易日的收盘价
- **配套查询**:同时获取 PE(TTM)、PB、股息率、年初至今涨跌幅等,写入报告参数表
- **用途**:与安全买入价对比计算安全边际
- **注意**:如果估值时为非交易时段(周末/节假日),使用最近一个交易日的收盘价
##### ③ 近 5 年加权 ROE
- **取值**:**加权平均净资产收益率**(非全面摊薄 ROE)
- **计算方式**:取近 5 个年度的加权 ROE,计算算术平均值
- **注意**:如果最新年报 ROE 异常低(如因一次性亏损),可考虑是否排除,但必须在报告中说明理由
- **API 字段**:`fina_indicator` 中的 `roe` 字段
##### ④ 近 5 年分红数据
- **必须获取的信息**:每年全年每股股利(元)、是否含中期分红、全年分红率
- **计算全年分红率**:`全年每股股利 ÷ 当年 EPS × 100%`
- **⚠ 必须区分"中期"与"年度"**(常见错误):
- A 股分红分为**中期分红**(H1,约 8-9 月公告)和**年度分红**(次年 4-6 月公告),两者独立
- API 返回的"分红送配方案"如果是 8 月份公告的,大概率是**中期分红**,而非全年
- **"中期不分红" ≠ "全年不分红"**——年度分红方案需待年报发布后确认
- 看到"不分配不转增"时,先确认是哪个期间(中期/年度)
- **错误案例**:洋河 2025-08-19 公告"2025年不分配不转增"实为中期方案,被误读为全年不分红
- **分红率 > 100% 的处理**:说明公司动用了留存利润分红,需在报告中注明原因(如兑现承诺)
##### ⑤ 分红政策/承诺/规划
- **查询要点**:同时搜索**当前有效规划**和**历史规划变更记录**
- **确定优先级(从高到低)**:
1. **公司最新分红规划**(如"2024-2026年分红率不低于75%"):优先采用,反映管理层未来意图
2. **⚠ 必须确认承诺是否仍然有效**:搜索"分红规划 变更/修订/取消/调整",确认是否有新规划替代旧规划
3. **绝对不能仅凭旧公告就采信**(如洋河 2026 年取消了"不低于70亿元"的硬承诺)
4. **近 3-5 年实际分红率均值**:在没有明确承诺时使用
5. **注意区分"年度分红"和"特别分红/中期分红"**:一年分两次的必须加总
- **报告中的标注**:
- 如有承诺:说明具体内容、承诺期限、是否已兑现
- 如承诺已变更:⚠ 标注变更时间和新旧差异(这是重大事项,需在报告头部注明)
- 如无承诺:说明情况,使用实际均值
##### ⑥ 近 5 年经营现金流净额
- **用途**:Phase 3 筛选条件"现金流健康"检验
- **检验标准**:近 3 年平均经营现金流 ≥ 净利润(比值 ≥ 100%)
- **解读要点**:
- 单年低于 100% 不一定有问题,但**连续多年低于 100% 是警告信号**
- **经营现金流为负是重大风险**(如洋河 2025 年 -7.63 亿),说明分红可能面临执行困难
- 计算"净利润现金含量"= `经营现金流净额 ÷ 归母净利润 × 100%`
##### ⑦ 资产负债率 + 有息负债率
- **用途**:Phase 3 筛选条件"负债率可控"检验
- **必须同时查询两个指标**:
- **资产负债率** = 总负债 ÷ 总资产(一般标准:< 70%)
- **有息负债率** = (短期借款 + 一年内到期的非流动负债 + 长期借款 + 应付债券) ÷ 总资产
- **判断"借钱分红"嫌疑**:如果资产负债率高 + 有息负债率高 + 分红率高 → ⚠️
- **辅助判断**:财务费用为负(利息收入 > 支出)说明公司资金充裕,不存在借钱分红
##### ⑧ 近 5 年每年 EPS(用于 g_final 可信度评估)
- **用途**:计算 EPS 复合增速 CAGR,与 g_final 对比
- **计算公式**:`CAGR = (EPS_最新年 / EPS_最早年)^(1/年数) - 1`
- **解读**:
- CAGR ≥ g_final → 历史增速支撑模型假设(高分)
- CAGR < g_final 的 50% 或持续下滑 → 增速假设不可靠(低分)
- **注意**:此数据可与 ① 合并查询(同一 API 返回多年 EPS)
##### ⑨ 行业趋势信息(用于 g_final 可信度评估)
- **查询方式**:搜索该行业的最新趋势分析,而非特定公司的数据
- **关键词示例**:`"白酒行业 2025 2026 趋势 产量 增速 消费"`、`"空调行业 存量 竞争 格局"`
- **需了解的信息**:
- 行业处于增长期 / 存量期 / 衰退期
- 行业产量/规模的近年增速趋势
- 是否有重大政策变化影响行业(如禁酒令、能效标准等)
- 主要竞争对手的动态
- **评分参考**:
- 行业仍有增长空间 → 高分
- 行业接近饱和但需求稳定 → 中分
- 行业衰退或深度调整 → 低分
##### ⑩ 最新季度业绩(年报已发布时跳过)
- **用途**:年报尚未发布时,在"业绩说明"章节展示最新季度/前三季/预告数据
- **获取**:最新一季度的营收、归母净利及同比变化
- **注意**:如果已有最新年报数据,此项不需要查询
##### ⑪ 年度分红方案(年报刚发布时补充查询)
- **场景**:年报刚发布(如 4 月底),分红方案可能尚未公告或尚未入库
- **查询**:`"{公司名}{代码} {年份}年报分红方案每股股利派息"`
- **处理**:如果查不到年度分红方案,在报告中注明"年度分红方案待股东大会确认",用承诺值或历史均值估算
#### 1.4 查询执行建议
- **可并行查询**:上述 11 项数据之间无依赖关系,应尽量并行发起查询以提高效率
- **关键词灵活调整**:如果第一次查询结果不理想,换关键词重试(如换"每股收益"为"EPS"、换"经营现金流"为"现金流量"等)
- **数据提取技巧**:API 返回 JSON 格式,可用 `python3 -c` 命令做初步过滤提取,只保留含关键字的行
- **交叉验证**:同一数据项(如 EPS)可通过不同查询关键词验证一致性
### Phase 2:执行估值计算
运行估值脚本:
```bash
python3 $HOME/.workbuddy/skills/stock-valuation/scripts/valuation.py \
--eps <EPS_curr> \
--roe <ROE_5y_avg> \
--payout <Payout_5y_avg> \
[--target-yield 0.08] \
[--years 10] \
[--stock-name "股票名称"] \
[--current-price <最新股价>]
```
#### Phase 2.5:g_final 增速可信度评估(⚠ 必须执行)
算出 g_final 后,**必须立即评估该增速在未来 10 年的实现概率**。g_final 是模型的核心假设——如果这个增速根本无法实现,安全买入价就是空中楼阁。
**评估维度(5 项,每项 1-3 分):**
| 维度 | 评估内容 | 3 分(高可信) | 2 分(中可信) | 1 分(低可信) |
|------|---------|--------------|--------------|--------------|
| **① 历史增速** | 近 5 年 EPS 复合增速 vs g_final | 历史 CAGR ≥ g_final | 历史 CAGR 在 g_final 的 50%-100% | 历史 CAGR < g_final 的 50% 或 EPS 持续下滑 |
| **② 再投资效率** | 留存利润再投资是否真的能创造价值 | 高分红率(≥70%):不依赖再投资,g_final 天然容易实现 | 中分红率(40%-70%):适度依赖再投资 | 低分红率(<40%):高度依赖再投资,需优质投资机会 |
| **③ 行业空间** | 行业渗透率、增速趋势、天花板 | 行业仍有增长空间或稳健需求 | 行业接近饱和但需求稳定 | 行业衰退或深度调整、需求萎缩 |
| **④ ROE 稳定性** | 近 5 年 ROE 波动幅度 | ROE 标准差 < 3个百分点 | ROE 标准差 3-6个百分点 | ROE 标准差 > 6个百分点或单年骤降 > 10个百分点 |
| **⑤ 模型适配性** | 股票特征与模型假设的匹配程度(见下方详细说明) | 适配:高分红+稳定/低增长,模型核心逻辑完全适用 | 部分适配:需要调整输入或解释口径(如含回购的综合分红率、跨币种折算) | 不适配:模型安全价仅作参考下限,不能作为决策依据 |
**总分与可信度等级:**
| 总分 | 等级 | 含义 | 报告标记 |
|------|------|------|---------|
| 12-15 | 🟢 **高可信** | g_final 实现概率大,模型结果可靠 | 🟢 高可信 |
| 8-11 | 🟡 **中可信** | g_final 有一定不确定性,需关注风险因素 | 🟡 中可信 |
| 5-7 | 🟠 **低可信** | g_final 实现困难,安全买入价可能偏高 | 🟠 低可信 |
**⑤ 模型适配性——详细评分指南:**
本模型以 **DPS(每股现金分红)** 为核心输入,推导逻辑为 `ROE × 留存率 → 内生增长 → DPS 增长 → 安全价`。因此模型天然适配**高分红、低增长、业务稳定的成熟价值股**。对于其他类型股票,需评估适配程度:
**股票类型与模型适配性:**
| 股票类型 | 典型特征 | 适配度 | 评分建议 | 处理方式 |
|----------|---------|--------|---------|---------|
| **高分红价值股** | 分红率 ≥50%,ROE 稳定,增长温和(如格力、分众、高速公路) | ★★★ 完美适配 | 3 分 | 直接使用模型结果 |
| **稳定白马股** | 分红率 30-50%,ROE 中高,增长中等(如茅台、部分银行) | ★★★ 基本适配 | 2-3 分 | 正常使用,注意增长假设 |
| **高回购低分红股** | 现金分红率低,但大量回购注销(如腾讯) | ★★ 部分适配 | 2 分 | 将回购折算为"综合分红率",注明折算方法 |
| **成长股** | 分红率 <20%,利润高增长(如科技、医药) | ★ 不适配 | 1 分 | 模型安全价仅作参考下限,g_final 严重低估实际潜力 |
| **周期股** | 利润波动大,分红不稳定(如钢铁、煤炭) | ★ 不适配 | 1 分 | ROE/EPS 周期波动使模型失效,不建议使用 |
| **金融/银行股** | ROE 高但受监管约束,分红率稳定但增长空间受限 | ★★ 部分适配 | 2 分 | 可使用,注意监管资本充足率约束对增长的影响。⚠ **回测验证(招商银行 2023-11)**:安全买入价作为"价值锚"有效(低估判断正确,2.5 年涨幅 66%),但实际上涨驱动力是**估值修复(PB 修复)+ 高股息率**,而非 EPS 增长(近乎零增长)。模型会系统性低估银行股的投资回报。银行股适用补充视角:股息率安全垫 + PB 估值修复空间 |
**港股/跨币种特殊处理:**
- 如果 EPS(利润表)和分红/股价的计价币种不同(如腾讯:EPS 人民币,分红/股价港币),**必须统一币种后计算分红率**
- 使用最新汇率折算,并在报告中注明汇率和折算方式
- 币种差异增加一层不确定性,评分时从 3 分降为 2 分
**评分规则总结:**
- 分红方式为**纯现金**且高分红 → 3 分
- 分红方式含**回购**或需要**跨币种折算** → 2 分
- 模型核心假设与股票特征**根本不匹配**(成长股/周期股/低分红)→ 1 分
**执行要点:**
1. **数据来源**:在 Phase 1 获取数据时,需额外查询近 5 年 EPS 数据(用于计算 CAGR)和行业趋势信息
2. **评分依据**:评分必须基于已查询到的客观数据,每项评分需在报告中注明具体理由
3. **g_base vs g_final 的差异**:如果 g_final = g_base(未被截断),说明增速来自实际留存再投资能力,可信度天然更高;如果 g_final = Cap(被截断),说明理论增速高于上限,需要更谨慎地评估
4. **特别关注**:当 g_final 被截断时(即 g_base > Cap),需额外说明"g_base 为 X% 但被截断至 Y%,截断幅度越大,说明模型越保守,可信度加分"
### Phase 3:筛选条件检验(一票否决)
计算完毕后,根据已获取的数据逐项检验:
| 筛选条件 | 要求 | 结果 |
|----------|------|------|
| 历史分红稳定 | 近 5 年每年分红率均 > 30% | ✅ / ⚠️ / ❌ |
| 现金流健康 | 近 3 年平均经营现金流 ≥ 净利润 | ✅ / ⚠️ / ❌ |
| 负债率可控 | 资产负债率平稳或下降,无"借钱分红"嫌疑 | ✅ / ⚠️ / ❌ |
| 业务确定性 | 商业模式简单,10年后仍被需要(主观判断) | 供参考 |
### Phase 4:输出报告
输出 Markdown 报告文件(`{股票名称}_估值报告.md`),**严格遵循以下固定格式**(六个章节,不得增减大节,不得加入与其他股票的对比章节):
#### 报告结构(固定模板)
```
# {股票名称}({代码})内生增长分红估值报告
> 估值时间:YYYY-MM-DD | 数据来源:NeoData 金融数据搜索
> ⚠ 本报告仅供学习参考,不构成投资建议
> (如有重大事项如分红承诺变更/取消,在此加一行注明)
---
## 一、核心输入参数
| 参数 | 数值 | 来源/说明 |
|------|------|----------|
| 当前股价 | **¥XX.XX** | 日期、涨跌幅、PE/PB/股息率等关键行情指标 |
| EPS({年份}年报) | **¥XX.XX** | 年报说明 |
| 5年均 ROE | **XX.X%** | 说明取值年份 |
| 分红率 | **XX.X%** | 说明取值依据(承诺值/实际均值) |
### ROE 与分红年度明细
| 年度 | EPS(元) | 加权 ROE | 每股股利(元) | 全年分红率 | 说明 |
|------|----------|---------|--------------|----------|------|
| ... | ... | ... | ... | ... | ... |
> *注:(分红相关注释,如超100%原因、中期/年度区分等)*
>
> **分红承诺**:(如有承诺,说明具体内容和状态;如无承诺,说明情况)
### {年份} 年业绩说明(年报待发)
> 仅在年报未发布时添加此子节,用表格列出已知数据(前三季/预告/研报预测等)
---
## 二、估值计算过程
### Step 1:确定 ROE 和分红率
(文字说明取值过程)
### Step 2:计算理论增速
(代码块展示 g_base 计算公式和结果)
### Step 3:ROE 档位截断 → g_final
(表格展示档位、上限、g_final)
### Step 3.5:g_final 增速可信度评估
> 模型假设未来 10 年 EPS 以 **{g_final}%** 年复合增长。这个增速能否实现?
| 评估维度 | 评分 | 评估依据 |
|----------|------|---------|
| ① 历史增速(近5年EPS CAGR vs g_final) | X/3 | (具体数据说明) |
| ② 再投资效率(留存比例 × 再投资机会) | X/3 | (分红率高→不依赖再投资→容易实现,说明具体逻辑) |
| ③ 行业空间(渗透率/需求趋势/天花板) | X/3 | (行业情况说明) |
| ④ ROE 稳定性(近5年 ROE 波动) | X/3 | (标准差或波动情况说明) |
| ⑤ 模型适配性(股票特征与模型匹配度) | X/3 | (说明股票类型、是否含回购/跨币种、核心适配逻辑) |
**总分:X/15 → 🟢高可信 / 🟡中可信 / 🟠低可信**
> (一段话总结:g_final 实现概率的核心判断,重点关注哪项拉低了分数,模型适配性是否影响结论可靠性)
### Step 4:计算安全买入价
(代码块展示 EPS→DPS→安全价计算过程)
---
## 三、估值结论
| 指标 | 数值 |
|------|------|
| ★ **安全买入价** | **¥XX.XX** |
| 当前股价 | ¥XX.XX |
| 安全边际 | **+XX.X%** |
| **估值状态** | 🟢🟠🔴 **低估/略微高估/明显高估** |
| **g_final 可信度** | 🟢高可信 / 🟡中可信 / 🟠低可信 |
> ⚠ g_final 可信度说明:(一句话说明 g_final 实现概率的高低原因,包含模型适配性判断,如"g_final=5%,高分红率80%降低了再投资依赖,但行业已进入存量竞争。模型适配性良好——高分红价值股,核心逻辑完全适用")
### 敏感性分析
| 假设变化 | EPS | 分红率 | 安全买入价 | 当前股价对比 |
|----------|-----|--------|----------|------------|
| **基准**(...) | ... | ... | **¥XX.XX** | ... |
| 乐观/悲观场景 | ... | ... | ¥XX.XX | ... |
> 💡 **核心判断**:(一段话总结核心观点)
---
## 四、筛选条件检验(一票否决)
| 筛选条件 | 要求 | 结果 | 说明 |
|----------|------|------|------|
| 历史分红稳定 | ... | ✅/⚠️/❌ | ... |
| 现金流健康 | ... | ✅/⚠️/❌ | ... |
| 负债率可控 | ... | ✅/⚠️/❌ | ... |
| 业务确定性 | ... | ✅/⚠️/❌ | ... |
**结论:...**
---
## 五、补充分析
### 核心优势
(列表 3-5 点)
### 风险因素
(列表 3-6 点)
---
## 六、风险提示
⚠ **本模型结果仅供参考,不构成投资建议。**
- (列表 4-7 条具体风险)
```
#### 格式要求(⚠ 严格执行)
1. **六大章节固定**:一、核心输入参数 → 二、估值计算过程 → 三、估值结论 → 四、筛选条件检验 → 五、补充分析 → 六、风险提示。**不得增加或减少大节**
2. **不得包含与其他股票的对比章节**(如"与茅台/分众对比"等),每份报告只评估单只股票
3. **估值计算必须使用 Step 1-4 格式**,不要用参数表+场景表的简化格式
4. **三、估值结论中必须包含敏感性分析表**,列出基准、乐观、悲观场景
5. **五、补充分析分为"核心优势"和"风险因素"两个子节**
6. **六、风险提示以"⚠ 本模型结果仅供参考,不构成投资建议。"开头**,后接列表
---
## 核心公式速查
```
安全买入价 = [ EPS_curr × (1 + g_final)^10 × Payout ] / 8%
g_base = ROE_5y × (1 - Payout_5y)
g_final 根据 ROE 档位截断:
ROE > 25% → min(g_base, 8%)
15% ≤ ROE ≤ 25% → min(g_base, 5%)
ROE < 15% → min(g_base, 3%)
```
---
## 回测经验库(历史验证)
> 以下为已完成的历史回测案例,用于校验模型有效性和发现模型局限。
### 招商银行(600036.SH)— 回测时点 2023 年 11 月底
**回测背景**:2023 年 11 月底,招商银行股价 ¥23.81(PB ≈ 0.55 倍),市场情绪悲观(LPR 多次下调、经济复苏不及预期)。
| 项目 | 回测输入(2023-11 视角) | 实际结果(2026-04) |
|------|------------------------|-------------------|
| 安全买入价 | ¥36.31(EPS ¥5.26,ROE 16.1%,分红率 33.9%) | 股价 ¥39.60,涨幅 66.3% |
| 安全边际 | +52.5%,🟢 明显低估 | 低估判断正确 ✅ |
| EPS 预期 | 10 年后 EPS ¥8.57(假设 5% 年增长) | 2025 年 EPS ¥5.70,近乎零增长 ⚠️ |
| ROE 预期 | 5 年均 16.1%,但 2022 年已降至 14.49% | 2025 年 ROE 13.44%,持续下行 ⚠️ |
| 分红率 | 5 年均 33.9% | 2025 年升至 35.4% ✅ |
**核心教训(已融入模型指导规则):**
1. **安全买入价是有效的"价值锚"**:低估时买入的判断正确,即使增长假设不准确,安全边际仍提供了足够的保护
2. **模型对银行股的回报路径估计不完整**:实际上涨驱动力是**估值修复(PB 0.55→0.91)+ 高股息率(8.4%)**,而非 EPS 增长。内生增长模型假设 EPS 持续增长,但银行股可以通过**估值修复**和**股息收益**实现回报
3. **g_final 可信度风险会兑现**:回测时已标记 ROE 下行风险和净息差收窄,2025 年 ROE 降至 13.44% 确认进入 3% 档位。低可信度(🟡 中可信)的警告应引起足够重视
4. **银行股需补充分析维度**:除模型安全价外,应额外关注 **PB 估值位置**(是否处于历史极端低位)和 **股息率**(是否已接近或超过目标收益率),这两个维度对银行股同样重要
### 贵州茅台(600519.SH)— 回测时点 2020 年 11 月底
**回测背景**:2020 年 11 月底,贵州茅台股价 ¥1,499.70(PE ≈ 45.7 倍),处于历史极高估值水平,受益于疫情后流动性宽松和白酒需求恢复。
| 项目 | 回测输入(2020-11 视角) | 实际结果(2026-04) |
|------|------------------------|-------------------|
| 安全买入价 | ¥452.85(EPS ¥32.80,ROE 30.2%,分红率 51.2%) | 股价 ¥1,405.00,5.4 年略跌 6.3% |
| 安全边际 | -231.2%,🔴 明显高估 | 高估判断长期正确 ✅(5 年零收益) |
| EPS 预期 | 10 年后 EPS ¥70.81(假设 8% 年增长) | 2025 年 EPS ¥65.66,年化实际增速约 14.9% |
| ROE 预期 | 5 年均 30.2% | 2025 年 TTM ROE 30.53%,极为稳定 ✅ |
| 分红率 | 5 年均 51.2% | 2025 年升至 75%+(公司承诺 2024-2026 ≥75%)✅ |
**核心教训(已融入模型指导规则):**
1. **高估判断在长期得到验证**:¥1,499.70 买入后 5.4 年几乎零收益(-6.3%),高估确实损害了投资回报。EPS 从 ¥32.80 翻倍至 ¥65.66(+100%),但 PE 从 45.7 降至 21.3(-53%),估值消化完全抵消了业绩增长
2. **高估 ≠ 立即下跌**:茅台在 2020 年底至 2021 年 2 月继续上涨至 ¥2,100+,模型无法预测市场情绪的延续时间。但模型的价值在于**纪律性**——避免高估追涨
3. **品牌溢价突破模型框架**:茅台拥有"类货币"和"社交货币"属性,市场长期给予远超模型安全价的估值溢价。对于品牌护城河极深的优质公司,安全买入价更像**"价值底线"**而非**"合理价格"**
4. **分红率提升超预期**:茅台 2024-2026 年承诺分红率不低于 75%,远超历史均值 51%。分红提升部分对冲了估值下跌,但不足以在高估值下产生正回报
5. **极端高估案例的警示**:PE 45+ 倍的价格意味着即使 EPS 未来 10 年以 8% 增长、分红率维持 51%,也仅能实现约 8% 的目标收益率。一旦增速不及预期或估值收缩,回报将显著低于目标。这是模型对极端高估最有效的警示场景
### 贵州茅台(600519.SH)— 回测时点 2018 年 11 月 2 日 ⚠️ 模型误判
**回测背景**:2018 年 10 月 28 日三季报 Q3 净利润增速骤降至 2.71%,10 月 29 日一字跌停(¥549.09),10 月 30 日最低 ¥509.02,随后快速反弹。11 月 2 日收 ¥599.90(PE ≈ 28 倍),恰处于恐慌性反弹阶段。上证指数从年初 3,500+ 跌至 2,500 附近。
| 项目 | 回测输入(2018-11 视角) | 实际结果(2026-04) |
|------|------------------------|-------------------|
| 安全买入价 | ¥295.57(EPS ¥21.56,ROE 30.9%,分红率 51%) | 股价 ¥1,405.00,7.4 年涨幅 134.3% |
| 安全边际 | -103.0%,🔴 明显高估 | **模型误判** ❌,总回报 172.7%(含分红) |
| EPS 预期 | 10 年后 EPS ¥46.55(假设 8% 年增长) | 2025 年 EPS ¥65.66,年化实际增速 17.3% |
| ROE 预期 | 5 年均 30.9% | 2025 年 TTM ROE 30.53%,极为稳定 ✅ |
| 分红率 | 51% | 2025 年升至 75%+ ✅ |
**核心教训(已融入模型指导规则):**
1. **模型首次"高估误判"——高估程度不同结果截然不同**:安全边际 -103%(PE 28)与 -231%(PE 46)的含义完全不同。PE 28 对 ROE 30%+ 的顶级消费品牌并非极端高估,模型应区分"明显高估"与"合理偏高"
2. **熊市恐慌中的"高估"可能是黄金坑**:2018 年 11 月全市场处于极端恐慌状态(上证 -30%),茅台跌停后 PE 降至 28 倍历史中低位,实际上是极好的买入机会。模型缺乏对市场情绪周期的判断能力
3. **顶级公司的成长能力持续超预期**:茅台 EPS 年化增速 17.3%,远超模型 8% 假设。ROE 连续 8 年 >24% 的公司,增速上限 8% 可能过于保守
4. **需要引入 PE 分位数和 ROE-PE 匹配**:ROE 30% 的公司合理 PE 应高于 ROE 15% 的公司,不能简单地用同一套安全边际标准。建议配合 PE 历史分位数辅助判断
---
## 注意事项
- 目标收益率默认 8%,极其确定的资产(如长电)可调整为 6%-7%(调用脚本时传 `--target-yield 0.06`)
- 模型仅供参考,不构成投资建议
- 数据质量决定结果质量,分红数据缺失时需明确说明
- **银行股的回报来源具有多样性**:内生增长模型以 EPS 增长为核心假设,但银行股实际回报可能来自股息收益 + 估值修复(PB 修复),而非 EPS 增长。对银行股估值时,应同时分析 PB 历史位置和当前股息率,不可仅依赖安全买入价
- **安全边际的"负值"需要分级解读**:-100%(PE 约 28)与 -230%(PE 约 46)含义不同。负值幅度较小时(-50% 至 -100%),需配合 PE 历史分位数综合判断,避免在熊市恐慌中误判"高估"而错过机会
- **顶级消费品牌享有结构性估值溢价**:ROE 持续 >25%、品牌护城河极深、现金流优异的公司,市场长期给予 PE 25-35 倍的估值溢价是合理的,不应简单以模型安全价判断"高估"