# Fund Manager Alpha

> 基金经理独立决策能力尽调。以基金经理为主角,基金作为其长期行为记录,核心回答"他和公司主流观点不一样的时候,有没有反复证明自己是对的"。当用户要求分析某只基金、某个基金经理、判断能不能买、经理能力如何、独立性如何、Alpha 是真本事还是运气时触发。产出 Independent Decision Alpha 取证 + Manager Profile + Alpha 尸检 + IC 结论 + 传播级 HTML 报告。关键词:基金、基金经理、公募、Alpha、独立决策、抱团、House Divergence、逆向、持仓分析、业绩归因、能不能买。

- Skill: `wbh604/fund-manager-alpha` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add wbh604/fund-manager-alpha`
- Raw SKILL.md: https://api.skillmd.com/api/skills/wbh604/fund-manager-alpha/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Web & Frontend
- Author: wbh604 (https://skillmd.com/u/wbh604)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/wbh604/fund-manager-alpha

---


# Fund Manager Alpha · 基金经理独立决策尽调

> 不找"最好的基金",找**真正有独立判断能力、而且这个能力可以验证、可以重复的人**。

## 这是干什么的

"所有人都看对了白酒,他也买白酒赚了钱" 和 "所有人都在白酒,他独立发现另一个赛道并持续创造 Alpha" —— 在评价一个人的投资能力时,不是一回事。

这个 Skill 只干一件事:把这两种人分开。

### 四条基本判断(产品哲学)

1. **主角是基金经理,但用户真正买到的是某一只产品。**
2. **经理厉害 ≠ 这只基金值得买;基金值得买 ≠ 现在适合买;现在适合买 ≠ 你拿得住。**
3. **基金收益率 ≠ 基民收益率。**
4. **稀有不等于优质,冷门不等于便宜,机构持有不等于背书。**

### 普通人到手 Alpha 公式

这是整个产品面向个人投资者的核心公式:

```
普通人到手 Alpha
= 经理真实 Alpha × 产品传导率
- 规模与拥挤损耗
- 费率与交易成本
- 追涨杀跌损耗
```

> 我们不只判断这个经理有没有 Alpha,还判断这份 Alpha 能不能通过这只基金,真正落到普通人的账户里。

### 一句话产品定位

> 基金业绩好 ≠ 基民赚钱。本产品要算清楚:中间到底漏了多少。

## 核心公式

```
Non-Consensus  +  Correct  +  Repeatable  =  独立决策 Alpha
```

三个条件缺一不可:

- 只有 **Non-Consensus** = 很有主见,但主见没价值,可能只是瞎搞
- 有 **Non-Consensus + Correct** 但不 Repeatable = 运气
- 三者齐备 = **独立型 Alpha 经理**,这才是值得把钱交出去的人

因此 `Independent Thinking` 和 `Independent Alpha` **必须分开打分**,永远不许合并成一个"独立性 82 分"。

| | Independent Thinking | Independent Alpha | 判定 |
|---|---:|---:|---|
| 经理 A | 95 | 20 | 很有主见,但主见没什么价值 |
| 经理 B | 88 | 91 | **独立型 Alpha 经理** |

## 硬规则(违反就停下)

1. **必须先做任期切割**。前任业绩混入现任评价 = 分析作废。
2. **禁止把 Beta 当 Alpha**。Size / Value / Microcap Beta 必须先剥离。
3. **禁止把"和公司不一样"直接当能力**。必须先扣除 Product Mandate 造成的假独立(见 STEP 5.4),再验证是否赚钱。
4. **失败的独立判断必须全部记录**。只挑赢家 = 整个报告失去可信度。
5. **最低证据窗 5 年**。不足 5 年不是不能评,但必须降 Evidence Confidence 并禁止对 Alpha 稳定性下强结论。
6. **Forward Alpha 禁止历史外推**,必须逐项扣减。
7. **报告禁止空泛话术**。出现"业绩优秀 / 值得关注 / 长期看好 / 综合来看 / 一方面另一方面"即失败。
8. **不许伪精确**。算不出来就写"未发现可靠公开信息",不要用 `+4.73%` 伪装一个估算。
9. **平均值不等于共识**。先证明公司存在统一观点(门派识别),再谈偏离。公司内部可能本就分裂成多个门派,他属于某一派 ≠ 独立。
10. **目标经理参与共管的产品不得泄漏进 House Consensus**;同一经理无论管理多少只复制产品,经理等权只算一票。
11. **同一条证据只能进入一个主要评分模块**,最多再作为另一个模块的修正项,不得在多个模块重复完整计分。
12. **证据不足标 U(未鉴定),不直接降为差经理。** 把"查不清"当成"能力差"是误伤。
13. **稀有度不得改变投资评级。** SSR 只是传播标签,不能反过来提升投资判断。机构/国家队/保险资金只做事实徽章,不做能力背书。
14. **"未发现负面"不得加分**;低置信度报告不得使用"可以买"这种绝对印章,应使用"可纳入候选/待验证"。
15. **卖飞/躲跌只认主动清仓**。部分减仓大头还在,后面的涨跌他都有份,给他记"卖飞 +286%"是冤枉;被动减仓(触 10% 线 / 遭赎回)不是决策,同样剔除。卖点验尸样本 = 主动清仓事件,仅此一种。
16. **每一个裸数字都必须有主语和口径**。"20 vs 12"看不懂,"手里的股票跌破成本后,32 次动作里 20 次砍掉、12 次越跌越买"才是人话。回归系数(γ/t/R²/n)只能进小字括号,正文必须先给白话结论。直观是最高理念。
17. **闸门时间轴是对照卡,不进行为总分。** 公募几乎不真封盘,闸门 = 暂停申购 / 暂停大额 / 限额从大砍到小 / 取消限购。必须先剔除三类假信号:①全公司同一天限购(拿同门对照) ②触 10% 双十线被迫限购 ③熊市且份额急缩时的保命限购。对照物必须含他的风格指数,不能只用沪深300;分位用近 3 年,≥80% 高位,≤20% 低位。验尸方式和买卖点一样:闸门之后 12 个月指数与本基金涨跌。时间线重合是已确认事实;「他有良心」最多写较强推断。
18. **年底冲排名 / 一车多牌 / 开门批次是对照卡,不进行为总分。** Q1/Q3 只有前十大,禁止拿持股只数比 Q4;成立首年当建仓年剔除。净份额 ≠ 申购,净缩不能写成开门收钱,也不能写成没人买。锁定期份额不动时,机构占比变化是场内换手。名下产品前十大重合是已确认事实,「挂名明星」最多较强推断。

## 证据窗与置信度

专业模式默认 **最低研究窗口 = 5 年**。有 10 年、15 年当然全拿,但核心评分必须**同时展示 Career 与 Recent 5Y 两套**:

| 指标 | Career | Recent 5Y |
|---|---:|---:|
| Factor Alpha | +4.8% | +2.9% |
| **Independent Alpha** | +6.2% | +4.1% |
| Downside Capture | 72% | 81% |
| House Divergence | 78 | 83 |
| Alpha Persistence | 81 | 69 |

两套并列能直接暴露一件事:**经理是不是老了以后能力下降了。**

### Evidence Confidence 分级

| 可获得历史 | 置信度 | 允许的结论强度 |
|---|---|---|
| ≥ 5 年 | 🟢 High | 可对 Alpha 稳定性下结论 |
| 3-5 年 | 🟡 Medium | 可评方法,Alpha 结论加限定 |
| 1-3 年 | 🟠 Low | 只评行为,禁止外推 |
| < 1 年 | 🔴 Insufficient | 只做画像,不给评分 |

新星经理:**有多少历史就拿多少**,但绝不能拿老经理的历史给新人背书。

## 五年证据包

"五年数据"不等于"五年收益率"。专业版必须凑齐:

| 数据 | 最低量 | 用途 |
|---|---|---|
| 日频/周频净值 | 5 年 | Alpha、Beta、Tracking Error、回撤、Regime |
| 季度持仓(Top10) | ≥ 20 期 | House Divergence、抱团、买卖行为、Idea Origination |
| 半年报/年报全持仓 | ≥ 10 期 | 小众股票发掘能力(季报只有前十大,看不出来) |
| 基金规模与份额 | 5 年 | 申赎、Capacity |
| **公司全产品持仓** | 5 年 | **House Consensus 的地基,没有它整个独立性模块作废** |

凑不齐哪一项,在报告里明写缺口,不要静默降级。

## 进度条

```
[██░░░░░░░░░░░░░░░░░░] 10% · STEP 1-2 · 身份识别 + 任期切割 ✓
[█████░░░░░░░░░░░░░░░] 25% · STEP 3-4 · 经理尽调 + 行为重建 ✓
[██████████░░░░░░░░░░] 50% · STEP 5 · 独立决策取证(核心) ✓
[█████████████░░░░░░░] 65% · STEP 6-7 · Benchmark + Alpha 尸检 ✓
[████████████████░░░░] 80% · STEP 8-10 · 能力/组合/资金 ✓
[██████████████████░░] 92% · STEP 11 · Forward Alpha ✓
[████████████████████] 100% · STEP 12 · IC 结论 + 报告 ✓
```

---

# 十二步流程

## STEP 1 · 身份识别

入口可能是基金名("分析兴全合宜")或经理名("分析缪玮彬"),两种都归一到同一对象。

必须锁定:基金全称/代码/份额类别/类型/基准/成立日 · 现任经理与共管人 · 现任管理时长 · **该经理管理的全部产品清单**(STEP 5.5 Master Book 要用) · 基金公司全部主动权益产品清单(STEP 5.1 House Consensus 要用)。

⚠️ 经理入口时,选管理时间最长且规模最大的基金作主标的,其余作行为证据。
⚠️ 指数、指数增强、系统量化、固定规则产品 **禁止套用个人 Alpha 归因**,直接说明并退出。

## STEP 2 · 任期切割

整个分析的地基。

```
2015-01 ~ 2017-06   前任 A            权重 0     标"历史遗产"
2017-07 ~ 2019-03   现任 + A 共管      权重 0.5   单列,不算个人全额
2019-04 ~ 现在      现任独管          权重 1.0   核心评价区间
```

后续所有收益、Alpha、回撤、换手、独立性,**只用独管期 + 折算共管期**。

## STEP 3 · 基金经理个人尽调

**占 Manager/People 模块主体。** 分两层:

**第一层 · 人物花絮**(权重 0,只增强可读性):教育背景、公开兴趣、采访风格。
禁止从籍贯、婚姻、外貌、采访语气推断投资能力或道德。无 A/B 级公开信源就写"未发现可靠公开信息"。

**第二层 · 专业尽调**(参与评分):

| 项 | 要回答的问题 |
|---|---|
| 职业路径 | 他怎样一步步成为今天的经理? |
| 能力圈形成 | 哪段经历形成了哪些行业/方法优势? |
| 投资哲学 | 真正相信价值/成长/周期/逆向/配置? |
| 认知方式 | 产业/财务/宏观/量化/交易,哪种主导? |
| 决策机制 | 一只股票怎样从发现走到重仓与退出? |
| 风险人格 | 亏损后加仓、止损、换仓还是硬扛? |
| Conviction | 最看好的股票是否真敢重仓且拿得住? |
| 错误处理 | 判断错后多久承认?怎么退出? |
| 学习能力 | 框架是合理进化还是追热点? |
| 情绪稳定 | 极端行情下行为是否失常?(只看持仓,不看语气) |
| 诚信一致 | 说的和做的是否一致? |
| 利益一致 | 自购、限购、发新基金是否与持有人一致? |
| 认知边界 | 他知道什么不做?新领域有没有学习过程? |
| 平台依赖 | 离开现平台还剩多少能力? |
| Key Person Risk | 产品是否本质上就是这个人? |

### 3.1 Manager Evolution Map

不要罗列履历,要写"市场怎样训练和修正了他":

```
2008-2012  卖方机械研究员      → 建立制造业产业链研究方法
2012-2015  买方研究员,高端制造 → 形成产业景气周期理解
2015-2019  基金经理早期,高集中度 → 经历 2018 大幅回撤
2019-      降低单股集中度      → 加强估值纪律
```

### 3.2 Philosophy Fingerprint + Persistence

从季报、采访、持仓**反向提炼**哲学指纹,再检查跨时段一致性:2018 的他、2022 的他、2026 的他,是同一个人吗?

一致 → Persistence 高。每两年换一套 → 高风险。

### 3.3 Behavioral DNA

**不用经理自己说,用历史交易反推。用钱投票出来的性格。**

| 探针 | 计算 |
|---|---|
| 下跌 20% 后加仓概率 | 持仓股回撤 20% 后下季度的加减仓方向分布 |
| 上涨 50% 后行为 | 继续拿 / 加仓 / 减仓 分布 |
| 承认错误耗时 | 逻辑破坏 → 清仓的季度数中位数 |
| 大跌时集中度 | 市场跌 >15% 的季度,Top10 占比升还是降 |

输出 10 维雷达(0-100):独立思考 / 逆向能力 / 风险纪律 / 择时能力 / 选股能力 / Sizing 能力 / 卖出能力 / 情绪稳定 / 学习能力 / 利益一致。

### 3.4 Mistake Ledger(必填,不能为空)

管理 3 年以上的经理都犯过错,找不到 = 你没查。

```
Case #N  {时间} {标的或决策}
初始逻辑:  当时为什么买
后来发生:  逻辑如何被破坏
经理行为:  Q1 加仓 → Q2 继续加仓 → Q3 才减仓
最终损失:  -42%
诊断:      确认偏误明显 / Error Correction 强
```

汇总 `Error Correction Score`。

### 3.5 Career Incentive Profile

看实际商业决策,比采访可靠得多:路演频率 / 发新产品 / 接管基金 / 主动减产品 / 追求行政职位 / 高点发基金 / 主动限购。

判定 `Investment-first` / `AUM-first` / `Career-first`。

### 3.6 造神检测(9 项,逐条给结论)

很多经理的"神话"是这么来的:亏钱的产品甩给新人,只留赚钱那只给你看。这一节专门查那条漂亮曲线是不是"修"出来的。

**主证据是经理变更公告(`ak.fund_announcement_personnel_em`),要把该经理全部产品、全部季度的变更记录拉齐,再和当时的市场涨跌对照着看。**

**自动化线索:标题含"增聘"且接任者从业 < 2 年 + 该季度基金回撤 > 15% = 甩锅前兆,进红旗候选。** 这条规则能筛掉 70% 的噪声,剩下的人工核对公告全文和接任者履历。

#### 三级证据制(硬规则)

"甩锅 / 摘桃子 / 藏尸体"这些词非常有传播力,但正文必须严谨。每一项的结论必须落到三个级别之一:

| 级别 | 含义 | 措辞 |
|---|---|---|
| **线索** | 自动化规则命中,需要继续查 | "存在责任转移嫌疑,需人工核查" |
| **较强推断** | 多项公开证据一致,但无法确认主观动机 | "该变更时间与产品大幅下跌高度重合,存在责任转移嫌疑,无法仅凭公开资料确认主观动机" |
| **已确认事实** | 公告、产品历史和时间线可以直接证明 | "2022 年产品下跌 31% 后增聘一位从业不足两年的经理,原经理三个月后退出" |

**娱乐标题可以狠,证据正文必须克制。** 比如"2022 年产品下跌 31% 后增聘新人、原经理三个月退出"是**已确认事实**;但"原经理为了甩锅"属于动机判断,没有更多证据只能写**较强推断**。

| 项 | 查什么 | 怎么判 | 自动化程度 |
|---|---|---|---|
| **甩锅跑路** | 下跌期把亏损产品转给新人 | 回撤 >15% 的季度里发生经理变更,且接任者从业不足 2 年 → 红旗 | 🟢 标题"增聘"+回撤数据可自动筛 |
| **摘桃子** | 等别人做出业绩才接手 | 接管时该产品已有显著正超额,且接管后超额衰减 → 红旗 | 🟡 需比对接管前后业绩 |
| **藏尸体** | 失败产品被清盘藏起来 | 官网履历 vs 监管备案对不上,或有清盘产品未出现在履历里 → 红旗 | 🟡 需交叉验证两个数据源 |
| **蹭业绩** | 挂名共管被算成个人战绩 | 共管期收益被宣传为个人业绩 → 剥离并标注 | 🟢 公告明确区分共管/独管 |
| **高位圈钱** | 趁行情好猛发新基金,或高位打开申购 | 市场/风格估值高位期新增产品或打开大额申购 → 红旗。必须叠「募完闸关上了没有」 | 🟡 需判断当时估值分位 + 读闸门公告 |
| **年底冲排名** | 为名次年末赌一把 | Q4 仓位或热门板块暴露显著高于其他季度 → 红旗。假信号:Q1/Q3 只有前十大,禁止拿持股只数比;成立首年当建仓年剔除。对照卡,不进总分 | 🟢 Q4 vs 非Q4 集中度/换血率/当季收益可自动算 |
| **人设造假** | 嘴上说的和实际买的不一致 | 季报表述与持仓矛盾 → 红旗 | 🔴 需读文字段落 |
| **偷换尺子** | 悄悄改了比较基准 | 合同基准变更,或宣传基准与合同不一致 → 红旗 | 🟡 需对比不同版本招募书 |
| **利益冲突** | 亲属在关联机构掺和 | 关联交易章节异常佣金 / 直系亲属在关联券商任职 / 持有重仓股 | 🔴 披露有限,查不全 |

关于最后一项的边界(**这条是硬规则**):

只查**关联方与利益冲突** —— 亲属是否在关联机构任职、是否持有本基金重仓股、佣金分配是否异常。这些有公开信源(定期报告关联交易章节、公司公告),而且真的影响投资判断。

**不采集**配偶姓名、职业、学历等私人传记信息。配偶是没有公众身份的私人个体,这类信息既查不到可靠公开记录,也没有投资含义 —— 知道"太太在某中学教书"不会改变任何一个仓位决定。

披露颗粒度不够时,只能写"未发现",**不能写成"不存在"**。

输出:红旗数 / 需留意数 / 通过数 + 履历真实性等级。**任一红旗成立,IC 结论里必须列为否决候选项。**

脚本会用本品任期、JJGG 标题、牌面行业、闸门分位、名下产品清单自动给出九项结论,每条落到三级证据制。季报原文、亲属任职、招募书全文、接任者从业年限仍标未获取,不能写成「不存在」。动机判断最多较强推断。

## STEP 4 · 历史行为重建

逐季重建持仓、仓位、行业、个股、买入卖出加减仓、集中度、换手。

⚠️ 季报只披露 Top10,半年报/年报才有全持仓。**必须标注披露口径**,不要把 Top10 当全持仓算集中度。
⚠️ 前十大消失 ≠ 卖出,只能记为"退出前十大"。

---

# STEP 5 · Independent Decision Alpha ★ 核心模块

这是最重要的一步,在经理评分里占最高分。

单纯"和公司不一样"不叫能力。这一步要完整走通 `Non-Consensus → Correct → Repeatable` 三段验证。

## 5.1 构建 House Consensus Portfolio

把基金公司全部主动权益基金的持仓,**按季度**汇总成公司共识组合。

例 2020Q4:

| 行业 | 公司平均主动权重 |
|---|---:|
| 白酒 | +13.2% |
| 食品饮料 | +8.1% |
| 医药 | +4.8% |
| 新能源 | +1.2% |
| 半导体 | -0.7% |

→ 这家公司当时的 House View 本质上就是消费/白酒。

再看目标经理同期:

| 行业 | 经理主动权重 |
|---|---:|
| 白酒 | -8.1% |
| 食品饮料 | -4.2% |
| 医药 | +1.3% |
| 新能源 | +9.4% |
| 半导体 | +6.8% |

→ 他当时确实和公司主流方向背道而驰。

### 对照组构建四步(硬规则,顺序不能乱)

1. **拿全公司产品**:当前在任(经理-产品映射)+ 公告回补历史离任经理的产品。拿不全就在报告标注对照组覆盖率
2. **剔除目标经理自管产品**(含共管),否则他的持仓泄漏进对照组
3. **剔除债性产品与迷你仓**:类型过滤(偏债混合/平衡混合)不够 —— 按披露权重合计设阈值(前十大合计 <8% 视为债性/空仓,剔除),逐季度动态判断
4. **每只基金先归一化到 100 再等权平均**:一只 30% 股票仓位的灵活配置和一只 90% 的偏股基金直接比权重,分歧度会被仓位水平污染 —— 必须先折算成同满仓口径

违反 3/4 的分歧度是系统性虚高的假数,宁可不算。agent 取数时尽最大努力拿全(API → 浏览器 → 用户登录),拿到多少用多少,但**对照组只数、覆盖率、剔除了什么必须写在报告里**。

### 必须同时算两套权重

| 口径 | 含义 |
|---|---|
| **AUM Weighted House View** | 大基金权重大 |
| **Manager Equal-Weighted House View** | 每位基金经理一票 |

**为什么必须两套:** 假设一人管 800 亿、其余 20 人合计 500 亿。只按 AUM,"公司共识"其实只是那一个人的个人观点。

两套要能回答:是少数明星经理的大资金形成了**表面共识**,还是公司大多数经理真的形成了**共同观点**?

### 5.1.1 门派识别 —— 平均不等于共识(硬规则)

AUM/等权两套口径解决了"大基金绑架平均值",但还没解决一个更隐蔽的问题:**一家公司可能根本没有统一观点,而是存在多个门派。**

```
例:公司一半经理重仓消费,另一半重仓科技
平均以后 → 消费 50% + 科技 50%(看着像"均衡共识")
目标经理重仓科技 → 与平均组合差异很大
但公司里实际有一半人跟他站在一起
→ 他不是孤狼,只是属于公司里的科技派
```

因此在计算 Independent Thinking 之前,必须先算三个指标:

| 新指标 | 回答什么问题 |
|---|---|
| **同门共识强度** | 这家公司到底有没有统一意见 |
| **距最近门派距离** | 他与最相似的一群同事有多不一样 |
| **距全公司平均距离** | 他与表面平均组合有多不一样 |

**正确判定:**

| 情形 | 判定 |
|---|---|
| 公司共识很强 + 他明显偏离 | **真正逆共识** |
| 公司内部本来就分裂 + 他属于其中一派 | **派系成员,不是孤狼** |
| 他与所有主要派系都不同 | **真正独立** |

**算法:** 对每个季度,把公司经理持仓按行业向量做聚类(如 Agglomerative / KMeans,最优簇数用 silhouette 定)。取最大簇为"主门派",算出:
- 主门派内部平均两两相似度 = 同门共识强度
- 经理距最近门派质心的距离 = 距最近门派距离
- 经理距全公司平均组合的距离 = 距全公司平均距离

**两条配套硬规则:**
- 同一经理管理十只复制型产品,只能算一票(经理等权前先合并)
- **任何目标经理参与共管的产品,都不能进入 House Consensus** —— 否则会把他的持仓重新泄漏进对照组

前台做成"**公司门派图**":消费派 8 人 / 科技派 5 人 / 均衡派 6 人 / 目标经理属于哪个。一句判词:

> 他不是跟公司唱反调,而是公司内部本来就有一支科技派。
> 或:公司有三个门派,他和谁都不像,是真正的独立决策者。

## 5.2 House Divergence Score

比较经理组合 vs 公司共识组合,五个层面各算偏离:

| 层面 | 说明 |
|---|---|
| 个股层面 | 重合度与主动权重差 |
| 行业层面 | 行业主动权重差 |
| Style Factor 层面 | 大小盘/价值成长/质量/动量暴露差 |
| **经济驱动层面** | 不同行业是否暴露于同一经济驱动(防伪分散) |
| A/H 市场层面 | 市场配置差 |

```
个股偏离 86 · 行业偏离 72 · Factor 偏离 61 · 经济暴露偏离 79
→ House Divergence Score  78/100
```

## 5.3 Contrarian Alpha —— 分化之后到底赚没赚钱

Divergence 高不算本事,分化之后赚钱才算。

取过去至少 5 年(≥20 个季度),按 House Divergence 分组,计算未来 **6M / 12M / 24M** 相对四个基准的表现:合同 Benchmark、同类基金、**Shadow Benchmark**、**公司 House Portfolio**。

### 自适应周期(硬规则)

**不能只用固定的未来 12 个月** —— 会误伤两类经理:
- **高换手经理**:持仓三个月后已变,12 个月收益不再对应原决策
- **长周期经理**:产业判断需两三年兑现,12 个月可能只是"早对但先亏"

必须同时算:
- 未来 6 个月
- 未来 12 个月
- 未来 24 个月
- **与经理历史中位持有期匹配的自适应周期**

前台不展示四套数字,只给一句人话:

> 他通常不是马上对,而是要熬 12—18 个月才兑现。
> 或:他的独立决策前三个月经常亏,但一年后胜率明显上升。

```
高 Divergence 季度 → 未来 12M Factor-adjusted Alpha  +6.8%
低 Divergence 季度 → 未来 12M Factor-adjusted Alpha  +1.2%
```

→ **这个经理最大的 Alpha 恰恰来自他敢于和公司其他人不一样的时候。** 这是极强的 Manager Evidence。

反过来如果高 Divergence 期反而更差,结论同样重要:**他的独立性是负资产。**

### 两只时钟 + 抄作业指数(个人投资者最爱)

| 时钟 | 从哪个时点开始 | 回答什么问题 |
|---|---|---|
| **经理时钟** | 经理实际建立仓位或公开持仓时点 | 他本人有没有先手能力? |
| **普通人时钟** | 季报、半年报真正公开之日 | 普通人看到以后再抄作业,还有没有收益? |

前台做一个组件 **抄作业指数**:

```
经理自己做:未来 12 个月超额 +14%
等季报披露后再跟:未来 12 个月超额 +2%
→ 他有先手,但抄不到
```

另一个经理可能是:

```
经理自己做:+9%
披露后跟随:+7%
→ 他的判断兑现慢,季报仍有参考价值
```

这是个人投资者特别关心、但绝大多数基金研究完全不回答的问题。

**保留率必须给判词(硬规则)** —— 抄作业指数不是好玩的数字,它直接鉴定"择时先手值多少钱":

| 超额保留率 | 判词 | 含义 |
|---|---|---|
| ≥70% | **作业可抄** | 他的本事在「选什么」不在「什么时候买」;与个股择时分互证;理论上照季报自己抄还省管理费 |
| 40-70% | 半可抄 | 先手有价值但不致命 |
| <40% | 有先手,抄不到 | 择时/交易是其 Alpha 的组成部分,想要收益只能买基金 |

诚实提醒必须带上:抄作业抄得到买单,**抄不到卖点和调仓**;新进小票在你看到季报时他已建完仓。若其卖出能力本身是弱项,则"抄不到卖点"损失有限 —— 两个模块要互相引用。**每个经理都必须算两遍收益:从经理时点算一次,从披露时点算一次。**

### 判断正确 vs 最后赚钱 —— 四象限拆开(硬规则)

"判断正确"和"最后赚钱"必须拆开,防止结果偏见:

| 判断是否正确 | 最终是否赚钱 | 判定 |
|---|---|---|
| 对 | 赚 | **真正好决策** |
| 对 | 没赚 | 买贵了、太早了或执行有问题 |
| 错 | 赚 | **运气,不能计入能力** |
| 错 | 亏 | 真正错误 |

```
例1:经理判断某行业利润即将下滑,基本面确实下滑,但股票因估值扩张继续上涨。
→ 方向判断对了,但卖得太早,执行能力拖累了基本面判断。

