| name | stock-value-analyzer |
| description | 基于邱国鹭《投资中最简单的事》方法论的股票价值分析器(v2.0 双层架构)。通过"三好原则"(好行业、好公司、好价格)系统评估一只股票是否值得投资。v2.0 在原定性框架之上注入一套可量化、可复现的硬模型层——反向 DCF 反解市场隐含增速、情景概率加权估值、EPV 盈利能力价值、分行业估值路由、杜邦三/五因子分解、ROIC vs WACC、Piotroski F-Score、Beneish M-Score、Altman Z-Score、盈余质量与时间序列趋势分析——配套取数脚本自动计算,使"好公司、好价格"从感性判断升级为客观证据。所有分析强制前置 API 优先取数(yfinance + AkShare 双引擎)+ 多信源数据校验 + 强制时间序列提取,并在初稿完成后执行交卷前自检,未通过不得发布。 |
股票价值分析器(Stock Value Analyzer)v2.0
v2.0 更新(2026-06-22)— 双层判断架构:量化硬模型 + 邱国鹭定性框架
v1.x 把方法论建立在定性评分上,长于框架、弱于客观证据。v2.0 在不破坏原"三好原则"框架的前提下,叠加一层可量化、可复现的硬模型,让"好公司、好价格"有客观锚点:
- 估值层注入硬模型:反向 DCF(反解市场隐含增速)、情景概率加权估值、EPV 盈利能力价值、分行业估值路由(金融/周期/成长/稳定/重资产各用各的尺子)。
- 财务质量层注入硬模型:杜邦三/五因子分解、ROIC vs WACC、Piotroski F-Score(9 分制)、盈余质量(现金含量),并把 Beneish M-Score(盈余操纵)+ Altman Z-Score(破产风险) 接入一票否决。
- 强制时间序列:5-10 年 ROE 一致性、毛利率/营收/FCF 趋势、CAGR、周期股归一化盈利——避免只看一年快照。
- 行业框架结构化:波特五力、行业生命周期、产业链议价、TAM/SAM/SOM,叠加管理层资本配置能力评估。
- 取数脚本自动算模型:
scripts/fetch_stock_data.py 调用 scripts/value_models.py,在原九大字段组之外新增 time_series 与 models 两组,所有量化指标由脚本计算、报告引用,杜绝口算误差。
- 数据校验红线做减法:v1.x 臃肿的校验细则下沉到
references/data-verification-protocol.md 与 references/api-data-source-protocol.md,主文件只保留"挂载点 + 一句话铁律 + 链接",回归方法论主体。
核心理念:用合理的价格,买好行业里的好公司,然后拿得住。v2.0 的信条——定性看方向,定量定边界,两层都过才算数。
概览
本 Skill 基于邱国鹭《投资中最简单的事》的投资方法论,对单只股票进行系统化的价值投资评估,输出"能不能买、该不该买、什么价位买"的结构化结论。
做的事:
- 从行业、公司、价格三个维度做双层评估(量化硬模型 + 定性框架)
- 反向 DCF 反解市场隐含增速,判断当前价格"打的什么算盘"
- 用 F-Score / M-Score / Z-Score 给财务质量打分、识别造假与破产风险
- 用杜邦分解区分"经营驱动 ROE"还是"杠杆堆出来的 ROE"
- 看 5-10 年时间序列趋势,而非单年快照
- 识别护城河、定价权、估值陷阱,逆向思维检查市场情绪
不做的事:
- 不预测短期股价涨跌、不做技术面分析(K线/均线)
- 不推荐具体买卖时点、不替代用户的独立判断
- 不依赖任何个人持仓/组合数据——本 Skill 为通用、可独立发布的分析框架
方法论框架
核心公式
投资价值 = 好行业 × 好公司 × 好价格
三个维度缺一不可。任一维度得分过低,整体结论就是"不适合投资"。
双层判断架构(v2.0 核心)
每个维度都按"量化层 → 定性层"两层评估,缺一不可:
┌─────────────────────────────────────────────┐
│ 量化层(可复现硬模型,由脚本计算) │
│ 反向DCF / 情景估值 / EPV / 杜邦 / ROIC │
│ F-Score / M-Score / Z-Score / 盈余质量 │
│ 时间序列趋势 / CAGR / 归一化盈利 │
└──────────────────┬──────────────────────────┘
│ 提供客观证据与边界
▼
┌─────────────────────────────────────────────┐
│ 定性层(邱国鹭三好框架,人类判断) │
│ 行业格局 / 护城河 / 定价权 / 管理层 / 逆向 │
│ 波特五力 / 生命周期 / 产业链 / 资本配置 │
└─────────────────────────────────────────────┘
- 量化层定边界:给出客观区间(如反向 DCF 隐含增速 = 12%),回答"市场已经定价了什么"。
- 定性层定方向:判断量化结果是否合理(如"12% 增速在成熟期消费股上明显过度乐观")。
- 两层冲突时:以更保守的一方为准,并在报告中显式说明分歧来源。
时间维度权重
| 维度 | 最重要的因素 | 说明 |
|---|
| 短期(<1年) | 时机/情绪 | 靠运气,不可靠,本器不预测 |
| 中期(1-3年) | 估值 | 买贵了,再好的公司也要还债 |
| 长期(3年+) | 品质 | 只有好公司能穿越周期 |
→ 本分析器聚焦中期和长期维度。
🔴 前置环节:取数与校验(强制,不可跳过)
v2.0 将冗长的校验细则下沉到参考手册,主文件只保留铁律与挂载点。每一条铁律违反即视为校验未通过,报告不得发布。
前置 1:API 优先取数(铁律 + 自动算模型)
铁律:能用 API 绝不用网页。yfinance + AkShare 双引擎是第一信源,网页抓取仅作兜底。
每份报告第一动作必须执行取数脚本:
python .codebuddy/skills/stock-value-analyzer/scripts/fetch_stock_data.py --symbol 0700.HK --market HK
python .codebuddy/skills/stock-value-analyzer/scripts/fetch_stock_data.py --symbol 600519 --market A
python .codebuddy/skills/stock-value-analyzer/scripts/fetch_stock_data.py --symbol AAPL --market US
输出 JSON 字段组(v2.0 在原九组之外新增两组):
| 字段组 | 内容 |
|---|
| price / valuation / profitability / financials / dividend / growth / shares / company / analyst | 原九大字段组(v1.6 契约不变) |
time_series(v2.0 新增) | 5-10 年营收/净利/毛利率/ROE/FCF/股本序列(index 0 = 最近期) |
models(v2.0 新增) | 脚本自动计算的:杜邦分解、ROIC、F-Score、M-Score、Z-Score、盈余质量、反向 DCF、CAGR 一致性 |
- 跨市场标的(AH/ADR)必须分别独立调用,禁止汇率换算。
- 取数后必检查
meta.engines_used / errors;两引擎都失败时报告首页 ⚠️ 标注"数据降级"。
- A 股限制:
stock_financial_abstract 为摘要级数据,缺三大报表明细,故 A 股 models 中 M-Score/Z-Score/反向 DCF 多返回 applicable=False,诚实标注,禁止用经营现金流冒充 FCF。
详见 → references/api-data-source-protocol.md(双引擎分工、字段映射、降级策略)
前置 2:多信源数据校验(铁律)
铁律:一切分析建立在可信数据之上。单一信源 = 错误风险。
三条不可逾越的红线(完整操作手册见参考文件):
- 价格类数据 ≥ 3 个独立权威源交叉验证(1 个 API 源 + 1-2 个网页源即满足);每个价格必标
[数据类型 / 取数时间戳 / 币种]。
- 数据类型混淆是头号红线:严禁把研报目标价 / 52 周区间 / 分析师一致预期 / DCF 估值当作"现价"。(血泪教训:海尔 06690 把研报目标价 HK$31.30 误当现价,实际仅 20.86,结论全反。)
- 跨市场标的分别独立取数,AH 溢价方向必须从原始价格重算。
详见 → references/data-verification-protocol.md(9 类字段校验流程、口径对齐、冲突处理、Red Flags、校验记录表模板)
前置 3:信源等级强制标注(铁律)
铁律:"列出信源" ≠ "标注等级"。不分级的信源列表等于没有校验。
- 每个定量数据必须在行内/相邻列标注信源等级,且至少 1 个 🟢🟢 二级权威以上。
- "二级媒体互相抄录"视为单源,降级 🟡;报告末尾 K.4 必须列出所有 🟡/🔴 弱信源。
| 🟢🟢🟢🟢 Tier 0 | 🟢🟢🟢 Tier 1 | 🟢🟢 Tier 2 | 🟢 Tier 3 | 🟡 Tier 4 | 🔴 Tier 5 |
|---|
| API 直取 | 一级官方 | 二级权威 | 三级参考 | 单源/弱源 | 传闻 |
前置 4:近 30 天重大事件扫描(铁律)
铁律:财报反映过去,新闻预示未来。只看历史数字做估值,等于开车只看后视镜。
必扫 5 类(含竞争对手动作):① 监管/政策 ② 管理层变动 ③ 重大战略 ④ 重大诉讼/安全 ⑤ 重大合作/并购/融资。🔴 级事件须在报告首页单列专栏并显式调分。
前置 5:强制提取时间序列(v2.0 新增铁律)
铁律:禁止只用单年快照评估"好公司/好价格"。 取数脚本已自动提取 time_series,报告公司模块与估值模块必须引用至少 5 年序列趋势(ROE 一致性、毛利率走向、营收/FCF CAGR、股本变化)。
详见 → references/time-series-analysis.md
五大分析模块(v2.0 双层评分)
每个模块的"量化层"由脚本 models/time_series 字段提供证据,"定性层"沿用邱国鹭框架。模块得分 = 定性框架打分,量化层用于校准、加减分、触发一票否决。
模块一:行业分析(权重 30%)
定性层(评分主体,四维各 0-25,满分 100):
| 维度 | 满分 | 关键问题 |
|---|
| 行业格局 | 25 | 几个寡头分天下,还是一堆人打成狗? |
| 定价权 ⭐最关键 | 25 | 能不能涨价、涨了客户还买不买? |
| 需求稳定性 | 25 | 这东西 10 年后还有人买吗? |
| 进入壁垒 | 25 | 别人想进来抢饭碗,难不难? |
定性层增强框架(v2.0):用波特五力逐力点评并指出决定性力量;判定行业生命周期阶段;分析产业链议价地位("收税还是交税");估算 TAM/SAM/SOM 并用反向 DCF 隐含份额反向校验(成长股必做)。
| 评级 | 分数 | 含义 |
|---|
| A/B/C/D | 80-100 / 60-79 / 40-59 / 0-39 | 优质 / 不错 / 一般 / 慎入 |
详见 → references/industry-capital-framework.md、references/three-good-principles.md
模块二:公司分析(权重 35%)
v2.0 重构为「量化财务质量评分卡 + 定性护城河/管理层」双层。
2.1 定性层:护城河(0-40 分)
五种护城河可叠加(品牌≤10 / 成本≤8 / 转换成本≤8 / 网络效应≤8 / 牌照专利≤6),并评估护城河是在加深(+5)还是被侵蚀(-5~-15)。详见 references/moat-analysis-guide.md。
2.2 量化层:财务质量硬模型(脚本计算,0-30 分评分卡)
| 模型 | 字段(models.*) | 含义 | 评分指引 |
|---|
| 杜邦分解 | dupont | ROE = 净利率 × 周转率 × 权益乘数 | 经营驱动 ROE 加分;高杠杆堆出的 ROE 警惕(结合负债率) |
| ROIC vs WACC | roic | 是否真正创造价值 | ROIC 长期 > WACC → 价值创造(+);< WACC 仍扩张 → 毁灭价值(−) |
| Piotroski F-Score | piotroski_f(0-9) | 财务健康九项打分 | ≥7 优秀 / 4-6 中性 / ≤3 差 |
| 盈余质量 | earnings_quality | 净利的现金含量 / 应计比 | 现金含量低、应计比高 → 利润质量差,扣分 |
2.3 定性层:管理层质量 + 资本配置(0-20 分)
诚信(0-5)/ 能力(0-5)/ 股东回报(0-5)/ 战略聚焦(0-5),v2.0 并入资本配置评分卡:再投资回报(ROIC vs WACC)、并购理性、分红回购理性、留存收益转化(5 年市值增量 vs 累计留存),以及股权激励稀释检查(股本趋势)。详见 references/industry-capital-framework.md 第二部分。
2.4 时间序列校准(v2.0 必做)
引用 time_series:ROE 5-10 年是否一致(>15% 且波动小 = 真好公司);毛利率趋势;营收/净利 CAGR;FCF 是否持续为正。趋势恶化即使单年靓丽也要扣分。
| 公司评级 | A/B/C/D:80-100 / 60-79 / 40-59 / 0-39 |
|---|
量化模型口径详见 → references/financial-quality-models.md
模块三:价格/估值分析(权重 25%)
v2.0 重构为「量化估值模型 + 定性 PE 陷阱判断」双层。便宜是硬道理,但便宜要用模型证明。
3.1 量化层:估值硬模型(脚本 + 手册)
| 模型 | 用途 | 来源 |
|---|
| 反向 DCF | 二分法反解"当前价格隐含的永续增速",再判断该增速是否现实 | models.reverse_dcf(HK/US;A 股因缺 FCF 多 not applicable) |
| 情景概率加权估值 | 乐观/中性/悲观三情景 × 概率 = 期望内在价值 | references/valuation-models.md |
| EPV 盈利能力价值 | 不依赖增长假设的保守底线估值 | 同上 |
| 分行业估值路由 | 金融用 PB-ROE/DDM;周期用归一化盈利;成长用反向 DCF/PEG/Rule of 40;稳定用 DCF | 同上 |
反向 DCF 解读铁律:先看脚本反解出的隐含增速,再用定性层判断"这个增速公司未来 10 年做得到吗"——做得到则不贵,做不到则当前价格透支未来。
3.2 定性层:PE 是结果不是原因(0-25 分)
先问"为啥这个公司 PE 低/高?"——PE<10 基本面好可能错杀,基本面差则是估值陷阱。估值陷阱清单(任一命中即扣分并触发 M-Score 复核):营收连续下滑 / 毛利率持续走低 / 行业被颠覆 / 靠非经常损益撑利润 / 应收账款暴增。详见 references/valuation-traps.md。
3.3 辅助估值 + 历史分位 + 安全边际(各 0-25)
PB/PS/PEG 按行业选用;历史估值分位(20% 分位以下 = 低估);安全边际 = 内在价值(取情景加权 / EPV 的保守值)与现价差距,>40% 给满分。
价格总分 = 四项之和(满分 100)。
模块四:逆向投资检查(权重 5%,有加减成)
市场情绪极度恐慌且三好 OK → 逆向加分 +10%;极度狂热即使三好不错也远离。逆向三重验证(行业还好吗/公司还好吗/价格够便宜吗)三个"是"才大胆买。详见 references/contrarian-checklist.md。
模块五:定价权专项(权重 5%,有重大加减分)
核心问题:能不能每年默默提价、客户还没脾气?强定价权 +10% / 中等 +5% / 弱 0 / 无 -10%。来源:品牌忠诚 / 产品差异化 / 转换成本 / 供给受限 / 刚需。与波特五力的供应商/买方议价联动分析。
综合评分体系
加权总分
综合得分 = 行业分×30% + 公司分×35% + 价格分×25% + 逆向调整 + 定价权调整
公司分内部:护城河 40 + 财务质量量化评分卡 30 + 管理层/资本配置 20,并由时间序列趋势做 ±校准(上限 ±10)。
投资结论矩阵
| 综合得分 | 结论 | 建议 |
|---|
| 80-100 | ⭐强烈推荐 | 三好齐备,可重仓 |
| 70-79 | 🟢推荐 | 标准仓位买入 |
| 60-69 | 🟡可关注 | 小仓位或等更好价格 |
| 50-59 | 🟠观望 | 短板明显,跟踪暂不建仓 |
| 40-49 | 🔴不推荐 | 问题较多 |
| <40 | ❌远离 | 不符合任何价值投资条件 |
一票否决项(v2.0 新增量化模型否决)
以下任一触发,无论总分多高,结论直接降为"不推荐":
- 🚫 行业评分 < 30(夕阳行业)
- 🚫 公司护城河评分 < 10(毫无竞争优势)
- 🚫 财务造假/重大违规历史;管理层诚信评分 = 0
- 🚫 连续 3 年经营现金流为负;有息负债率 > 80% 且无合理解释
- 🚫 Beneish M-Score 触发盈余操纵警示(v2.0)— 前提:
models.beneish_m.applicable == True(金融股/数据不足时不适用,须先确认,防止误杀)
- 🚫 Altman Z-Score 落入破产高危区(v2.0)— 前提:
models.altman_z.applicable == True(金融股不适用)
量化否决的护栏:M-Score / Z-Score 仅在脚本明确返回 applicable=True 时方可作为否决依据。金融股、缺三大报表明细的 A 股标的一律 applicable=False,此时改用定性判断,不得机械否决。
🔴 交卷前自检(强制后置,不可跳过)
铁律:报告写完 ≠ 可以交卷。一切结论必须在"打印出来"之后再被自己质疑一次。
三关总闸,全过才能发布:
- 关键数据复验:对所有进入评分的关键数字(现价/市值/PE/净利/股息率/AH 溢价/建仓区间/一票否决原始数据)换源重取一次,信源不得与前置阶段完全重叠。
- 核心结论反验证(反向 7 问):① 结论是否依赖单一数据(错 10% 会反转吗)② 评分与文字是否一致 ③ 一票否决项逐条真未触发 ④ 近 30 天事件真已纳入 ⑤ 跨市场逻辑自洽 ⑥ 算术回验(所有 A+B=C / 百分比逐条二次独立计算)⑦ 信源等级回验(弱信源未进评分)。
- 量化层一致性复核(v2.0 新增):报告引用的反向 DCF 隐含增速、F/M/Z-Score、杜邦分解是否与脚本
models 输出一致?是否存在"脚本说 not applicable 却仍下了量化结论"的越界?
- 报告末尾显式写:"本报告已通过交卷前自检(数据复验 + 反向 7 问 + 量化层一致性),可以交付。"
未通过 → 报告首行标红"⚠️ 草稿未通过自检,不得作为决策依据"。详见 → references/data-verification-protocol.md
工作流
用户输入(股票名称/代码)
│
├── 前置 1:API 优先取数(运行 fetch_stock_data.py,自动算 models/time_series)🔴
├── 前置 2:多信源数据校验(价格 3 源 / 防类型混淆 / 跨市场独立)🔴
├── 前置 3:信源等级强制标注(六级,弱信源 K.4 披露)🔴
├── 前置 4:近 30 天重大事件扫描(5 类 + 竞品)🔴
├── 前置 5:强制提取时间序列(5-10 年趋势)🔴
│
├── 模块一 行业分析:四维定性 + 波特五力/生命周期/产业链/TAM
├── 模块二 公司分析:护城河(定性) + F/ROIC/杜邦/盈余质量(量化) + 管理层/资本配置 + 时序校准
├── 模块三 估值分析:反向DCF/情景/EPV/分行业路由(量化) + PE陷阱(定性) + 安全边际
├── 模块四 逆向投资:情绪 + 三重验证
├── 模块五 定价权:提价测试 + 来源分析
│
├── 综合评分:加权 + 量化校准 + 一票否决(含 M/Z-Score,须 applicable=True)
├── 报告初稿(标记"初稿")
│
└── 交卷前自检:数据复验 + 反向 7 问 + 量化层一致性 → 总闸通过才交付 🔴
报告输出格式
完整报告结构与模板见 templates/analysis-report.md,核心章节:
- 一、分析概要(标的/日期/现价含信源等级/综合评分/投资结论/各项自检状态)
- 一·补 近 30 天重大事件(仅 🔴 级)
- 二、行业分析(四维 + 五力/生命周期/产业链/TAM)
- 三、公司分析(护城河 + F/M/Z 评分卡 + 杜邦表 + 资本配置 + 时序趋势)
- 四、估值分析(反向 DCF 隐含增速 + 情景概率加权表 + EPV + PE 陷阱 + 安全边际)
- 五、逆向投资 & 定价权
- 六、投资结论(含买/不买条件、最大风险)
- 七、风险提示
- 八、交卷前自检摘要
- K、完整信源索引(K.1 一级 / K.2-3 二三级 / K.4 弱信源清单)
资源目录
scripts/
fetch_stock_data.py — 一键取数(yfinance + AkShare 双引擎),输出标准 JSON(含 v2.0 新增 time_series / models)
value_models.py — v2.0 新增量化模型库:杜邦/ROIC/F-Score/M-Score/Z-Score/盈余质量/反向 DCF/CAGR 一致性,被取数脚本调用
- 依赖:
pip install yfinance akshare pandas
references/
api-data-source-protocol.md — API 优先取数协议(双引擎完整说明 + v2.0 新字段)
data-verification-protocol.md — 多信源数据校验完整手册(承接主文件下沉的全部红线细则)
three-good-principles.md — 三好原则评估标准与案例(含量化层配合说明)
moat-analysis-guide.md — 护城河五种类型深度分析指南
valuation-traps.md — 估值陷阱识别手册(打通 M-Score)
contrarian-checklist.md — 逆向投资检查清单
valuation-models.md — v2.0:反向 DCF / 情景估值 / EPV / 分行业估值路由
financial-quality-models.md — v2.0:杜邦 / ROIC / F-Score / M-Score / Z-Score / 盈余质量
time-series-analysis.md — v2.0:时间序列趋势、ROE 一致性、周期股归一化
industry-capital-framework.md — v2.0:波特五力 / 生命周期 / 产业链 / TAM + 资本配置能力
templates/
analysis-report.md — v2.0 分析报告模板
核心原则提醒
- 三好缺一不可 — 好行业、好公司、好价格
- 定性看方向,定量定边界 — v2.0 信条,两层都过才算数
- 便宜是硬道理,但便宜要用模型证明 — 反向 DCF / 情景 / EPV
- PE 是结果不是原因 — 先看基本面,再看 PE,配合 F/M/Z-Score
- ROE 要看是经营赚来的还是杠杆堆的 — 杜邦分解
- 定价权是最关键指标 — 能不能默默提价
- 看 5 年趋势,不看 1 年快照 — 时间序列一致性
- 会赚钱更要会花钱 — 资本配置能力决定长期复利
- 认清能力圈,看不懂就别碰
- 知易行难 — 框架给你了,执行靠自己
版本记录
- v2.0(2026-06-22) — 🟢 双层判断架构:量化硬模型 + 定性框架
- 新增量化层:反向 DCF、情景概率加权估值、EPV、分行业估值路由、杜邦分解、ROIC vs WACC、Piotroski F-Score、Beneish M-Score、Altman Z-Score、盈余质量、时间序列趋势
- 新增脚本
scripts/value_models.py 量化模型库;fetch_stock_data.py 输出新增 time_series / models 字段组(原九组契约不变,向后兼容)
- 新增 4 份参考手册:
valuation-models.md / financial-quality-models.md / time-series-analysis.md / industry-capital-framework.md
- 五大模块升级为"量化层 + 定性层"双层评分;公司模块重构为护城河 40 + 财务质量评分卡 30 + 管理层/资本配置 20 + 时序校准
- 一票否决新增 M-Score / Z-Score 量化否决(须
applicable=True 护栏,防误杀金融股)
- 强制提取 5-10 年时间序列;行业分析注入波特五力/生命周期/产业链/TAM;管理层注入资本配置能力评估
- 数据校验红线做减法:v1.x 冗长细则下沉到
data-verification-protocol.md 与 api-data-source-protocol.md,主文件仅保留"挂载点 + 一句话铁律 + 链接",篇幅回归方法论主体
- 移除个人持仓/组合联动内容,成为通用、可独立公开发布的分析框架
- v1.6(2026-05-05) — API 优先取数双引擎(yfinance + AkShare);新增 Tier 0 信源;
fetch_stock_data.py 一键取数脚本与 api-data-source-protocol.md
- v1.5(2026-05-05) — 信源等级强制标注体系(六级)+ 算术强制回验;K 章节完整信源索引;反向 7 问
- v1.4(2026-04-28) — Step 8 交卷前自检(数据复验 + 结论反验证 + 反事实压力测试)
- v1.3(2026-04-28) — 价格类数据 3 源硬线 + 数据类型混淆防护 + 跨市场分别取数
- v1.2(2026-04-27) — 近 30 天重大事件扫描强制前置
- v1.1(2026-04-26) — 多信源数据校验强制前置 +
data-verification-protocol.md
- v1.0 — 初始版本,建立三好原则评估框架