name: stock-value-investing description: > 股票价值投资分析(A股/港股)。仅当用户意图属于以下范围时启用: (1) 给出股票代码要求分析其投资价值;(2) 评估护城河/竞争优势; (3) 检查财务健康与盈利质量;(4) 用 DCF 或相对估值估算内在价值; (5) 评估管理层质量;(6) 做行业结构分析并给出综合投资决策。 数据全部通过 akshare(国内可直连的公开源)获取,零额外商业数据源依赖。 本 skill 仅做研究分析,不预测股价、不荐股、不执行任何交易。 不适用于:期货/期权/加密货币等衍生品、量化高频交易、非上市公司尽调、 以及任何需要实时下单或资金操作的场景。
质量合规遵循 TRACE 五维体系(T 可信任 / R 可靠 / A 适用 / C 规范 / E 有效), 各项要求已落实到下文各节的接口、脚本与文档设计中。
适合触发(该调用时才调用)
- 用户提供 A股 6 位代码(可带 sh/sz 前缀)或港股 5 位代码,并明确要求"分析/估值/护城河"等。
- 用户提及关键词:护城河、财务健康、内在价值、DCF、估值、管理层、行业分析、价值投资。
- 用户希望对比多只股票、构建/再平衡价值投资组合。
常见触发表达(可直接对用户复用的说法) - "帮我分析一下 600519 的估值" - "五粮液(000858)值得长期持有吗?出一份价值投资报告" - "分析 000858,增长率假设 10%、折现率 8%" - "港股 00700 现在价格贵不贵?"(仅行情,无基本面)
不适合触发(避免误触发) - 期货、期权、可转债、加密货币、外汇等衍生品行情或交易。 - 量化/高频/择时交易、短线打板、情绪博弈类需求。 - 非上市公司尽职调查、一级市场股权投资。 - 任何需要下单、资金划转、账户操作的请求(本 skill 无此能力且不提供)。 - 仅查询"今天涨跌幅/新闻"等纯资讯、无需分析框架的场景。
能力边界(可预期承诺) - 输出为"研究分析报告",非买卖建议;涉及预测的增速/折现率均显式标注为假设。 - 数据存在延迟与缺失风险,关键结论须交叉核对交易所公告。 - 港股:仅支持行情数据(价格/历史),无法获取财务三表,因此 ROIC / FCF / DCF / 盈利质量 / PE·PB 等基本面指标均无法计算。港股分析仅限行情层面的有限描述(价格分位、相对大盘强弱),不建议用于完整价值投资分析。
按"行业 → 护城河 → 财务健康 → 估值 → 管理层 → 综合决策"顺序执行。 前两步决定"值不值得看",后三步决定"多少钱买"。
诚实边界(重要):行业 CR5/集中度、政策与替代品风险等定性内容不由脚本计算,必须由 agent 检索公开资料后填写,且必须标注信息来源;无可靠来源时不得断言,统一标记
[待核实]。脚本仅负责定量部分(ROIC/FCF/盈利质量/分位/DCF)。
四类护城河,需在数据上找到证据: | 护城河类型 | 数据证据 | |---|---| | 无形资产(品牌/专利/牌照) | 高且稳定的毛利率、净利率;研发投入占比 | | 转换成本 | 高客户留存、收入复购;行业切换成本高 | | 网络效应 | 用户/交易量随规模指数增长;市占率领先 | | 成本优势 | 单位成本低于同行;规模效应(营收/固定资产) |
辅助验证指标:
- ROIC(投入资本回报率):> 8% 且连续多年稳定,是护城河的最强证据。
ROIC ≈ 息税前利润×(1-税率) / (股东权益+有息负债)
- 自由现金流持续为正、资本支出占比低。
两种互补方法,必须同时给出:
1. DCF 自由现金流折现(见 scripts/dcf.py):
- 输入:基期 FCF、预测期(通常 5-10 年)、增速、永续增长率、WACC。
- 输出:每股内在价值,与现价比较得出安全边际。
2. 相对估值(PE/PB 历史分位):由 metrics.pe_pb_percentile 按历史收盘价 + 最新股本/净利润/净资产反推 PE/PB,给出当前值与历史中位、分位(越低越便宜),并经 dcf.relative_valuation 给出"低估/偏高"判定。
- 注意:PS、EV-EBITDA 当前版本未实现(已在能力边界如实标注),纳入后续路线图。
- 个股相对所属行业指数与沪深300的累计收益、超额收益:由 fetch_data.py 拉取行业指数与沪深300历史计算(最佳努力,缺失则标记 [数据缺失])。
- 若现价 < 内在价值 × (1 - 安全边际),标记为"低估"。
诚实边界:管理层相关数据不由脚本计算,须由 agent 检索公开资料(年报/公告/权威媒体)后填写,并标注来源;无来源不得断言。
结论档位由脚本基于数据自动派生(见 report.recommend_verdict),输出三档之一:
强烈关注 / 关注 / 中性,依据为 ROIC 护城河、安全边际、盈利质量、FCF 正负等硬指标打分;
强周期/未知属性且存在弱项时自动保守降级为"中性"。
agent/用户可用 --verdict-override(须配合 --verdict-reason)覆盖结论,
强制给出理由以避免确认偏误。"关注/强烈关注"仅表示数据面值得研究,不等于买入信号。
最终结论须配合"当前价 / 理想买点(按安全边际)/ 卖出纪律"三段式建议。
输入
- 必填:股票代码(A股 6 位数字;港股 5 位数字,脚本自动补零到 6 位)。
- 可选(脚本参数):--g 增速、--wacc 折现率、--g_term 永续增速、
--years 预测期、--tax-rate ROIC 税率(默认 25%)、
--verdict-override 结论档位覆盖(关注/强烈关注/中性)、
--verdict-reason 覆盖理由(强制填写)、
--force-cycle 强制按强周期口径、--show-basis 打印基准 FCF 序列、--fetch 先拉数据。
注:结论档位不再接受空泛的
--verdict直接赋值,必须由数据派生或带理由覆盖。
校验规则(脚本必须执行,失败显式报错,禁止静默空结果)
- 代码必须为纯数字且长度 5-6 位,否则报错退出并提示正确格式。
- 数据目录 data/<code>/ 不存在时,若未带 --fetch 则明确报错并说明需先拉数据。
- akshare 接口调用失败时,打印具体异常与缺失字段,而非返回空表蒙混;
报告中对无法获取的指标统一标记为 [数据缺失]。
- DCF 校验:WACC 必须 > 永续增长率,否则抛 ValueError 说明不收敛;
FCF ≤ 0 时跳过 DCF 并提示"当前自由现金流为负,不适用 DCF"。
小葱技能7w4.net有完整的技能分类。
依赖自动配置(推荐先行):本 skill 自带 scripts/ensure_env.py,会在运行任意分析脚本之前自动检测并安装缺失依赖(akshare / pandas)。普通用户无需手动 pip install。
python scripts/ensure_env.py --auto # 检测并自动安装依赖
python scripts/ensure_env.py # 仅检测并打印状态
遇到 Linux 系统 Python 的 PEP 668「外部管理环境」限制时,
ensure_env.py不会静默失败,也不会让你手动处理:它会自动创建.venv并在其中安装 akshare/pandas,经os.execv自动切换到 venv 解释器;Windows/macOS/Linux 行为一致,无需手动建虚拟环境或加--break-system-packages。
调用前先 python scripts/ensure_env.py --auto(或手动 pip install akshare pandas)。A股代码统一传 6 位字符串
(如 "600519"),港股用 "00700"。所有接口均为公开行情/财务源,国内网络可直连。
import akshare as ak
ak.stock_profit_sheet_by_report_em(symbol="SH600519") # 利润表(宽表:行=报告期,列=科目英文代码)
ak.stock_balance_sheet_by_report_em(symbol="SH600519") # 资产负债表
ak.stock_cash_flow_sheet_by_report_em(symbol="SH600519") # 现金流量表
ak.stock_financial_abstract_ths(symbol="600519") # 同花顺摘要
ak.stock_individual_info_em(symbol="600519") # 基本信息(最佳努力)
ak.stock_zh_a_hist(symbol="600519", period="daily",
start_date="20200101", end_date="20261231", adjust="qfq")
重要(字段结构):
*_sheet_by_report_em返回宽表——每行一个报告期、 每列一个科目,且科目名为英文代码(如TOTAL_EQUITY股东权益、NETCASH_OPERATE经营现金流净额、CONSTRUCT_LONG_ASSET购建长期资产、SHARE_CAPITAL股本)。metrics.py用"概念→英文代码候选"映射取值, 较中文模糊匹配更抗版本变动。PE/PB 不依赖额外接口:由三表的净利润/净资产/股本直接计算 (
PE = 现价 / (净利润/股本),PB = 现价 / (净资产/股本)),因此无需 已废弃的stock_a_indicator_lg等估值接口。接口命名随 akshare 版本可能变动;若某接口失效,
fetch_data.py会对 非核心接口做最佳努力容错,并在报告中标记[数据缺失]。
环境自检(自动,必须先行):运行 scripts/ensure_env.py --auto 确保 akshare / pandas 已安装;report.py 与 fetch_data.py 直接运行时,脚本顶部已内置该自检,无需手动调用。若遇 PEP 668 外部管理环境,脚本会自动创建 .venv 并安装依赖后重跑,无需手动处理。依赖就绪后再进入第 1 步。
解析输入:提取股票代码、用户关心的重点(估值/护城河/…),校验代码格式。
scripts/fetch_data.py 把财务三表、行情、估值指标落盘为 csv。scripts/metrics.py 计算 ROIC、FCF、盈利质量、分位(自动容错字段)。scripts/dcf.py 跑 DCF + 相对估值,输出内在价值区间。scripts/report.py,
串联上述脚本、按第六节模板自动生成 Markdown 报告并保存到
reports/<code>_report.md。流程末尾必须调用,不要仅口头总结。```bash # 最简:用中性默认假设(g=8% / WACC=10% / 永续 2% / 预测期 10 年) python scripts/report.py 600519
# 推荐:显式假设;结论由数据派生,必要时带理由覆盖
python scripts/report.py 600519 --fetch \
--g 0.08 --wacc 0.10 --g_term 0.02 \
--verdict-override 关注 --verdict-reason "ROIC>15% 且安全边际>30%,数据面值得研究"
``
---fetch:若data//尚未生成则先拉取数据。
- 报告中定量部分由脚本填充;行业结构 / 管理层 / 综合决策三段中的
定性内容由 agent 检索公开资料填写并**标注来源**,不得编造数字。
7. **交付**:把reports/_report.md` 内容呈现给用户,并口头点出
关键结论(护城河评级、安全边际、买点);同时附上风险提示。
报告由 report.py 自动生成,结构固定、可直接使用:
# 【股票代码】公司名称 价值投资分析报告
> 数据来源:akshare | 生成日期:自动 | 结论:关注档位
## 1. 行业结构
- 所属行业:(自动识别)| 周期属性:强周期 / 稳定
- 生命周期 / 格局 / 壁垒:
## 2. 经济护城河
- ROIC(最新):x% → 护城河评级:宽/窄/弱
- 类型与证据:
## 3. 财务健康
- 盈利质量(经营现金流/净利润):
- 自由现金流(最新):
- 偿债 / 成长 / 分红:
## 4. 估值
- DCF 内在价值(中性):X 元/股(假设:增速 g%、WACC r%、税率 t%;WACC±1.5pct 敏感区间)
- 当前价:Y 元 | 安全边际:z% → 低估/合理/偏高
- 价格历史分位:p%(区间 min~max)
- 相对强弱(区间累计):个股 % | 行业 % | 沪深300 %(含相对行业/大盘超额,缺失则 [数据缺失])
- 相对估值(PE/PB 历史分位):当前 / 历史中位 / 分位;相对估值结论(低估/偏高)
## 5. 管理层(agent 检索填写,须标注来源)
- 资本配置 / 诚信 / 激励:
## 6. 综合决策(结论档位由脚本数据派生)
- 推荐档位(脚本派生):(强烈关注 / 关注 / 中性)及依据
- 最终档位:(若被覆盖则标注覆盖理由)
- 当前价:
- 理想买点(安全边际 30%):
- 卖出纪律:
## 7. 数据质量与口径说明
- 分析基准(年报报告期):
- 异常/缺失提示(如年报与季报矛盾已自动弃用、相对强弱缺失等):
- 口径与假设提醒(DCF 敏感性等):
> 风险提示:数据存在延迟/缺失,DCF 对折现率与永续增速极度敏感,
结论应取区间。本报告仅作研究分析,不构成投资建议。
报告第七节的"数据质量与口径说明"由
report.py自动生成, 仅含面向用户的口径/异常/缺失提示(如异常年报已弃用、相对强弱缺失), 不得在交付报告中写入 skill 自身的代码改动、内部开发记录等无关信息。
本 skill 按 TRACE 五维(T 可信任 / R 可靠 / A 适用 / C 规范 / E 有效)的最高标准设计,各项要求已落实到接口、脚本与文档中:
metrics.get_stock_name 并接入报告标题——原 report.py 调用了不存在的 M.get_stock_name(code),标题降级为"行业(代码)",现从 info.csv 的"股票简称"字段解析,正确显示公司名;② report.py --fetch 非法代码退出码对齐文档——补 try/except,非法的 validate_code 现 exit 2(原因未捕获异常 traceback 退出 1);③ dcf_value 新增 wacc > g 守卫——当显性期增速 g ≥ WACC 时抛出 ValueError(前段现金流不收敛、内在价值失真),并将 dcf.py 默认假设保持中性(g=8%/WACC=10%/永续 2%);④ detect_bad_annual_all 阈值下调 0.5→0.8——单季营收/净利≥年报 80% 才判异常,显著降低季节性正常企业的误报;⑤ validate_code 港股 5 位代码不再补零——00700 保持 5 位(akshare 港股接口收 5 位),6 位 A 股仍补零到 6 位;⑥ classify_cycle 新增防御型关键词优先匹配——医药/制药/生物/医疗等优先判为"稳定",修正"化学制药""医疗器械"被"化学"误判为强周期的问题。report.recommend_verdict 由 ROIC/安全边际/盈利质量/FCF 打分,强周期/未知且存弱项时自动降级为中性),移除"空泛 --verdict 直接赋值",改为 --verdict-override + --verdict-reason 强制带理由覆盖,杜绝确认偏误;② 接入 PE/PB 历史分位(metrics.pe_pb_percentile + 修复并启用 dcf.relative_valuation),并如实标注 PS/EV-EBITDA 未实现;③ 强周期 FCF 平滑方向修正:由"只取正值均值"改为"中位数且保留负值",避免景气高点外推导致内在价值系统性偏高;④ DCF 默认假设中性化:g=8% / WACC=10% / 永续 2%(原 g=12%/WACC=9% 偏乐观);⑤ 工程加固:report.py 顶层副作用移入 main(模块可被 import 单测)、抽出 metrics.extract_dcf_inputs 公共 API 消除对 _find/_latest_row 私有符号穿透、删除重复 _to_float;⑥ 数据时效与健壮性:fetch_data.py 日期范围动态化(回看约 5 年)、抓取后写入 .meta.json(报告第 7 节提示新鲜度);⑦ 异常年报检测升级为历史扫描(detect_bad_annual_all,支持多年同时异常)并支持 --tax-rate 透传;⑧ 文档诚实化:能力边界明确"行业 CR5/管理层等定性由 agent 检索填写并标注来源、不得编造"。metrics.py 的 _find 字段取值 bug(原按数据列顺序返回首个匹配,易误命中无效/占位近似列如 OPERATE_NETCASH_BALANCE、LIAB_EQUITY_BALANCE,导致 ROIC/FCF/盈利质量/BVPS 计算错误;现改为按 FIELD_MAP 候选优先级遍历并跳过空值/nan);② 新增异常财报自动检测(最新年报与最新季报存在逻辑矛盾时自动弃用该异常年报、改用上一期年报重算);③ 增强 ensure_env.py 依赖自检——网络自适应选最快 PyPI 镜像、遇 PEP 668 外部管理环境时自动创建 .venv 并在其中安装依赖(脚本经 os.execv 自动切换解释器,Windows/macOS/Linux 行为一致);④ DCF 敏感性矩阵自动写入第 4 节报告(不同 g/WACC 组合下的内在价值区间);⑤ 第 6 节自动给出卖出纪律(规则化参考,非指令);⑥ 第 5 节补充管理层数据支撑线索(用 ROIC 等硬指标提示判断角度);⑦ 技术性异常转通俗中文告警(fetch_data.py 的 _friendly_err 将 RemoteDisconnected/Expecting value 等转成"数据源连接中断/接口返回空"并附重试建议);⑧ 新增集中 FAQ/避坑指南(README)与触发表达示例(SKILL/README)。这个 Skill 质量较好,分析框架完整(六大模块),数据获取省心(自动装依赖、PEP 668 自动处理),对缺失数据诚实标注不造假,结论由数据派生而非空泛输入,文档和 FAQ 非常详细。主要缺点是港股只有行情没有基本面、相对估值还不完整,以及依赖的 akshare 可能偶发接口波动。总体适合有一定分析需求的用户,国内网络使用体验最佳。