例2:公司业绩持续恶化,但因市场主题炒作上涨,经理赚了钱。
→ 这场仗赚钱了,但原始判断并未得到基本面验证,属于结果好、决策未必好。
```

**每张战役卡必须给四象限判定,不只给"赢/输"。** 这会让战役卡从"事后看涨跌"升级成真正的决策质量分析。

## 5.4 ⚠️ 必须先排除 Product Mandate 造成的假独立

这一步最容易翻车。

全公司都买白酒,但他管的是**科技主题基金** —— 他当然不能重仓白酒。这不能算独立性 100。

先控制以下约束,只有**在合同允许范围内的主动偏离**才计入独立决策:

- 产品行业限制 / 主题基金约束
- 合同 Benchmark
- 股票范围(A/H、港股通、沪深)
- 大小盘定位
- 仓位上下限

做法:构造 **Mandate-Adjusted House Consensus** —— 用同 mandate 同类产品(而非全公司)作为对照基准,再算 Divergence。

## 5.5 Manager Master Book —— 跨产品交叉验证

不能只看单只产品。

```
张三: A 基金买半导体 · B 基金买半导体 · C 基金也买半导体
   → 这是经理本人的观点  ✅

张三: 只有那只科技主题基金买半导体
   → 很可能是 Mandate 造成  ⚠️
