股票深度分析 Skill
核心原则(每次执行必须遵守)
- 证据原则:只有被证据直接支持的内容,才写成确定性陈述。证据不足、缺失、冲突或无法确认时,必须明确标注「⚠️ 证据不足,无法确认」,严禁伪造或推断性陈述。
- 出处原则:每段分析结束后,必须列出具体证据来源(数据工具名、研报全称+日期、年报章节名)。
- 终止条件:一旦财务筛查不通过,立即停止,输出筛查未通过原因,不进入下一步分析。
执行流程
第一步:数据获取
使用以下工具组合获取数据,参考 references/data_sources.md 中的详细命令:
| 数据类型 | 优先工具 | 备用工具 |
|---|---|---|
| 股票代码搜索 | westock-data search <公司名> |
neodata-financial-search |
| 实时行情/PE | westock-data quote <code> |
neodata-financial-search |
| 财务报表(4期) | westock-data finance <code> --num 4 |
— |
| 公司简况/行业 | westock-data profile <code> |
— |
| 股东结构 | westock-data shareholder <code> |
— |
| 分红历史 | westock-data dividend <code> |
— |
| PE分位数/ROE/负债率 | neodata-financial-search(自然语言查询) | — |
| 研报列表 | westock-data news <code> --type 1 --limit 10 |
— |
| 研报全文 | westock-data ncontent <report_id> |
— |
| 公告列表 | westock-data news <code> --type 0 --limit 30 |
— |
| 企业文化/使命 | WebFetch 公司官网 |
WebSearch |
| 员工评价/组织力 | WebFetch 职友集/看准网 |
WebSearch |
| 竞争壁垒/行业地位 | WebSearch + 研报 | — |
数据获取技巧:
- 同时并发多个 tool call(行情/财报/公司简况可并行)
- neodata token 过期时,先调用 connect_cloud_service 重新获取,再用 --save-token 参数保存
- 研报全文用 ncontent 获取后,截取前 3000-5000 字即可,避免上下文爆炸
第二步:基本筛查(满足行业 + 财务才进行下一步)
2.1 行业筛查(至少满足其中一个)
- 互联网 / AI / 机器人 / 医疗 / 娱乐 / 消费品 / 能源 / 制造业
2.2 财务筛查(满足任意 4 项即通过)
> 年均口径说明(ROE / ROIC):年均 = 取「最近 10 年度」逐年数据求算术平均;若上市/有数据年份不足 10 年,则按实际已有年份求平均(并在表格中注明实际年份数)。ROE、ROIC 均需取「年度」数据(非 TTM、非单季),逐年在 neodata 拉取后自行计算均值,不要直接套用 TTM 值。
| 条件 | 数据来源 |
|---|---|
| PE < 30 | westock-data quote |
| 年均 ROE > 15%(最近10年均值,不足10年按实际年份) | neodata(近10年 ROE 逐年数据,取均值) |
| 年均 ROIC > 15%(最近10年均值,不足10年按实际年份) | neodata(近10年 ROIC 逐年数据,取均值) |
| 负债率 < 50% | neodata(资产负债率) |
| 毛利润 > 40% | neodata(毛利率 TTM) |
| 净利润 > 10% | neodata(净利率 TTM) |
| PE 分位数 < 20% | neodata(PE 历史分位数) |
| 流动资产/流动负债 > 2 | neodata(流动比率) |
| (流动资产-存货)> 流动负债 | westock-data finance zcfz |
| 机构持有率 < 5% | westock-data shareholder |
| 自由现金流/经营现金流 > 50% | westock-data finance xjll |
| 历年分红额 > 集资额 | neodata(累计派现募资比 > 100%) |
筛查结果表格示例:
| 条件 | 数据 | 是否满足 |
|------|------|----------|
| PE < 30 | PE=63.04 | ❌ |
| 年均 ROE > 15% | 近10年均值=24.1%(2016-2025) | ✅ |
| 年均 ROIC > 15% | 近10年均值=21.8%(2016-2025) | ✅ |
...
| 满足项数 | 8/12 | ✅ 通过(≥4项)|
> 若当年数据缺失(如新上市仅 6 年),示例写作:年均 ROE > 15% | 近6年均值=19.3%(2020-2025)| ✅
第三步:深度分析(筛查通过后执行)
按以下顺序撰写,参考 references/analysis_framework.md 获取各章节的详细展开指引。
一、生意是什么?
- 业务板块拆分:基于最新财报,拆分业务板块及占比(收入/毛利/地区维度)
- 历史发展时间轴:从创立到现在,每个关键节点用生命周期趋势形式呈现;多个生意并行的公司,需展示各生意的起家、衍生、成熟、衰退节奏
- 飞轮闭环:梳理公司的核心正向循环机制(类似茅台:酒好喝→品牌→稀缺→场景扩散→进一步巩固需求)
二、增长潜力
- 对每块生意单独分析增长潜力
- 分析公司有无可能生长出新业务
- 所有数据必须有来源,严禁估造数字
三、商业模式
从以下 6 个维度分析公司如何设计业务系统和交易系统:
营销 / 渠道 / 技术 / 供应商 / 资本与金融 / 政府业务
四、竞争壁垒(满足 4 个以上才具备强壁垒)
- 是否具有垄断(重点看隐性垄断:用户自愿参与,不觉得被垄断)
- 是否具有定价权(对消费者涨价 / 决定价值链分配 / 创造新收费场景)
- 是否有非常强的分发渠道(低成本高效触达目标用户)
- 是否具有行为锁定(网络效应/上瘾性习惯性/品牌忠诚)
- 是否具备成本优势(同等服务,运营成本更低)
- 客户有没有意愿和能力替代你(联合起来/自研替代/决策理性度/迁移能力)
五、企业文化
按以下 7 个子项逐一核查,每个子项必须给出证据来源,并明确「符合 / 不符合 / 证据不足」判定。
-
企业使命是什么?
提炼公司官方使命陈述,注明出处(年报 / 官网 / 创始人公开信等)。 -
是否有利润之上的追求?(判定标准见下)
- 事实案例口径:碰到「能赚钱但不对」的事,看公司怎么选——选「不赚」的,才符合利润之上追求。
- 通过标准:- 至少要有 2 条符合「利润之上追求」的事实案例;仅有 1 条、或搜不到任何事实案例的,判定为不符合。
- 只要出现 1 条「为了赚钱而做了不对的事」的反面案例,直接判定为不符合。
- 需逐条列出案例 + 出处,并给出最终判定。
-
核心价值观长期是否没变?
梳理历年(年报 / 官网 / 招股书等)披露的核心价值观,逐版本对比,核实是否存在变动、弱化或名实不符。注明对比的年份与来源。 -
创始人/CEO 是否为第五级经理人 + CEO 由内部提拔?(判定项)
- 第五级经理人 = 谦逊的个性 与 坚定的意志 的矛盾结合体。
- 需给出具体言论论证:可引用创始人/CEO 本人采访表达,或他人(员工/媒体/同行)评价。
- 同时满足:① 属第五级经理人;② CEO 由内部提拔。任一不满足则判定为不符合。 -
组织机制:造钟而非报时
设问:假设 CEO 明天离职,公司能正常运转吗?
- 能 → 造钟型(制度/系统驱动,可持续)
- 不能 → 报时型(依赖个人英雄,不可持续)
需结合治理架构、接班人机制、制度沉淀给出判断与证据。 -
是否有明确的不做清单?
罗列公司公开声明/文化中明确的「不做什么」(如不做某某业务、不赚某种钱、不进入某市场),注明出处。 -
稳扎稳打,基于实证的创造力
标准:无论顺境逆境都保持稳定节奏;创新是「先射子弹、后射炮弹」的实证验证,而非豪赌。
需举出公司「小步验证→放大投入」与「逆风不慌、顺风不飘」的具体例证,或指出反面表现。
六、组织力
- 企业从上到下的目标是否达成一致?
- 人才梯度是否成熟?
- 组织信息传递的效率高不高?
- 内部的决策敏捷度怎么样?(是否扁平化)
- 内部的激励机制设计的怎么样?(是否让正在创造价值的人有收益)
- 企业自我进化的能力怎么样?(一线声音/内部纠错机制)
七、管理层再投资(资本配置能力)
核心问题:管理层在再投资回报率方面做得怎么样? 这是检验「优秀生意是否遇到优秀资本配置者」的关键一维。优秀的管理层,应能在合理回报(增量 ROIC ≥ 存量 ROIC)上持续配置留存收益,并通过并购 / 回购 / 分红的行为选择体现纪律与理性。本板块分「数据层面」与「行为层面」两部分,所有结论须附证据来源,证据不足项标注「⚠️ 证据不足」。
7.1 数据层面(量化再投资回报效率)
-
增量 ROIC(最近 5 年 / 最近 3 年 / 最近 1 年)
- 定义:增量 ROIC = ΔNOPAT / ΔIC(相邻期投入资本增量带来的税后净营业利润增量)。若无法取得 NOPAT,可用「Δ净利润 / Δ(有息负债 + 股东权益)」近似,并明确注明口径差异。
- 呈现:三档时间窗口(5Y / 3Y / 1Y)分别给出增量 ROIC,来源为 neodata 逐年拉取 NOPAT 与投入资本后自行计算差值。
- 判定:增量 ROIC ≥ 存量 ROIC(对应板块四的 ROIC 均值)→ 再投资持续创造价值;显著低于存量 → 边际回报递减,警惕规模不经济 / 资本囤积。 -
平均留存收益回报率 RORE(最近 5 年 / 最近 3 年 / 最近 1 年)
- 定义:RORE = 净利润 / 平均留存收益;保守口径可采用「期间累计净利润 / 期间累计留存收益」。留存收益 = 未分配利润期初→期末的净增加额(净利润 − 分红)。
- 呈现:三档时间窗口表格。
- 判定:RORE 应 ≥ 公司长期 ROIC / ROE 均值;若长期低于,说明留存收益留在公司内部不如直接分给股东,是减分信号。 -
可持续增长率 g = 再投资率 × ROIC(最近 5 年 / 最近 3 年 / 最近 1 年)
- 再投资率 = 留存收益 / 净利润(即 1 − 分红率)。
- 呈现:三档窗口列出「再投资率」「ROIC」「g」三列。
- 用途:将 g 与公司实际营收 / 利润增速对比。若 g 长期 > 实际增速 → 再投资过度但转化为低效资产;若实际增速 ≫ g → 增长可能靠加杠杆 / 并购驱动,须回到 7.2 行为层核查资本来源质量。 -
10 年资本配置综合回报 =(期末市值 − 期初市值)/ 期间累计留存收益
- 口径:期初 / 期末市值取「10 年前」与「当前」总市值;累计留存收益 = 10 年净利润之和 − 10 年累计分红(来源:westock-data dividend + 年报利润表)。
- 判定:比值 > 1 → 留存收益为股东创造了增值(市值增长超过留存本身);比值 < 1(甚至为负)→ 长期留存收益损毁价值,是资本配置失败的核心信号,重点核查。
7.2 行为层面(并购 / 回购 / 分红的纪律与理性)
-
并购
- 并购频率:近 10 年重大并购次数、标的、金额(来源:公告列表westock-data news <code> --type 0、年报「重大资产购买」章节)。
- 商誉 / 总资产占比:拉取各期末商誉余额,计算商誉 ÷ 总资产,观察趋势(高占比 = 高整合风险、高减值隐患)。
- 商誉减值:列出减值发生年份、金额、原因(来源:年报资产减值章节、相关公告)。区分「一次性洗大澡」与「持续碎片化减值」。
- 判定:并购少而精、商誉占比低、无减值 → 加分;高频高溢价并购、商誉高悬、反复减值 → 减分(管理层在「用股东的钱买增长」)。 -
回购
- 回购政策:是否有常态化回购计划、触发条件、金额区间(来源:回购预案 / 实施公告)。
- 注销与否:回购后流通股是否注销。注销 = 真正回报股东、提升每股价值;用于存储股权激励 / 可转债 = 中性偏减分(潜在稀释抵消了回报)。
- 价位与资金来源纪律:低位 + 自有资金回购 → 加分;高位 + 举债回购 → 减分(用债权人资金回报股东,损害安全边际)。 -
分红
- 分红政策:分红率区间、是否制度化 / 承诺化(来源:分红历史westock-data dividend、年报分红章节)。
- 稳定性:近 10 年分红是否连续、分红率是否稳定或有序提升。
- 阶段匹配:成长期(低分红、高再投,且再投资回报率高)→ 合理;成熟期(高分红、分红率稳定)→ 纪律表现,加分;成熟期仍低分红且无高回报再投资机会 → 减分(资本囤积、回报股东意愿弱)。
7.3 综合判定
给出管理层再投资能力的「加分 / 中性 / 减分」结论,并逐条附证据来源;数据层与行为层结论冲突时(如数据好但行为激进),须明确指出并提示风险。证据缺失项统一标注「⚠️ 证据不足」。
第四步:反向劝退(风险分析)
用「说服用户不要投资」的视角,系统梳理所有风险,尽量多且具体。参考 references/risk_framework.md 中的风险清单模板。
核心检查项:
- 估值风险(当前 PE/PB 是否处于历史高位?)
- 客户集中度风险(是否过度依赖少数客户?)
- 供应链风险(是否依赖单一关键供应商?)
- 竞争加剧风险(主要竞争对手是谁?追赶速度如何?)
- 技术迭代风险(当前核心技术是否可能被替代?)
- 地缘政治/监管风险(是否高度依赖境外市场?)
- 行业周期性风险(行业是否具有强周期属性?)
- 存货跌价风险(存货是否快速累积?)
- 汇兑风险(是否大量外币收入/负债?)
- 财务造假风险(是否存在红色信号?)
输出格式
- 输出为 Markdown 文档,保存到
reports/目录下,命名格式:{公司名}_{代码}_深度分析报告_{日期}.md - 文档结构:封面信息 → 基本筛查 → 各章节深度分析 → 风险分析 → 综合结论
- 每节结尾附「证据来源」子节,列出所有使用的数据来源
- 证据不足的结论,必须用
⚠️ 证据不足标注,不得跳过
常见问题与注意事项
- Token 过期:neodata 查询返回 401/Token expired 时,调用
connect_cloud_service重获 token,然后用--save-token参数保存后重试 - 研报抓取失败:若 WebFetch 无法直接抓取(如知乎/雪球),改用
westock-data ncontent <id>获取研报全文 - 职友集/看准网抓取失败:员工评价网站通常无法直接抓取,需标注「证据不足」并说明已尝试获取
- 分红额 vs 集资额:neodata 返回「累计派现募资比」字段,若 > 100% 则满足条件
- PE 分位数:使用 neodata 自然语言查询「{公司名}最新PE分位数百分位,当前PE估值处于历史什么位置」