🦐 价值投资300 · 看个股 + 分析持仓
> 一句话定位:把「约300只幸存者候选池 + V4 同源评分内核 + 你的价值投资虾交易纪律」打包成一个技能——
> 既能单只股票价值诊断(它到底便不便宜、是真低估还是价值陷阱),也能一键体检你的实盘持仓(哪里破止损、哪里超仓、哪里踩到周期顶)。
这个技能到底能干什么(能力清单)
① 看个股 —— 一只股票,值不值得放进「价值投资300」池?
给定任意 A 股代码,输出一份价值投资视角的诊断报告(Markdown + 可预览 HTML):
- 估值结论:合理PE(基于行业中枢 + 利润预测)vs 当前PE → 低估/合理/高估;叠加前向PE、PEG、PB 辅助判断。
- 质量与安全垫:ROE、经营现金流、股息率、资产负债率、商誉、海外收入占比、股权质押——任何一项爆雷都透明标注。
- 技术面(仅作确认,不做选股依据):均线排列、MACD、布林带,给出「是否到了买点附近」的信号,而非喊买喊卖。
- 周期位置 · 金属叠加(核心独创):铝=政策限产(高盈利可逆,偏周期顶);铜/金/银/锂/锡/钨=地质稀缺(低PE可能是真价值)。自动打标 🔴周期顶风险 / 🟢错杀·真价值 / ⚪中性。
- 黑天鹅错杀 vs 价值陷阱:回撤>30% × 盈利为正 × 现金流为正 × 已低估 → 标记为「错杀机会」;应收/营收≥60% 或 质押≥50% → 红牌硬排除。
- 透明评级:关注 / 持有观察 / 谨慎 / 规避,明确区分「分析信号」与「买卖指令」。
② 分析持仓 —— 你的实盘,现在处于什么健康度?
读取 holdings.json,逐项 + 组合级体检(Markdown + 可预览 HTML):
- 逐仓盈亏与权重:成本、现价、浮盈浮亏、占组合比例;成本为负(已落袋为盈)的仓位不会被误判止损。
- 组合级风险预警(放在最前面):
- 🚨 硬止损 -8% 触发(核心 + 卫星均适用)
- 🚨 单票仓位 >30%(集中度超限)
- 🚨 卫星仓单笔 >10%
- 🚨 总仓位率 >80%(含可选现金输入)
- 🔴 红牌(应收/质押爆雷)、🔴 周期顶、🟢 错杀 标记
- 核心-卫星拆分:核心仓(≤80%)与卫星仓(≤20%、事件驱动)一目了然。
- 非池内 / ETF 标的:无个股基本面评分时,仅作仓位与盈亏统计并明确标注,不硬凑分数。
③ 方法论可追溯、纪律可落地
- 复用
ashare-value-pool-screenV4 同源评分内核(常量严格一致:HAIRCUT=0.85、COE=9%、REDCARD_RECV=0.60、REDCARD_PLEDGE=50),保证「选股池打分」与「单股诊断」永不打架。 - 内嵌你的「价值投资虾」交易纪律:硬止损-8%、单票≤30%、总仓位≤80%、核心-卫星框架。
- 诚实标注数据缺失(Westock 快照非实时),关键决策前提醒以实时行情/最新财报为准。
方法论见 references/methodology.md,行业合理 PE 中枢见 references/sector_pe_table.json。
数据文件约定
技能依赖本地数据文件(均与 ashare-value-pool-screen 同源,存于用户的分析工作目录,典型如
/Users/gaoxingjian/WorkBuddy/<日期>/)。默认从 --data-dir 读取以下文件:
| 文件 | 作用 |
|---|---|
survivors_config.json |
候选池快照(stocks 列表:price/pe_ttm/pb/mcap/52周/reasonable_pe/eps26/g26/overseas/sector…) |
survivors_raw_merged.json |
每票 tech/fin/div/con/ff/chip 合并数据(dict by code) |
metal_overlay.json |
金属叠加层(错杀 vs 周期顶,dict by code) |
metal_map.json |
代码→主金属映射 |
holdings.json |
持仓清单(analyze_holdings 用) |
quotes_part_*.json |
全市场快照(用于解析 ETF / 非池内 A 股的现价) |
> 若使用者未指定数据目录,先询问其分析工作目录;不要凭空假设路径。
> 若代码不在候选池(survivors_config),脚本会尝试用 metal_map/overlay 做有限诊断,
> 或提示需先通过 ashare-value-pool-screen 的 fetch 流程或 westock-data 补充数据。
工作流
A. 看个股
python3 <skill>/scripts/analyze_stock.py --code <CODE> --data-dir <DIR> [--html OUT.html] [--src-date 2026-08-11]
- 输出 Markdown 诊断到 stdout,可直接呈现给使用者;
--html额外生成可预览的网页报告。 - 若使用者只给了股票名称没给代码,先在候选池 / quotes 中解析代码再运行。
- 呈现时用中文口语化转述关键结论(估值结论、评级、红牌/错杀/周期顶标记),不要堆砌原始数字。
B. 分析持仓
python3 <skill>/scripts/analyze_holdings.py --data-dir <DIR> [--holdings PATH] [--cash 现金额] [--html OUT.html] [--src-date 2026-08-11]
--cash用于计算仓位率(股/(股+现金));不给则只报持仓市值与权重。- ETF / 非池内标的无个股基本面评分,仅作仓位与盈亏统计(会明确标注)。
- 输出组合概览 + 持仓明细表 + 风险预警汇总 + 逐仓诊断。
C. 解读与呈现原则
- 评级用中性措辞(关注 / 持有观察 / 谨慎 / 规避),明确区分「信号」与「买卖指令」。
- 对持仓,把风险预警(硬止损触发 / 红牌 / 周期顶 / 单票超限 / 总仓位超限)放在最前面,这是使用者最该立刻处理的。
- 每份报告末尾带免责声明:「本报告仅供研究参考,不构成个人投资建议」。
- 金属股务必点明「铝=政策限产(周期顶风险)」vs「铜金锂锡钨=地质稀缺(真价值)」的区分。
评分内核(scripts/scoring_core.py)
score_one(s, raw_entry, overlay):单股打分,暴露各维度原始分 + 标签,不做池内归一(单股归一无意义)。valuation_verdict(s):估值结论;recommendation(s, is_holding):透明评级。- 常量与 V4 引擎严格一致:
HAIRCUT=0.85、COE=9%、REDCARD_RECV=0.60、REDCARD_PLEDGE=50。 - 所有函数对缺失字段(ETF 无财务、部分票无 tech/chip)均做 None 容错。
注意事项
- 评分源自 Westock 快照,非实时;关键决策前提醒使用者以实时行情与最新财报为准。
- 不要为了「拉出差异」而夸大单因子;诚实标注哪些维度数据缺失(中性处理)。
- 本技能是分析工具,不是自动交易;严守使用者纪律(硬止损/仓位上限/核心-卫星)。