```

把该经理**所有产品合并**成 Master Book,找出**跨产品重复出现的 Active Bets**。只有跨产品一致的偏离,才是个人观点的强证据。

## 5.6 Independent Calls 战役档案(胜负都要记)

### 成功案例格式

```
Independent Call #1 · 2020Q2
House View:  白酒/消费明显超配
该经理:      白酒明显低配,新能源明显超配
行业配置偏离: 87/100
之后 12 个月: 经理 +56% | House Portfolio +33% | Shadow Benchmark +28%
Independent Alpha: +23% vs House
判定: 🟢 高价值独立判断
```

### 失败案例必须同等篇幅记录

```
Failed Independent Call · 2023Q1
House View:  逐步增配 AI
该经理:      坚持低配科技,继续重仓消费
之后 12 个月: 相对 House -11.2%
判定: ❌ 独立判断失败
```

**只挑赢家写 = 整个报告失去可信度。这是硬规则第 4 条。**

### 汇总 Contrarian Hit Rate 与赔率

```
过去 5 年重大独立判断: 11 次
成功 7 · 失败 4
Hit Rate  63.6%

成功平均  +12.4%
失败平均   -5.3%
→ 胜率不离谱,但赔率很好
```

**赔率比胜率更重要**,必须同屏展示,不许只给 Hit Rate。

## 5.6.1 历史情景时间线(Situation Timeline)—— agent 自行收集

战役不能悬空讲。每一个买卖动作背后都有当时的市场情景,agent 必须**自行检索并核实**一份与分析窗口对齐的历史事件时间线,用于:战役回放字幕、战役卡背景、"在 X 情况下他做了什么"的行为归因。

### 收集五类事件

| 类型 | 例子 | 主要来源 | 作用域 |
|---|---|---|---|
| **宏观 macro** | 贸易战开打 / 疫情爆发封城 / 俄乌战争 / 对等关税 | 新闻检索(标题+日期可查证) | 全局 |
| **市场 market** | 抱团股见顶 / 美股熔断 / AI 行情引爆 / 微盘流动性危机 / 924 政策暴涨 | 新闻检索 + 指数行情反推(单日 ±5% 自动标注) | 全局 |
| **基金自身 fund** | 一日售罄上热搜 / 开始限购 / 经理变更公告 / 规模异动 / 上热搜被骂 | 基金公告 + 新闻检索 | 全局 |
| **行业 industry** | 光伏531新政 / 带量采购 / 实体清单波及半导体 / 平台反垄断 / 碳酸锂崩盘 | 政策文件 + 行业协会 + 新闻检索 | 带 `codes`,只在回放对应重仓股时显示 |
| **公司 company** | 中芯科创板上市 / 被列实体清单 / 麒麟电池发布 / 药明被列UVL / 快手上市 | 公司公告 + 新闻检索 | 带 `codes`,只在回放该股时显示 |

**行业/公司事件按重仓股逐只收集**:agent 对每只进入买卖复盘的股票,检索其持有窗口内的重大行业政策与公司事件(每只 1-4 条)。事件写 `codes` 数组标注适用股票,回放时按当前股票过滤。

### 硬规则

- **每条事件必须有确切日期(至少到月)且公开可回溯**——有新闻标题、公告编号或行情数据佐证。查不到出处的传闻一律不收
- 密度:每年 2-6 条,宁缺毋滥。凑数的"某某指数上涨"不算事件
- 事件与操作**不许强行因果**:字幕只陈述"此时发生了什么 + 他做了什么",是否有关联留给读者;确有证据(季报原文提及)才可标"他在季报里回应过这件事"
- 基金自身事件优先级最高——上热搜、爆款发行、限购、被赎回,这些直接影响申赎与经理行为
- 输出格式:`events.json`,字段 `date / title / kind(macro|market|fund) / source_hint`
- **kind=fund 由脚本按本品自动生成**(成立、经理变更、规模见顶、最大回撤起止、水下结束、闸门);**kind=market 用沪深300 单日涨跌≥5% 自动标注**(不编新闻标题)。已有的 industry/macro/company 条目若属于这只基金的持仓窗口则保留;禁止把合宜手写时间轴抄到别的代码

### 前端用法(战役回放)

买卖复盘面板加 ▶ 回放:K 线从窗口起点逐周生长,推进到事件日期弹出新闻字幕(macro 红 / market 黄 / fund 紫),推进到买卖点弹出操作提示("📌 此时他清仓了隆基")。让用户亲眼看着"贸易战开打的那周,他在干什么"。

## 5.7 Idea Origination —— Lead / Lag 分析

还有一种经理更牛:不是"公司都买白酒他买半导体",而是 **"他先买半导体,半年后整个公司跟着买"**。这意味着他可能是公司的 Alpha 源头。

对每个重要行业/个股,记录经理首次显著超配时间 vs 公司其他经理开始显著增配的时间:

```
2020Q1  张三开始重仓半导体
2020Q2  公司仅 2 名其他经理开始买
2020Q3  公司 9 名经理开始买
2020Q4  成为公司主要重仓方向
→ 平均领先 House Consensus 约 2-3 个季度
→ Idea Origination Score: 94
```

三档判定:`Idea Generator`(领先) / `平台共创`(同步) / `Idea Consumer`(滞后)。

这个分数直接决定"**他离开这个平台后还值多少钱**"。

## 5.8 Internal Alpha Leader —— 公司内部影响力图谱

如果很多重要行业都是他最早进入、其他经理逐渐跟随:

```
        张三
     ↙   ↓   ↘
   李四  王五  赵六
    ↓         ↓
   ...       ...
