A股/港股八段式估值分析框架
提炼自皖天然气、渤海轮渡、武进不锈三份深度研报的统一分析框架,已在特变电工(600089)、顺丰控股(002352)两份完整报告中验证。框架核心特色:八段式结构 → 三年业绩预测 → 四法加权估值 → 悲观/中性/乐观三档结论,最终交付 Word 深度报告 + Excel 过程数据。
零、常驻规则档案(强制约束,优先级最高)
本 skill 的每次估值任务必须遵守《投研 AI 常驻规则档案 · 种子版 v2.1》(35条,P0底线×12),全文见 references/rules_archive.md,任务开始时必读。 当档案条款与本 SKILL.md 其他内容冲突时,以档案为准。核心约束速览:
P0 底线(命中即该章节作废回源重交):
- D1 数据纯净:只认年报/公告原文、持牌终端、官方API;UGC与AI生成内容仅作线索,必须回一手源核实
- D2 双源验证:归母净利/营业总收入/经营现金流/总资产/股东权益五科目必须2个独立源交叉核对(共享上游不算独立);单源须标「单源未核对」+偏差敏感性提示
- D3 快照实取:现价、估值所用价格等判据数字必须交付当日实取或明标推算口径;臆造数字+伪装来源=整份作废
- D4 空返回≠不存在:接口空只能记「未检出」,换表述→换源→查公告原文三轮后才可下「未查到」结论
- D5 0值分类:每个0区分真零/假零(null填0),假零回源或标「缺」
- A2 结构一致性:多源不一致以一手公告为终裁;多源一致≠正确(可能共享上游)
- A5 计算纪律:所有派生计算(同比/比率/估值倍数)必须脚本或计算器完成并保留算式,禁止心算
- V2 交付自检闸门:交付前五问逐条显式回答(来源标注/0值分类/快照当日/缺口标注/自洽无残留)
- C1 不代客决策:给明确多空倾向但禁止可执行交易指令;C2 信息合规:政策/准则引用须核官方文号+原文措辞
逐步骤绑定(执行检查点):
| 框架步骤 | 强制适用的档案条款 |
|---|---|
| 第1步 数据获取 | D1数据纯净、D2双源验证、D3快照实取、D4空返回三轮、D5零值分类、D6量级自检、A6预置标尺(取数前先写5-8个指标预期区间) |
| 第2-4步 八段式分析 | A1时基口径、A2结构一致性、A3同业对标、A4成就数据校准、L1个例≠趋势、L2因果≠相关、L5多因分解 |
| 第5步 预测与估值 | A5计算纪律(脚本算)、A6超区间停顿回查、L3推理链完整、L4禁循环论证 |
| 第6步 投资结论 | L6中立≠骑墙(明确倾向禁观望)、V1结论先行(风险量化四要素)、C1不代客决策 |
| 第7步 交付物 | V2自检闸门(五问必答)、V3自洽无残留、V4盲区交代(末尾必有「本文未覆盖/数据缺口」)、C4免责声明+数据截止日、V5指令拆解、V6长任务状态外置 |
与现有交叉验证协议的关系:D2 的独立性要求比 mcp_data_sources.md 更严——TDX 与 Wind 若同出自交易所同一份披露文件,严格来说共享上游,故承重数字(五核心科目)最终仍须以年报 PDF 原文为终裁(A2),这与第1步"年报PDF为最终权威"的优先级一致。
一、触发场景
用户要求对某只 A股/港股上市公司做以下任意事项时使用本技能:
- "生成 XX 公司的深度分析报告 / 估值报告"
- "基于该分析框架分析 XX 股票"
- "帮我估值 XX,给出悲观/中性/乐观三档"
二、总流程(七步)
第1步:数据获取(年报PDF → TDX/Wind MCP 双源 → 网络检索)
数据源优先级:本地年报PDF(财务科目最终权威)> 通达信MCP(tdx-connector,结构化快取:6年报表/行情/估值/一致预期/分红)> Wind MCP(wind-finance,交叉验证+长周期财务)> 网络检索(仅定性信息)。
- 检查用户指定的输出文件夹(通常是
F:\投资\<公司名>\)是否已有年报 PDF 原文。有则优先用 pypdf 从原文提取精确数据(方法见scripts/extract_annual_report.py,关键词:合并资产负债表/合并利润表/合并现金流量表/购建固定资产/主要会计数据;年报三大报表通常在"财务报告"章节,约第130-150页附近)。 - 结构化数据走 MCP 双源获取(两个连接器都须 connected):TDX 侧用
tdx_lookup_stock(中文名先转代码)→tdx_api_data(三大报表/主营构成/分红/估值历史/一致预期,财务接口回溯6年)+tdx_quotes(现价/市值/PE/PB/ROE,加 hasCwInfo="1")+tdx_kline period="4"(日K算PE分位);Wind 侧用get_stock_fundamentals(补十年财务)、get_stock_kline、get_stock_price_indicators、get_financial_data(一致预期)。完整工具映射表和调用示例见references/mcp_data_sources.md,必读。 - 交叉验证(强制):对营收/归母净利/扣非/毛利率/ROE/负债率/经营净现/资本开支/分红/总股本/现价/总市值逐项双源比对。比对前先归一化单位(亿↔万)、口径(归母vs含少数、扣非前后)、时点(同一报告期和基准日)。偏差<1%通过;1%-5%归因口径差异后采用权威源;>5%以年报PDF为准(无PDF则以Wind为准)并在报告附差异说明。Excel 过程数据必须含"数据来源与校验" sheet(指标/报告期/TDX值/Wind值/偏差%/采用值/来源/差异原因)。任一源断开则降级单源并注明"未交叉验证";MCP 返回空数据时如实标注"暂无",禁止估算填充。
- 无 PDF 且 MCP 均不可用时才用网络检索补齐,需要的最小数据集:
- 近10年(至少近5年)营收、归母净利润、扣非净利润
- 毛利率、净利率、加权ROE、资产负债率、流动比率、总资产/应收/存货周转率
- 资产负债表关键科目(货币资金、应收预付、存货、固定类、商誉、有息负债、应付类、合同负债、归母权益、少数股东权益)
- 利润表全科目(用于百分比利润表)、经营净现金流、资本开支(购建固定资产等支付的现金)、历年分红
- 业务分部收入/盈利、当前股价/总市值/总股本(注明基准日)、最新机构预测(2-3家)
第2-4步:八段式分析(报告主体结构)
- 公司概况:行业地位、核心壁垒、关键历史事件(并购/上市/募资)
- 净利润、营收增速:十年轨迹分阶段解读,识别异常年份及其成因
- 净利率、毛利率:台阶式变化归因(价格战/并表摊薄/结构变化),ROE走势
- 营运效率、负债率、周转率、流动比率:逐年表格+去杠杆/加杠杆趋势
- 简化资产负债表(最近年末):资产端六类(类现金/应收预付/存货/股权类/固定类/商誉+其他)× 负债权益端(有息负债/应付类/合同负债/归母权益/少数股东权益),附占比和解读
- 百分比利润表(最近年度,占营收%):全科目,成本费用率是重点
- 现金流分析:近5年/近8年/最近单年三个口径的年均归母净利、年均经营净现、净现比、年均资本开支、年均自由现金流
- 业务信息:分部收入/盈利表(招股书/年报/研报三来源交叉验证)+ 近期经营事件
- 估值(见第5步详细方法)
第5步:三年业绩预测 → 四法加权估值(本框架灵魂,不可省略预测直接估值)
- 8.2 三年业绩预测(当年起三年,如2026E-2028E):逐年预测营收/归母净利/净利率/可持续FCF/分红率/分红额;再给三档情景(悲观/中性/乐观)的第三年(N+3)净利、FCF、分红额。预测锚定2-3家机构一致预期附近,列出核心假设与偏差来源。
- 8.3 四法综合估值(以 N+3 年业绩为统一输入):
| 方法 | 权重 | 测算逻辑 | 关键参数 |
|---|---|---|---|
| ① FCF正常化 | 0.2 | N+3年可持续FCF × 15-20倍 | 资本开支低于折旧不可持续,需下调至可持续口径 |
| ② 分红估值 | 0.3 | N+3年分红额 × 22-28倍 | 对应要求股息率4.5%/4%/3.6% |
| ③ PE分位 | 0.1 | N+3年净利 × 13-19倍 | 近3年实际区间延伸,忌用含泡沫期的高分位 |
| ④ 席勒法 | 0.4 | 滚动十年均净利(含预测) × 16-22倍 | 约束乐观倾向的保守锚 |
加权得 N+3年目标市值,再按 10% 年化要求回报折现3年得当前合理市值;同时给出隐含3年年化回报(现市值 vs 目标市值,不折现口径)。
3. 8.4 敏感性分析:三张矩阵表(席勒均净利×PE、FCF×倍数、N+3净利×PE),目标市值口径并注明折算方法。
4. 8.1 量价税本费找主要矛盾(放在预测之前):量的增速中枢、价的趋势、税率、成本、费用率五个维度各一句话,归纳当前主要矛盾。
第6步:投资结论(第9章)
三档估值数字 + 较现价空间 + 多头逻辑4条 + 空头风险5条 + 操作参考(安全边际锚、兑现条件、跟踪指标)。
第7步:生成交付物
用 scripts/ 下三个模板脚本改造(含完整可运行的样式/表格/图表代码,替换数据块即可):
- tpl_charts.py → 6张图(营收净利、归母净利、毛利率净利率ROE、现金流柱状、业务分部、分红)
- tpl_xlsx.py → Excel 过程数据(十年核心数据/简化资产负债表/百分比利润表/业务分部/估值测算/敏感性 多sheet)
- tpl_docx.py → Word 深度报告(八段式+封面+图表嵌入+结论)
图表配色遵循 A股惯例:涨/增长用红色,跌/下滑用绿色。
交付前必须通过规则档案 V2 闸门(五问逐条显式回答:①关键数字来源标注②0值分类③快照数字当日取数④数据缺口标注⑤自洽无残留),并满足:报告末尾含「本文未覆盖/数据缺口」段落(V4)、「不构成投资建议」+数据截止日(C4)、无「待验证/待确认」占位残留(V3)。图表中 matplotlib 生成的 PNG 嵌入 Word 属内嵌资源,天然满足 V3b 可移植要求;交付物内禁止出现本地绝对路径。
三、方法论要点与教训(详见 references/framework.md)
- FCF为负或资本开支长期高于折旧(如特变电工):席勒FCF法失效,改用十年均归母净利口径,且目标倍数下调
- 盈利处上行通道(当前利润显著低于趋势值):席勒法用滚动十年均净利(含预测年份),避免静态口径过度保守
- 少数股东权益大的公司(如新特能源66.5%控股):区分归母/含少数口径,检查亏损年少数股东损益的增厚效应
- 含可转债的公司:最后一步考虑转股稀释
- 机构预测泡沫期(如顺丰2021-2022年60-70倍PE):PE法忌机械套用5年70分位
- 敏感性表、机构目标价对照、免责声明必附
四、环境与技术备忘
- MCP 连接器:通达信(tdx-connector)与 Wind(wind-finance)须处于 connected 状态才能调用;调用前检查连接器状态,断开则按
references/mcp_data_sources.md第四节降级。TDX 的code只接受纯数字(600089),中文名先tdx_lookup_stock转换;港股 setcode="31"。TDX 财务接口仅回溯6年,十年数据靠年报PDF或Wind补齐。 - Python:
C:\Users\Administrator\.workbuddy\binaries\python\envs\default\Scripts\python.exe(pypdf/matplotlib/openpyxl/python-docx 已装齐) - pip 安装需清华镜像
https://pypi.tuna.tsinghua.edu.cn/simple - matplotlib 需设
MPLCONFIGDIR环境变量;中文字体用 SimHei/Microsoft YaHei - 输出到 F 盘等用户指定路径:Excel 可直接写;docx 生成或 cp 复制需沙箱提权(dangerouslyDisableSandbox)
- 目标 docx/xlsx 被用户在 Office 中打开时会锁定(~$ 前缀文件),覆盖报 "Device or resource busy",提示用户关闭后重试
- 报告日期、股价基准日、数据来源必须注明;估算值必须标注"估算"
Resources
scripts/extract_annual_report.py— pypdf 按关键词提取年报PDF指定页文本scripts/tpl_charts.py— 图表生成模板(来自顺丰控股实战版)scripts/tpl_xlsx.py— Excel 过程数据生成模板scripts/tpl_docx.py— Word 报告生成模板(八段式+三年预测+四法估值结构)references/framework.md— 完整方法论细节 + 特变电工/顺丰控股两个实战案例的关键参数与教训references/mcp_data_sources.md— 通达信/Wind MCP 工具映射表、调用示例与交叉验证协议(第1步必读)references/rules_archive.md— 投研 AI 常驻规则档案 v2.1 全文(35条强制约束,任务开始必读,见第零节)