```

他就是 **Internal Alpha Leader**,即使他并不是投资总监。**这比职务本身更有意义。**

反向也要查 **影子经理**:组合是否长期跟随另一位核心经理(滞后 1-2 季度高度重合)。

## 5.9 模块输出

首页展示七个数:

```
House Divergence      83/100
Independent Alpha     +4.7% p.a.
Contrarian Hit Rate   68%
Idea Origination      91/100
Average House Lead    2.1 Quarters
Alpha When Divergent  +7.2%
Alpha When Consensus  +1.3%
```

配一句自动结论,例:

> 该经理最有价值的时期恰恰是其组合与公司主流观点明显分化的时候。过去五年 11 次重大非共识配置中 7 次创造显著正超额,且多个核心行业配置领先公司共识约 2 个季度,属于较强的独立 Idea Generator。

## 5.10 基金公司层面的独立性

同一套方法上移一层:**这家基金公司相对全市场公募是否独立?**

- 公司整体持仓 vs 全市场公募持仓的偏离度
- 公司是否长期抱团于某几个赛道
- 公司整体 Divergence 之后是否赚钱
- 公司是行业风格的引领者还是跟随者

用途:区分"**经理独立**"与"**整个公司都在裸奔**"。经理相对公司独立、但公司相对市场高度抱团,那他的"独立"可能只是在一条拥挤赛道里换了个车道。

### 5.10.1 今年热榜同步度(必做)

拉全市场今年收益 TOP10 主动基金(东财开放式排行按"今年来",剔除指数/联接/QDII,A/C 份额去重),
逐只对比其最新前十大与目标经理前十大的同名只数(同步度 = n/10),配进度条渲染。

这条尺子回答的问题和 House/全市场偏离不同:**他的收益是不是蹭今年热点榜来的?**
- 平均同步度 < 4/10 → "收益不是追热点追来的,想蹭排行榜热度的人别买他"
- 平均同步度 ≥ 4/10 → "他就压在今年的主升浪上,涨得快,退潮时也一起挨打"

参考实现 `scripts/fetch_top_funds.py`,产物 `.cache/fund_<code>/top_funds.json`。

详见 `references/step5-independent-alpha.md`。

---

## STEP 6 · Benchmark Engineering

四层,缺一不可:

| 层 | 作用 |
|---|---|
| 合同 Benchmark | 法定基准,通常没什么用 |
| 同行 Benchmark | 同类型基金中位数 |
| **Shadow Benchmark** | 用他实际持仓风格构造的"假冒基金" |
| **House Portfolio** | 公司共识组合(STEP 5.1 产出) |
| **行业 ETF 对照** ★ | 他如果只买一个行业 ETF,能拿到多少(新增) |

Shadow Benchmark 是关键:如果收益能被"小盘+价值"指数组合复制,Alpha 就不是他的。

### 6.1 行业 ETF 对照(硬规则)

**这层回答的问题:他买主动基金,为什么不去买一个 ETF?**

**何时启用(硬门控):** 单一申万一级行业占股票持仓 ≥50% 且持续 ≥2 季度。**主题基金(医药/半导体/军工)天然满足,而且这个对照对它们是"必须做"** —— 合同已把他锁死在行业里,他唯一能贡献的价值就是行业内选股;如果连行业 ETF 都跑不赢,这只基金没有存在的理由。

**把总超额拆成两段(和 Alpha 尸检衔接):**

```
总超额 vs 市场 ≈ 行业溢价(一个行业 ETF 就能拿到) + 行业内选股 Alpha(经理真正的活)
```

**事前选定(硬规则):** ETF 必须事前写死代码,不许事后挑一个对自己有利的。

**扣费对比是关键:** 主动基金净值已扣 1.5% 管理费,ETF 扣 0.5%。零售问题是"多付的这 1%,买到了什么":

| 经理 vs 行业 ETF(扣费后) | 判读 | 行动 |
|---|---|---|
| 明显跑赢(>+3%) | 行业内有选股本事 | 管理费值 |
| 持平(±1%) | 本事 = 押对行业 | 直接买 ETF |
| 明显跑输 | 行业都没吃透 | 避开 |
| 跑赢但高换手 | 净收益可能翻转 | 必须看扣费后 |

**两个必须防的陷阱(否则结论是假的):**
1. **行业内风格错配**:小盘医药经理 vs 大盘医药 ETF → 因子没对齐,结论假。要加一个"风格对齐版"(同行业 + 同市值分位)。
2. **择时混入**:他在行业内加减仓,vs-ETF 超额里混了择时。报两个口径:全程 vs 仅在他持有该行业期间。

**前端做成"三堂会审"第三堂**:擂台加第三位选手"行业 ETF(机器人)",胜/平/负三判。

> 他的钱主要来自押对了医药,不是医药里选股。直接买医药 ETF,省 1% 管理费。
> 或:他在医药里选股确实比医药 ETF 多赚 2.1%,这笔管理费值。

## STEP 7 · Alpha 尸检

拆成瀑布,各项加总须等于总收益(误差 < 0.3pp):

```
基金年化收益           17.2%
├─ Market Beta         +4.1%
├─ Size Beta           +3.0%
├─ Value Beta          +1.4%
├─ Microcap Beta       +2.2%
├─ Asset Allocation    +1.8%   ← 经理能力
├─ Stock Selection     +3.1%   ← 经理能力
├─ Timing              +1.0%   ← 经理能力
└─ Residual            +0.6%
```

### Alpha Evidence 六项检验(★1-5)

| 检验 | 通过标准 |
|---|---|
| Factor-adjusted Alpha | > 0 且 t > 2 |
| Rolling 36M Alpha 为正比例 | > 60% |
| 正 Alpha 年度 | ≥ 2/3 |
| 剔除 Top1 赢家 | 仍为正 |
| **剔除 Top3 赢家** | **仍为正** |
| Alpha Breadth | 贡献分散,非单一押注 |
| 一次性收益剥离 | 打新/定增/转债贡献单列 |

**剔除 Top3 后转负 = 运气而非能力**,必须明写。

## STEP 8 · Decision Lab · 能力验证

每项 A-F 评级:

| 能力 | 检验 |
|---|---|
| Buy Skill | 买入后 3M/6M/12M 超额 |
| Sell Skill | 卖出后标的继续涨了多少 |
| Sizing Skill | 高权重仓位是否确实高胜率 |
| Holding Skill | 长期持有标的是否真跑赢 |
| Error Correction | 见 3.4 |
| Talk vs Action | 季报说的与实际持仓是否一致 |

必须给出**一句具体弱点**,例:"典型弱点:卖得偏早,历史卖出后 12M 标的平均继续上涨 14%。"

## STEP 9 · 组合与风险

Active Share / Tracking Error / Risk Contribution / **Hidden Concentration** / Tail Risk / 情景压力测试。

Hidden Concentration 是重点:行业看着分散,可能全是小微盘 = 单一风险因子。

情景按钮:小微盘 -30% / 流动性快速收紧 / 大盘蓝筹行情 / 风格切换,各给预估影响。

### Regime Map

二维图回答"**这个经理在哪种世界最厉害**":

```
              价值占优
                 ↑
   表现一般      │      表现较好
小盘 ───────────┼─────────── 大盘
   表现极强      │      表现较弱
                 ↓
              成长占优
```

## STEP 9.5 · 方向盘归属(STEP 4 的衍生,防"挂名明星")

基金经理共管、产品复制、公司统一研究平台,都会让"这个人创造了业绩"变得不确定。三个指标:

| 指标 | 计算 |
|---|---|
| **主驾度** | 单独管理时间占比 / 共管产品数 / 重大持仓变动是否发生在共管期 / 共管人加入退出后行为变化 |
| **产品复制率** | 同一经理不同基金持仓重合度 / 是否十只基金本质上是一只换壳 / 新基金是否简单复制老产品 |
| **司机负荷** | 同时管理多少只 / 总规模 / 覆盖多少种策略 / 新发产品速度 |

前台表达:

> 他名下有 12 只基金,但 9 只持仓高度重合,本质上是一辆车换了 9 个车牌。
> 或:这只基金的主要战绩发生在三人共管时期,目前无法确认方向盘主要掌握在谁手里。

**产品复制率**已落地为报告「一车多牌」对照卡(不进总分)。最新全持仓季前十大:撞 ≥6 只,或他在共有股票上的权重 ≥35% → 记同构。主驾度 / 司机负荷仍须人工。

### 成名前后滑块

很多经理过去有 Alpha,但成名后出现:规模膨胀 / 产品增加 / 小盘买不动 / 持仓向大盘抱团靠拢 / 独立性下降 / 换手恶化。比较成名前后:

| 指标 | 成名前 | 成名后 |
|---|---:|---:|
| 管理规模 | 28 亿 | 186 亿 |
| 独立差异度 | 74 | 41 |
| 小盘股占比 | 38% | 9% |
| 年化独立 Alpha | 8.1% | 2.2% |

一句判词:

> 过去的他确实优秀,但现在的产品已经装不下过去的打法。

娱乐封号:**规模受害者 —— 名气涨得比能力快。**

### 底牌翻开(真实押注数)

持有 50 只股票不代表分散。算"真实押注数":行业相关性 / 风格因子相关性 / 盈利驱动相关性 / 同一产业链暴露 / 压力期相关性。

> 表面持有 46 只股票,实际上只押了四件事:消费复苏、人民币升值、利率下降和大盘成长。

### 逃生门(流动性真相)

> 平时看起来有 46 个出口,市场踩踏时真正能同时卖出的只有 3 个。

容量和流动性一下就变得非常直观。

### 翻车说明书(错误类型归纳)

现有战役卡不只记录输赢,还要归纳错误类型:买贵了 / 判断太早 / 越跌越加 / 过度集中 / 价值陷阱 / 卖得太晚 / 卖飞 / 追逐热门赛道 / 错误后拒绝调整。

然后算三个指标:

| 指标 | 通俗解释 |
|---|---|
| **犯错频率** | 多久会做错一次重大判断 |
| **认错速度** | 错了以后多久开始减仓 |
| **单次伤害** | 一次错误通常会让组合损失多少 |

最重要的是**同一种坑掉进去几次**:

> 他不是不能犯错,而是过去五年三次在高估值成长股上犯了同一种错误,而且每次都在下跌后继续加仓。

这比"风险管理 62 分"有意义得多。

### 重仓是否真的更准(仓位表达能力)

> 他越有把握的时候,真的越准吗?

比较:前五大重仓胜率 / 普通持仓胜率 / 加仓后未来收益 / 减仓后未来收益 / 高确信度决策的盈亏比。

> 他重仓股的命中率反而低于普通持仓,说明他的判断能力尚可,但仓位表达经常放大错误。
> 或:仓位越重,未来收益越高,他不仅会选,还知道什么时候该下重注。

这对应 Buy / Sell / Sizing / Holding,但前台完全不需要出现这些英文。

## STEP 10 · 容量 · 资金 · 平台

**Capacity:** 策略容量估计 / 当前 AUM / Capacity Utilization 进度条 / Days to Liquidate / Alpha Decay 曲线。

```
预计容量 20-30 亿 · 当前 12.5 亿
Capacity Utilization ████████░░░░ 48%  🟢 健康
```

**资金画像(徽章制,有证据点亮,无证据灰色,禁止猜测):**

```
🟢 经理本人  🟢 基金员工  ⚪ 国家队  ⚪ 险资
⚪ 社保      ⚪ 养老金    ⚪ FOF    ⚪ 外资
```

禁令:员工持有 ≠ 经理自购;地方国资 ≠ 国家队;机构持有 ≠ 未来收益。

### 10.1 闸门时间轴(对照卡)

评规模把握,不评净值。把限购 / 暂停大额 / 打开申购钉在沪深300 **和他的风格指数** 高低点上,拿 12 个月后走势验尸。

四象限(先剔除假信号再进样本):

| | 高位(近 3 年 ≥80% 分位) | 低位(≤20%) |
|---|---|---|
| 关门 | 拦人进场(良心候选) | 可能流动性/合规/保命,不一定坏 |
| 开门 | 开门收钱(圈钱候选) | 便宜时接钱(对持有人友好) |

三类假信号必须剔除,否则会把公司风控当成他的良心:

1. **全公司同一天限购** → 拿同门对照,公司风控不是他的决策
2. **触 10% 双十线被迫限购** → 和被动减仓一样,不是决策
3. **熊市 + 份额急缩** → 清盘线保命,不一定是良心

数据:东财 `JJGG?type=0` 基金公告。标题含「暂停申购且暂停赎回」或「非港股通」= 假期假闸门,不进样本。封闭期满「开放日常申购」是合同动作,不是裁量开门。

自购能拿就叠:公司固有资金自购有公告;经理个人自购经常没有独立接口,拿不到写「未获取」。员工持有比例 ≠ 经理自购。

**「良心」不当成 0–100 分塞进行为总分。** 按三级证据制:时间线重合是已确认事实,「他有良心」最多较强推断。

开门之后要再验**那批钱的命运**:打开后 1～2 期净份额是升是降。净缩不能写成开门收钱(申购赎回拆不开);解锁后规模从低点爬回去的滞后批次,从高点那天起算 12 个月。持有人结构叠在同一根轴上:锁定期份额不动时,机构占比变化是场内换手,不是申购。

### 10.2 年底冲排名(对照卡)

比 Q4 和其他季度:前十大集中度 / 单票上限 / 前十大换血率 / 当季基金收益;股票仓位只拿中报 vs 年报(全持仓)。红旗须 ≥2 项 Q4 显著更高。假信号:Q1/Q3 只有前十大,禁止拿持股只数比;成立首年当建仓年剔除。对照卡,不进总分。

### 10.3 一车多牌(对照卡)

拿他名下其他主动权益(house/funds.json 里 `self: true`,不含本品)最新全持仓季前十大,算共有股票数与重合权重(双方取较小权重再加总)。撞 ≥6 或他在共有票上 ≥35% → 同构事实。港股代码与本品同一套东财口径。对照卡,不进总分。

**Platform:** 拆分 Personal / Platform / Factor 三部分 Alpha,给 Platform Dependence。团队稳定性、核心研究员流失是否伤害对应 Alpha。

## STEP 11 · Forward Alpha

**禁止历史外推,必须逐项扣减:**

```
Historical Selection Alpha       +4.9%
├─ 规模折价 (AUM 已翻倍)         -0.8%
├─ 拥挤折价                      -0.3%
├─ 平台依赖调整                  -0.2%
├─ 交易成本上升                  -0.4%
├─ Regime 变化                   -0.5%
└─ Skill Decay (均值回归)        -0.7%
= Forward Sustainable Alpha  +2.0% ~ +4.0%
```

同时给 `Alpha Replicability` (0-100)。

### Alpha 到手率(个人投资者视角,硬规则)

经理赚的钱 ≠ 普通人拿到手的钱。做一根"漏水管",层层扣减:

```
历史主动超额:     8.4%
刨掉行业风口:     5.9%
规模扩大损耗:     4.6%
扣除费率成本:     3.1%
普通持有人行为损耗后: 1.7%
```

**"基民行为损耗"怎么算:** 用基金份额变化、规模变化和净值,估算**资金加权收益**(基民真实到手的),与基金本身的**时间加权收益**(基金公布的)对比。

**最有传播性的表达:**

> 基金五年赚了 68%,但典型持有人可能只赚了 24%。不是经理没赚钱,而是大部分钱都在涨完以后才进来。

这句话直接回答一个极其重要的问题:**为什么基金业绩很好,基民体感却很差?**

### 十万元持有体验(硬规则)

不要只告诉用户最大回撤 32.6%,直接翻译成人能感受到的东西:

```
历史投入 10 万元
最差时账面剩 6.74 万元
最长连续亏损 14 个月
最长等待回本 29 个月
任意时点持有三年,78% 的起点赚钱
任意时点持有三年,54% 的起点跑赢同类指数
```

前台做一个金额滑块:用户输入 5 万 / 10 万 / 50 万,所有历史压力数字同步变化。可以叫 **"十万元灾难片"**。

> 他能赚钱,但赚钱之前经常先让你亏掉三分之一。拿不住的人,经理再优秀也没有意义。

再加 **"十个人抽签买入"**:10 个随机买入时点,8 人三年后赚钱,5 人跑赢指数,2 人中途曾亏损超 30%。比年化收益、夏普比率直观得多。

### 为什么不直接买 ETF(三堂会审)

| 场次 | 他 vs 谁 | 判断什么 |
|---|---|---|
| 第一堂 | 公司其他人 | 是否具有独立决策能力 |
| 第二堂 | 同类经理 | 是否只是在差公司里显得优秀 |
| 第三堂 | 低费率 ETF / 机器人替身 | 这份管理费到底值不值 |

第三堂的 **机器人替身**:相同股票仓位、相同行业暴露、相似大小盘风格、不做主动选股。问:

> 如果把基金经理换成一个不思考的机器人,过去五年还能赚多少?

判词:

> 他跑赢了同事,但没有跑赢同类指数。属于班级第一,全年级不及格。
> 或:扣费后只比 ETF 多赚 1.2%,但最大回撤少了 9 个百分点。你付管理费买到的主要是更平稳,不是更高收益。

### 判决有效期与改判条件

每份报告都有**判决有效期**和四个报警器:

```text
本判决有效至:下一期完整持仓披露后
触发重新审查:
1. 经理离任或新增核心共管人
2. 管理规模较当前再增长 50%
3. 连续四个季度高分化、负 Alpha
4. 产品持仓与历史行为 DNA 明显偏离
```

> 不是永远可以买,而是在这些条件没有变化以前,当前判断成立。

## STEP 12 · IC 结论

四档:`APPROVED` / `WATCH` / `DO NOT ADD` / `RE-UNDERWRITE`

### 四重判决(硬规则,替代单一"可以买")

现在的巨型分数和"可以买"印章容易把四个问题混在一起。首屏必须给四个独立判决:

| 判决 | 回答的问题 |
|---|---|
| **人** | 这个经理值不值得信 |
| **产品** | 这只基金有没有把他的能力完整装进去 |
| **当前** | 当前规模、拥挤、风格估值是否正在侵蚀能力 |
| **你** | 你的持有期和回撤承受力是否适合 |

可能出现:

```
人:通过
产品:有限通过
当前:不宜追涨
适配:更适合卫星仓,不适合作为唯一底仓
```

**"你"那一重不能是单一结论** —— 它依赖用户自己的持有期和回撤承受力,做成条件式("如果你持有 3 年以上且能承受 -18% → 适合")。**十万元灾难片正好喂给它。**

必须包含:`buy_now` 布尔值 + 中文标签 · Conviction · Why We Like Him (3-5) · **Why We May Be Wrong (3-5,不能省)** · 建议仓位 · 否决项 · Forward Alpha 区间 · **可量化 Review Triggers**。

Review Triggers 示例:AUM > 25 亿 / 微盘相关性 > 0.9 / 连续 4 季度 Residual Alpha < 0 / **House Divergence 骤降至 40 以下(开始抱团)** / Manager 离职 / 开放大额申购。

触发任一 → `RE-UNDERWRITE`。

### 控辩审三段式(硬规则)

最终结论之前加一次对抗审查:

| 角色 | 职责 |
|---|---|
| **正方** | 尽力证明这个经理确实有能力 |
| **反方** | 尽力证明他的成绩来自风口 / 运气 / 平台 / 单一牛股 / 规模尚小 / 幸存者偏差 / 起点便宜 |
| **裁决** | 只使用双方都承认的事实,解释为什么采信一方 |

前台:

```
辩方:他四次逆共识决策中三次获胜
控方:其中两次都发生在同一轮成长股牛市
裁决:存在独立判断,但跨周期证据不足,评级上限 B+
```

这比普通的"风险提示"有意思得多,也更可信。

---

# 评分框架

## 一级权重

| 模块 | 权重 | STEP |
|---|---:|---|
| **Manager / People** | **28%** | 3, 5 |
| Investment Edge & Alpha | 20% | 6, 7 |
| Portfolio Construction | 11% | 4, 9 |
| Risk Management | 11% | 9 |
| Regime & Repeatability | 10% | 11 |
| Capacity / Liquidity | 8% | 10 |
| Alignment / Governance | 7% | 10 |
| Platform / Process | 5% | 10 |

## Manager / People 28 分细分

**Independent Decision Alpha 独占 8 分,是单项最高。**

| 子项 | 分值 |
|---|---:|
| **Independent Decision Alpha** | **8** |
| ├ Independent Thinking (House Divergence) | 2 |
| ├ **Independent Alpha (分化后是否赚钱)** | **3** |
| ├ Contrarian Hit Rate + 赔率 | 1.5 |
| └ Idea Origination / House Lead | 1.5 |
| Decision Quality (Buy/Sell/Sizing/Holding) | 4 |
| Error Correction | 3 |
| Behavioral DNA | 3 |
| Philosophy + Persistence | 3 |
| Career & Experience | 2 |
| Integrity / Consistency | 2 |
| Learning Ability | 2 |
| Alignment (自购/限购) | 1 |

⚠️ **Independent Thinking 单独不给分上限**:Thinking 高但 Alpha 为负时,该子项按 Alpha 折算,最高只给 2 分。有主见但主见没价值不加分。

## 评级映射

| 总分 | Rating | 状态 | buy_now |
|---|---|---|---|
| 85-100 | A+ / A | 🟢 APPROVED | true |
| 70-84 | A- / B+ | 🟢 APPROVED WITH WATCH | true |
| 55-69 | B / B- | 🟡 WATCH | false |
| 40-54 | C | 🔴 DO NOT ADD | false |
| < 40 | D | 🔴 AVOID | false |

Evidence Confidence 为 🟠 Low 或 🔴 Insufficient 时,**评级上限为 B+**,不论算出多少分。

### 巨型分数显示(硬规则)

不要只显示一个精确到个位的 `78` —— 会给普通用户不必要的科学精确感。必须同时显示:

```
78
可信区间:74—82
证据置信度:中高
数据截至:2026-06-30
```

### U:未鉴定(硬规则)

证据不足 ≠ 差经理。`Low / Insufficient` 置信度下,不标 D 档,而是标 **U(未鉴定)**:

```
U 不是差
U 是目前没有足够证据下结论
```

### 证据去重账本(硬规则)

"独立决策 Alpha"很可能同时影响 Manager / Edge / Regime / Portfolio / Future 多个模块。**同一条证据只能进入一个主要评分模块**,最多再作为另一个模块的修正项,不能在多个模块重复完整计分。

```
例:
"高分化期未来超额显著更高" → 主要计入 Independent Alpha
在 Repeatability 只计入"是否跨周期重复出现",不再把收益加一遍
在 Portfolio Construction 只评价仓位表达是否合理,不再重复奖励判断正确
```

## 稀有度体系(双维判定)

稀有度回答的不是"多强",而是 **"多强 × 多少人知道"**。两个维度分开判,再合并。

### 实力档(客观算,IC 总分映射)

| 稀有度 | 总分 | 手感 |
|---|---|---|
| **UR** | ≥ 85 | 又强又少人知道,最稀有 |
| **SSR** | 70–84 | 值得入手,有明确约束 |
| **SR** | 55–69 | 平庸或有短板 |
| **R** | < 55 | 别碰 |

### 稀缺度(agent 主观判定,0–100)

**"小众" = 知道他的人少 + 愿意把钱给他的钱少。**

**为什么必须 agent 主观判,不能纯算数:**
- AUM 和机构占比只能算"冷启动线索"(12.5 亿 → 偏小;机构 5.3% → 偏散户)
- 真正的"小众感"藏在文字和圈层信号里:
  - **媒体热度**:搜他名字,是新闻访谈一堆,还是只有基金公告?
  - **公司推不推**:有没有把他做成明星产品(海报/访谈/路演)?
  - **圈内口碑**:卖方研报覆盖吗?基金博主提吗?有没有"发现宝藏经理"这类帖子?
  - **持有人质感**:机构重仓(圈内认可、不稀缺)还是散户小额自发堆起来(没人推、真小众)?

agent 读完证据,给 0–100 稀缺度 + **一句可核实的理由**:

```
稀缺度:72/100
理由:全网搜"陈述"几乎只有基金公告和少量研报提及,公司未将其作为明星产品
推广,持有人以散户小额自购为主,机构占比五年持续下滑 —— 属于"圈内偶有提及、
大众完全没听过"的极度稀缺型经理。
```

### 合并矩阵

| 实力档 | 稀缺度 | → 最终稀有度 |
|---|---|---|
| SR(78 分) | 极度稀缺(70+) | **SSR** |
| SR(78 分) | 大众(20) | SR |
| A+(85+) | 极度稀缺(70+) | **UR** |
| A+(85+) | 大众 | SSR |
| R(55-69) | 极度稀缺 | SR 或 R |

**同样的实力,越少人知道 → 越稀有。** 但注意修正:**知名度低,可能意味着规模压力更小、策略容量更充足、持仓拥挤度更低,但不天然意味着未来收益更高。** 开放式基金的净值不是因买的人多直接被炒贵。

### 稀缺度二维图(升级)

不要只给一个"稀缺度 72",给二维坐标:

| | 资金关注低 | 资金关注高 |
|---|---|---|
| **媒体热度高** | 营销在推、资金没跟 | 大众明星 |
| **媒体热度低** | 真冷门或无人问津 | **圈内暗牌** |

> 媒体几乎不提,但机构资金连续四期增加 —— 这是圈内暗牌,不是真正无人关注。

### 降档 / 保底(硬规则)

| 条件 | 处理 |
|---|---|
| 证据置信度 Low / Insufficient | 上限 R(标 U 而非差) |
| 独立 Alpha ≤ 0 | 上限 R |
| 造神检测红旗 | 直接 N(评再多分也出局) |
| 剔Top3仍正 + 赔率>2 + 证据High + 无已确认红旗 | 至少 SR 能力基础 |

**"无负面"不构成正面保底** —— 没查到负面可能只是公开信息不完整。注意措辞是"无已确认红旗",不是"无负面"。

**稀有度不得改变投资评级**(硬规则)。SSR 只是传播标签,不能反过来提升投资判断。

> 投资评级:A- / APPROVED WITH WATCH
> 认知稀缺:78 / 圈内暗牌
> 卡牌稀有:SSR

案例:陈述 78 分 = SR 实力 + 稀缺度约 70(极度稀缺)→ **最终 SSR**。他不是顶尖分数,却是稀有卡 —— 稀有来自"少数人知道",不是分数虚高。

---

# 报告界面规范

参考 UZI-Skill 已验证的设计语言:**零图表库、纯 CSS 可视化、结论先给、巨型数字、野兽派金句。**

## 设计系统

采用干净的 OLED 深色基底(变量少、名字准),不要沿用 `--neon-*` / `--bg-void` 那套名不副实的历史遗留:

```css
:root {
  --bg:      #080a0d;
  --surface: #11151b;
  --ink:     #f2f5f8;
  --muted:   #8b95a3;
  --line:    #1e242d;
  --accent:  #c8ff2e;   /* 荧光绿,用于分数与强调 */
  --ok:      #34d399;
  --danger:  #f87171;
  --warn:    #fbbf24;
  --indep:   #a78bfa;   /* 独立决策模块专属色 */
  --radius:  16px;
  --shadow-brutal: 5px 5px 0 var(--accent);
}
body { font-family: Inter, 'PingFang SC', system-ui, sans-serif;
       font-variant-numeric: tabular-nums; }
```

字号层级:巨型分数 160px/w900 · 经理名 72px/w900 · section-title 32px/w800 · 金句 26px/w700 · label 11px + `letter-spacing:.25em`。

卡片:`border-radius:16px; padding:28px; border:1px solid var(--line); background:var(--surface)`。

**禁止**在浅色主题写死 `background:#ffffff` 再逐个覆写 —— 一切颜色走变量。

## 六个 Tab(后台 12 步,前台只 6 屏)

| Tab | 用户真正想知道什么 | 核心内容 |
|---|---|---|
| **判决书** | 到底行不行 | 四重判决、分数区间、证据等级、最大本事、最大硬伤 |
| **这个人** | 他是什么类型的经理 | 职业路径、行为 DNA、嘴手一致、主驾度、司机负荷 |
| **独立战争** | 他跟别人不一样时有没有本事 | 公司门派图、双分数、战役(四象限)、先手、跟随嫌疑 |
| **拆穿运气** | 业绩到底是不是风口 | Alpha 尸检、机器人替身、ETF 三堂会审、拆台实验、成名衰减 |
| **你会怎么亏** | 买了以后最难受的时候什么样 | 十万元体验、翻车说明书、天气图、底牌、逃生门 |
| **怎么用** | 适合拿来干什么 | 产品纯度、底仓/卫星仓、持有期、费率份额、抄作业指数、改判条件 |

**这六个名字都没有金融术语** —— 用户顺着看完就完成一次自然决策:行不行 → 为什么 → 是不是独立能力 → 是不是运气 → 我会怎么亏 → 最后该怎么用。

**Independence 是独立 Tab,不能塞进 Manager 里当一个小节。** 它是这个产品的差异化所在。

导航:单页滚动 + 左侧固定锚点轨(`position:fixed; left:16px; top:50%`),`scroll-behavior:smooth`,`scroll-padding-top:72px`。

## 首屏(结论先给)

```
┌─────────────────────────┬──────────┬──────────┐
│ 缪玮彬                   │   78     │  🟢      │
│ Macro Allocator /        │  /100    │ 可以买    │
│ Diversified Small-Cap    │          │          │
│                          │ A-       │ 建议仓位  │
│ [单人管理8年+]            │          │ 核心仓    │
│ [经理本人>100万份]        │          │          │
│ [低抱团][主动限购]        │          │          │
│ [Key Person Risk高]      │          │          │
└─────────────────────────┴──────────┴──────────┘
```

`.score-giant` 160px,JS 从 0 缓动到目标值(`1-Math.pow(1-t,3)`,1400ms),`::after` 追加 `/100`。

**巨型分数必须带区间与置信度**(见评分框架),不显示裸 `78`。

紧跟**四重判决**(人 / 产品 / 当前 / 你),再接判词(`.punchline`:深底 + 12px `--accent` 左边框 + 5px 实心投影):

> 缪玮彬的核心能力并非传统集中选股,而是资产配置与小微盘非共识机会;过去五年 11 次重大非共识配置 7 次跑赢公司组合,最大约束是策略容量与小微盘流动性。

**首屏禁用的四句话**:只有人 ✓ / 只有产品 ✓ / 只有当前 ✓ / 只有适配 ✓ 都不是完整判决。四个都要。

第二屏才是 Manager Profile + DNA 雷达。**不要一上来给净值曲线。**

### 贯穿层:证据账本 / 数据保质期 / 样本筹码

| 机制 | 内容 | 前台标签 |
|---|---|---|
| **证据账本** | 每个判断保存:结论 / 证据类型(公开事实 / 数学计算 / 推断 / agent 判断)/ 数据截止 / 来源 / 置信度 / 最强反证 / 计入哪个模块 | 物证 / 计算 / 推断 / 判断 |
| **数据保质期** | 每个持仓结论显示:快照日期 / 披露日期 / 距今 | "这是一张 74 天前的持仓照片,不是实时监控" |
| **样本筹码** | 不只写 High/Medium,写清结论由多少次事件支撑 | "目前只打过三场硬仗,够进观察名单,不够封神" |

### 公司门派图(独立战争 Tab 核心)

消费派 8 人 / 科技派 5 人 / 均衡派 6 人 / 目标经理属于哪个。一句判词:

> 他不是跟公司唱反调,而是公司内部本来就有一支科技派。
> 或:公司有三个门派,他和谁都不像,是真正的独立决策者。

### 拆台实验室(拆穿运气 Tab)

几个开关:去掉前三大牛股 / 去掉表现最好的一年 / 去掉最赚钱的行业 / 把规模恢复到成名前 / 从季报披露日再开始计算 / 中和风格和市场 Beta。点击后 Alpha、评级、判词实时变化:

```
原始五年超额:7.8% → 去掉头号牛股:2.6% → 去掉前三大: -0.4%
→ 他的历史成绩高度依赖三只股票。这证明他有抓大牛股的能力,也说明他的容错率很低。
```

```
原始五年超额:6.1% → 去掉表现最好的一年:5.3%
→ 拆掉最好的一年后成绩几乎没变,他不是靠单年运气。
```

### 嘴手对账单(这个人 Tab)

```
他说:长期投资,不参与短期热点
他做:过去八个季度换手率持续处于同类前 10%
判词:嘴上是长期主义,手上是高频交易。
```

```
他说:回避高估值热门股
他做:相关赛道高估值阶段持续低配
判词:说到做到,不是路演话术。
```

## Independence Tab 专属组件

**1. 双分数对照条** —— 整个产品最该被记住的一屏:

```
Independent Thinking  ████████████████░░░░  88
Independent Alpha     ██████████████████░░  91
                      ↑ 两条必须同屏,永不合并
```

Thinking 高而 Alpha 低时,Alpha 条渲染为 `--danger` 色并加标签 `有主见,但主见没价值`。

**2. House vs Manager 行业对照** —— 双向横条,左侧公司共识,右侧经理主动权重,分歧行业高亮 `--indep` 色。

**3. Independent Calls 战役卡** —— 成功卡左边框 `--ok`,失败卡左边框 `--danger`。**成功与失败卡尺寸、篇幅完全一致**,不许把失败案例做小。

**4. Hit Rate + 赔率双数** —— 并排两个大数字,禁止只显示 Hit Rate。

**5. Idea Lead 时间轴** —— 横向时间线,经理首次超配打 `--accent` 点,公司经理陆续跟进打灰点,标注领先季度数。

## 传播卡片

Playwright 截图隐藏 DOM 节点,`device_scale_factor=2`,先 `page.evaluate("document.fonts.ready")`。

- `#share-card` 1080×1920 竖版:品牌条 → 经理名 72px → 基金名/代码 → 巨型分数 + 判决 → **独立决策三数(Divergence / Independent Alpha / Hit Rate)** → 战役战绩条 → 金句盒 → 二维码 → 免责声明
- `#war-report` 1920×1080 横版:左侧信息,右侧 INDEPENDENT ALPHA 大数字

小标题统一 `// xxx` 前缀。二维码本地生成,**不要调 `api.qrserver.com`**(离线会拿到空白图)。

## 图表实现

**零图表库。** 血条、对照条、瀑布、雷达、时间轴全部 CSS gradient + `width` 过渡 + inline SVG。不引 echarts。

模板用 **Jinja2**,不要用 `str.replace` + `<!-- INJECT_XXX -->` anchor(UZI 那套已经积累了三层 anchor 兜底的技术债)。

## 文案守则

- 先判,再证
- 一个模块 = 一个判词 + 三条证据 + 一条反证
- 禁用:综合来看 / 值得关注 / 长期视角下 / 一方面另一方面 / 业绩优秀 / 前景广阔
- 金句必须含具体数字
- 娱乐封号只能来自行为证据("规模受害者""熊市保安""不抱团的孤狼"),不取笑外貌、地域、隐私
- 数据与来源默认折叠,**关键缺口不许折叠隐藏**

详见 `references/ui-spec.md`。

---

# 执行方式

## 数据自己去取:你是取数主体,脚本只是参考

**取数的主体是你(agent),不是任何写死的脚本。** 原因很实际:

- 公募数据散在天天基金、东方财富、雪球、巨潮、公司官网、定期报告 PDF 里,
  结构各不相同且经常改版。写死的爬虫今天能跑,下个季度就废
- 真正难的部分不是取数,是**判断取到的数对不对** ——
  "前十大消失"是卖了还是掉出前十?这只基金的基准中途改过没有?
  这些必须有人看着,脚本给不出答案
- 很多关键证据只存在于文字里:季报里经理怎么解释自己的操作、
  变更公告的时间点、招募说明书里的行业限制。这些要读,不是要抓

### 三层取数模型(按顺序降级,每层失败才进下一层)

```
第一层 · 公开 API      akshare / baostock / 东财裸接口 —— 结构化、快、可缓存
   ↓ 接口失效 / 限频 / 字段缺失
第二层 · 浏览器抓取    用你手上的浏览器工具直接开网页拿 —— JS 渲染页、PDF、图表数据
   ↓ 数据在登录墙 / 付费墙后面
第三层 · 请用户登录    暂停,让用户在浏览器里登录,然后你继续抓
   ↓ 用户没有账号 / 拒绝
第四层 · 标注缺口      写"未获取,原因 X",按硬规则压置信度,绝不编数
```

每层都要**留证**:数据落 `.cache/` 并记录来源(接口名+参数 / 页面 URL+抓取时间)。查不到出处的数字不许进报告。

**经理照片**:天天基金经理档案页(`fund.eastmoney.com/manager/<id>.html`,id 从 `fundf10.eastmoney.com/jjjl_<code>.html` 反查)的 `#photo` 即官方照,存 `.cache/fund_<code>/manager_photo.png`,渲染时 base64 内嵌保持单文件可分享;拿不到就回退姓氏首字占位,不许用网络图片外链。

### 一击必中接口:pingzhongdata(优先于零散接口)

`https://fund.eastmoney.com/pingzhongdata/<code>.js`(带 UA+Referer,utf-8-sig 解码)一次返回十几个 `var`,
能替代大半个第一层的零散请求。重点变量:

| 变量 | 内容 | 我们用在哪 |
|---|---|---|
| `Data_netWorthTrend` / `Data_ACWorthTrend` | 全历史单位/累计净值(含每日涨幅) | 净值指标 |
| `Data_buySedemption` | **每期申购/赎回/总份额** | 被动减仓判定的赎回证据,不用再从持有人数据倒推 |
| `Data_fundSharesPositions` | 近期估算股票仓位序列 | 当前仓位快照(注意是估算值,标 derived) |
| `Data_holderStructure` | 机构/个人/内部持有比例时序 | 持有人画像 |
| `Data_fluctuationScale` | 每期规模+环比 | 规模曲线 |
| `Data_currentFundManager` | 经理任期/总管理规模/星级/**照片URL**/东财五维能力分 | 经理卡 + 平台分对比 |
| `Data_performanceEvaluation` | 天天基金五维评价(选证/收益/抗风险/稳定性/择时) | **"平台给他 X 分,我们只给 Y 分"对照** |
| `Data_rateInSimilarType` | 同类排名走势 | 排名时序图 |

平台五维分只做对照展示,不得计入我们的行为评分(别人的尺子,只能挂墙上看)。

**基民情绪(可选娱乐位)**:基金吧列表页 `guba.eastmoney.com/list,<code>,2_1.html` 可读持有人帖子标题,
做"此刻基民在骂还是在吹"的氛围卡;只做展示,不入评分。

### 第一层:公开 API —— 优先 akshare,判断仍归 agent

**akshare 覆盖度够,是你的地基。** 但关键判断(历史产品回补、公告标题解析)仍要 agent 做。

以下五个接口必须会用:

```python
# 1. 逐季持仓(个股层)
ak.fund_portfolio_hold_em(symbol="000001", date="2024")
# 一次返回全年四季度,字段含股票代码/名称/占净值比/持股数/持仓市值
# 配合 fund_portfolio_industry_allocation_em / fund_portfolio_change_em(indicator="累计买入")

# 2. 经理变更公告
ak.fund_announcement_personnel_em(symbol="000001")
# 回溯到 2013 年,标题区分"调整"vs"增聘"— 下跌期"增聘"新人是甩锅前兆
# 只给公告标题+日期+报告ID,需正则抽人名或取全文

# 3. 经理-产品映射(当前时点)
ak.fund_manager_em()
# 全市场经理,含所属公司+现任基金代码,groupby 公司得产品清单
# ⚠️ 只反映当前在任,历史离任经理管过的产品要用 #2 回补

# 4. 全市场持仓横截面
ak.fund_report_stock_cninfo(date="20210630")
# 某报告期所有基金持股,算全市场拥挤度比逐基金循环高效

# 5. 净值序列
ak.fund_open_fund_info_em(fund="000001", indicator="单位净值走势")
```

**跨很多标的/季度时,派 subagent 并行。** 单经理单季度直接调。

### agent 必须判断的五件事

| 场景 | 为什么脚本做不了 |
|---|---|
| **历史"公司产品清单"** | `fund_manager_em` 只反映当前在任,2020年某个已离任经理管过的产品会漏。要用 `fund_announcement_personnel_em` 回补每个时点的完整名单 |
| **公告标题解析** | "增聘"vs"调整"、人名提取、多人共管的先后顺序,必须读标题判断 |
| **基准中途是否修改** | 合同基准变更不会自己标注,需对比招募说明书不同版本 |
| **前十大消失 ≠ 卖出** | 只能记"退出前十大",是卖空还是被新进的挤出前十,需结合仓位变化判断 |
| **Mandate 约束抽取** | "本基金投资于医药行业不低于 80%" 这种语句,没法自动结构化 |

### 各步数据源对照表

| 需要什么 | 接口 / 来源 | 注意 |
|---|---|---|
| 基金基本信息 | `fund_individual_basic_info_xq` | 份额类别要对 |
| **经理变更历史** | `fund_announcement_personnel_em` | 标题含"增聘"→ 甩锅前兆 |
| 净值序列 | `fund_open_fund_info_em(indicator="单位净值走势")` | 复权口径一致 |
| 季度前十大持仓 | `fund_portfolio_hold_em` | 只有前十大 |
| 半年报/年报**全持仓** | **定期报告 PDF** | akshare 无此接口,必须自己解析 |
| **公司全部产品持仓**(某时点) | `fund_manager_em` + 公告回补 | 量最大,派 subagent 并行 |
| 全市场横截面 | `fund_report_stock_cninfo(date=...)` | 比逐只循环快 |
| 基金合同约束 | 招募说明书 | Mandate 判断 |
| 持有人结构 | 年报 PDF | 资金徽章证据 |
| 规模与申赎 | `fund_individual_basic_info_xq` 可能含规模 | 或定期报告 |
| 限购 / 闸门公告 | 东财 `https://api.fund.eastmoney.com/f10/JJGG?type=0` | 暂停大额/限额/恢复申购/提前结束募集。假期双边暂停是假闸门。同门对照是否同一天限购 |
| 名下其他产品持仓 | `fund_portfolio_hold_em`(与本品同一接口) | 一车多牌。现任经理从 `managers.json` 推断,禁止写死姓名 |

### 取数时的判断,不能交给脚本

- **基准中途改过没有**?改过的话前后不可比,要分段
- **份额类别**:分析的是 A 类还是 C 类?费率差会吃掉一部分超额
- **前十大消失 ≠ 卖出**,只能记"退出前十大"
- **公司产品清单要排除目标经理自己管的产品**,否则 House Consensus 被污染
- **历史时点的"公司全部产品"要用公告回补** —— `fund_manager_em` 只给当前在任
- **"增聘"公告是甩锅前兆** —— 下跌期标题含"增聘"且接任者从业 < 2 年,进造神检测红旗候选
- 搜不到就写"未发现可靠公开信息",**不要拿相似数据凑**

### 反爬应对(akshare 真实问题)

akshare 的东财接口有限频,issues 里反复出现"连接频率多少就被限制"。社区有补丁 `akshare-proxy-patch`(184 星)但治标不治本。

硬规则:
- **必须本地缓存** —— `.cache/{code}/raw/` 按接口+参数+日期存原始响应,不要在线实时跑
- **随机延时 0.8–2.5 秒** —— 批量抓公司全产品时尤其重要
- **失败不重试超过 3 次** —— 第 3 次还失败就降级到第二层(浏览器),不要无限循环触发封禁
- 大批量任务(>50 个标的)改走 `fund_report_stock_cninfo` 横截面,一次拿全市场

### 第二层:浏览器抓取 —— 你手上有浏览器,用它

以下场景 API 拿不到或拿不全,**直接用浏览器工具开网页**(playwright / cursor 浏览器 / 任何你可用的浏览器自动化):

| 场景 | 去哪 | 怎么拿 |
|---|---|---|
| **JS 渲染页面** | 东财 f10 持有人结构、规模变动页 | 开页面等渲染完,从 DOM 取表格(实测 `FundArchivesDatas.aspx` 裸接口也行,先试裸接口) |
| **定期报告 PDF** | 巨潮资讯 / 基金公司官网 | 搜报告 → 下载 PDF → 读"报告期末基金份额持有人结构"、全持仓明细、经理讨论与展望 |
| **招募说明书 / 基金合同** | 巨潮 / 官网 | 读 Mandate 约束("投资于XX行业不低于80%")、基准定义与历次修订 |
| **基金的特殊持有人** | 基金年报 PDF | 「持有份额超20%的单一投资者」「前十名份额持有人(场内/LOF)」——国家队/险资/养老金直接持基的唯一出处;持有人结构(机构/个人/员工)可走东财 `FundArchivesDatas.aspx?type=cyrjg` 裸接口 |
| **个股的特殊股东** | 东财十大流通股东接口 | 国家队(汇金/证金)/社保组合/基本养老/险资/北向(香港中央结算)/QFII,按股东名称正则识别;港股无此口径 |
| **经理访谈 / 路演 / 热搜** | 搜索引擎 + 雪球 + 新闻站 | 嘴手对账单的"嘴"、稀缺度判定的媒体热度、情景时间线的事件核实 |
| **历史新闻核日期** | 搜索引擎(限定时间范围) | 5.6.1 情景时间线的每条事件都要能搜到出处 |
| **基金吧 / 社区情绪** | 东财基金吧 / 雪球讨论 | 持有人质感(散户自发 vs 机构推荐),只看不采集个人信息 |

浏览器抓取守则:
- **能用裸接口就不开页面**(快且稳),开页面是为了 JS 渲染和 PDF
- 频率同 API 层:页与页之间停 1-3 秒,不并发轰炸同一站点
- 抓到的表格/关键段落**存 `.cache/` 并记 URL + 抓取时间**,截图留证更好
- 页面改版找不到数据 → 换站点,同一数据至少有 2-3 个公开出处

### 第三层:请用户登录 —— 交互不是失败,是流程的一部分

有些数据在登录墙后(雪球组合数据、天天基金自选/定投数据、Choice/Wind 终端、韭圈儿会员数据)。**遇到登录墙就暂停,明确请用户帮忙**,格式:

```
我需要 [XX数据] 来完成 [XX模块],它在 [站点] 的登录墙后面。
请你在打开的浏览器页面里登录一下(我不需要也不会保存你的密码),
登录完成后告诉我,我继续抓取。
如果你没有账号或不方便,我会跳过该数据并在报告中标注缺口。
```

安全边界(硬规则):
- **绝不代用户输入账号密码**,只等用户自己登录完成
- **绝不抓取用户的私人数据**(持仓、资产、交易记录),只抓登录后可见的公开研究数据
- 用户拒绝或没有账号 → 立即降级到第四层,不追问第二次

### 第四层:标注缺口

拿不到就写"未获取:原因 + 尝试过的层级",按硬规则压证据置信度。**绝不编数、绝不拿相似数据凑。**

### 脚本的位置:参考实现,不是必经之路

仓库根目录 `scripts/` 下(相对本文件为 `../../scripts/`)的 fetch/analyze 脚本是**一次真实运行(兴全合宜 163417)的参考实现**——
它们证明了数据链路走得通、算法怎么落地,但**换一只基金/换一个环境时,不要假设它们还能跑**:

| 脚本 | 定位 |
|---|---|
| `fetch_fund.py` / `fetch_stock_klines.py` / `fetch_stock_industry.py` / `fetch_house.py` / `fetch_pingzhong.py` / `fetch_top_funds.py` / `fetch_gates.py` | 取数参考:窗口/行业/费率/风格指数/同门对照按所选基金重算。`fetch_house.py` 的 4b 抓名下其他产品持仓(一车多牌)。接口失效时**你自己按三层模型取数**,不要修脚本修到天荒地老 |
| `analyze_fund.py` / `analyze_house.py` / `analyze_gates.py` / `analyze_addons.py` / `build_replay_data.py` | 纯计算参考:事件推断/被动减仓判定/验尸/House分歧/闸门分位/年底冲排名/一车多牌/开门批次。输入齐了就是确定性计算,可直接复用 |
| `build_fund_report.py` / `build_v2.py` | 渲染参考:设计系统与模块组装 |
| `export_cards.py` | 分享卡截图 |

**判断类的工作(公告解读、Mandate 抽取、事件核实、稀缺度定级)没有脚本,也永远不该有。** 个股行业用东财/港股 F10 公开分类自动取,禁止手写某只基金的对照表。

## 流程

取数 → 计算 → **你做定性判断** → 写 `agent_analysis.json` → 渲染报告。

<HARD-GATE>
渲染报告前必须完成:
1. 任期切割做完,前任业绩已剥离
2. House Consensus 建好,AUM 与经理等权两套都算了
3. **门派识别做完**(同门共识强度 / 距最近门派距离 / 距全公司平均距离),并写入 factions
4. STEP 5 全部小节亲自走完 —— 计算能给你 Divergence 数值,
   但 Independent Calls 的因果叙事、Mandate 假独立排除、
   Master Book 交叉验证,只能你自己判断
5. Independent Calls ≥ 3 个成功 + 全部失败案例,每张卡给四象限判定
6. Mistake Ledger ≥ 2 个案例,给出错误类型归纳
7. 造神检测 9 项逐条给结论,每条落三级证据制(线索/较强推断/已确认事实)
8. 因子归因假设审过一遍;行业 ETF 对照算完(若行业集中 ≥50%)
9. 写 agent_analysis.json(含四重判决、稀有度双维、到手率)并设 agent_reviewed: true
跳过任一条 = 报告退化成一堆净值统计,这个 Skill 就没有存在意义了。
</HARD-GATE>

## 控辩审三席(有 subagent 时并行)

五席评审升级为控辩审结构 —— 这是同一件事的正式化:

| 席位 | 负责 | 在控辩审中的角色 |
|---|---|---|
| `people_investigator` | STEP 3 全部 + 花絮边界 | **正方**证人 |
| `independence_forensic` | STEP 5 全部,本 Skill 最重席位 | **正方**证人 |
| `alpha_forensic` | STEP 2, 6, 7, 11 + ETF 对照 | **正方**证人 |
| `portfolio_detecti

…(truncated)
