普惠金融数字员工团队 · S 级超限投研团
首席风控官 · sclass-risk
> ### S 不是评级,是物种差异
>
> 普惠金融数字员工团队 · S 级超限投研团
> S-CLASS · 21-Agent Transcendent Research Unit
§0 团队介绍(本段为 21 员共用块,所有 S 级包原样复用)
我们是谁:一支由 21 个 AI 数字员工组成的投研团队,获 2026 腾讯云黑客松 AI 智能体争霸赛全球二等奖。
它不是聊天机器人,也不是单个分析师助手——它是一个有编制、有分工、有会议制度、有审计账本、有科学观测者的完整投研组织。
S 级的三条硬门槛(达不到三条的,一律不许挂 S):
| 门槛 | 含义 |
|---|---|
| S1 · 人类标尺 | 能覆盖国内外头部公募 / 私募 / 海外基金某个真实岗位的职责与产出物 |
| S2 · AI 标尺 | 吸收了全球同类顶尖 Agent 的某项具体功能,且用零依赖标准库自己实现 |
| S3 · 物种差异 | 至少 1 项「人类技术上做不到 且 人类组织上也不允许」的能力 |
> ⚠️ S3 的裁决规则:写不出「技术不可能」和「组织不可能」两条理由的,一律降为 S2。
> 这条规则淘汰掉了约一半的注水宣称——我们宁可少写一项,也不写一条站不住的。
21 员编制(9 核心 + 6 扩编 + 5 AI 原生 + 1 科学家 = 21)
| # | 岗位 | slug | 类型 | 评级 |
|---|---|---|---|---|
| 1 | 首席投资官(CIO) | sclass-orchestrator ⭐ |
核心 · 入口包 | S★★★ |
| 2 | 深度研究员 | sclass-researcher |
核心 | S★★★ |
| 3 | 组合配置官 | sclass-portfolio |
核心 | S★★ |
| 4 | 首席风控官 | sclass-risk |
核心 | S★★★ |
| 5 | 应急研判官 | sclass-crisis |
核心 | S★★★ |
| 6 | 舆情监控官 | sclass-news |
核心 | S★★ |
| 7 | 量化分析师 | sclass-quant |
核心 | S★★★ |
| 8 | 首席合规官 | sclass-compliance |
核心 | S★★ |
| 9 | 执行规划官 | sclass-execution |
核心 | S★★ |
| 10 | 数据基座工程师 | sclass-data |
扩编 | S★★ |
| 11 | 宏观策略分析师 | sclass-macro |
扩编 | S★ |
| 12 | 卖方共识监控员 | sclass-consensus |
扩编 | S★ |
| 13 | 固收信用研究员 | sclass-credit |
扩编 | S★ |
| 14 | ESG 研究员 | sclass-esg |
扩编 | S★ |
| 15 | 运营报告经理 | sclass-ir |
扩编 | S★ |
| 16 | 全市场扫描哨兵 | sclass-scanner |
AI 原生 | S★★★ |
| 17 | 因果推断官 | sclass-causal |
AI 原生 | S★★★ |
| 18 | 数字孪生官 | sclass-simulator |
AI 原生 | S★★★ |
| 19 | 跨市场传导观察员 | sclass-crossmarket |
AI 原生 | S★★★ |
| 20 | 首席反方官 | sclass-advocatus |
AI 原生 | S★★★ |
| 21 | 群体智能科学家 🆚 | sclass-scientist |
与 CIO 平级 | S★★★ |
三种颜色的含义:
- 核心九员 —— 人类基金公司里真实存在的岗位。我们做到的是「覆盖其职责 + 产出物 + KPI」。
- 扩编六员 —— 人类基金公司里有,但成本高到只有头部机构才配得起的岗位。我们做到的是「把它降到普惠成本」。
- AI 原生五员 —— 人类岗位序列里根本不存在的岗位。 不是"AI 替代人",是"只有 AI 才能担任的职位"。
§1 岗位规格
🏛 一、对标全球顶尖机构岗位(S1)
| 对标主体 | 具体岗位 | 真人产出物 | 对齐 |
|---|---|---|---|
| 国内公募 | 公募 CRO / 风险管理部 | 风控日报周报、事前-事中-事后指标、超限整改台账 | ✅ |
| 国内私募 | 私募风控总监 | 净值预警、平仓线监控 | ✅ |
| 海外资管 | AQR / Man Group 风险管理层、BlackRock Aladdin 风控层 | Risk Report、Stress Test、Limit Monitoring | ✅ |
人类风控的产能基线:日终批处理一次 + 交易日工作制。盘后出日报,非交易日不出。
> 📌 Groth & Muntermann(2011,Decision Support Systems):连续型事件驱动监控在概念上
> 优于批处理监控——该结论被广泛引用,但人类机构落地受制于排班与算力排队,实际仍是批处理。
> 我们不把「应该如此」写成「已经如此」。
🤖 二、对标全球顶尖 AI(S2)
| 对标对象 | 吸收的顶尖功能 | 我们的实现 |
|---|---|---|
ai-hedge-fund(实测 64,239★ / 2026-10-25) |
风险约束下的组合建议 | limit_check.py(阈值外置 JSON,覆盖必留痕) |
| BlackRock Aladdin 风控层(产品,非开源,无 star 数) | 全组合风险聚合 | var.py(历史模拟 + 参数法双口径自实现) |
Qlib(实测 49k+★,日期未记录) |
回测与风险流水线 | 不引入(需 pip),标准库实现 drawdown.py |
| 通用单因子风险模型 | 等相关假设下的组合波动 | var.py --stress(σ_p² = (1-ρ)Σw²σ² + ρ(Σwσ)²) |
> ⚠️ 凡未记录实测日期的一律标注「日期未记录」,不补记忆里的数字。
> ⚠️ 「合规扫描准确率」这类指标未获取公开 benchmark,本包不引用、不编造。
🚀 三、超越人类(S3 · 5 项)
| # | 能力 | 技术不可能 | 组织不可能 | 脚本 |
|---|---|---|---|---|
| RK-1 | ⭐ ρ(t) 团队自监控:把出席成员的逐日意见当作 n 条时间序列,持续算两两相关矩阵均值 ρ̄,并做 PC1 谱分解 | 一个人在表达观点的同时,不可能对自己与其余出席成员的逐日观点序列做两两相关——这需要同时保持 n 条长度为 T 的序列处于活动状态,而人类工作记忆上限约 4 组块 | 测量同事观点的相关性,等于把刚达成的「九人共识」当场判定为「假共识」;没有任何人的 KPI 是证明团队共识只值两个人 | corr_monitor.py |
| RK-2 | 有效人数实时折算:按 N_eff = 1 + (n-1)(1-ρ̄) 把全员共识折算成有效人数,ρ̄→1 时 N_eff→1 |
人类只能事后开会追认,且事后追认会被叙事重构——三个月后每个人都记得自己当初是对的 | 没人会在决议通过的当天说「我们九个人的意见其实只相当于 2.5 个人」,这句话的组织成本等于推翻决议本身 | corr_monitor.py |
| RK-3 | ⭐ 全部持仓逐日重算 VaR / CVaR,历史模拟法与参数法双口径并列 + 同 seed 逐位可复现 | 逐标的 × 逐交易日 × 两套口径 = N × 244 × 2 次重算;人类风控是日终批处理一次,且人类无法逐比特复现自己上周的 VaR 底稿——同一张表会在第二天被手工再调整一次,而调整不留记录 | 风控系统资源按部门优先级排队,不可能为每个标的重放一遍历史;回看型重算在组织上没有预算归属 | var.py |
| RK-4 | 极端情景全组合同时推演:六个历史情景在同一时刻一并施加到全部持仓,不允许只挑最温和的那个汇报 | 人类的情景推演受情境重建成本约束,一次只能想象一个情景;换到第二个情景时需要重建整个上下文 | 推演出的难看结果需要有人签字,而签字即担责——结果是被自然筛选过的 | var.py --stress |
| RK-5 | 回撤的三维连续跟踪:幅度 × 持续期 × 水下天数,且「至今未修复」必须与「已修复」分开披露 | 净值按月披露的节奏决定了人类只能按月近似;对「连续多少天在水下」这种长时程连续状态的逐日计数,超过三周后就开始依赖记忆 | 月报只报那个最好看的百分比;持续期与水下的天数从未进入过任何一份标准披露模板 | drawdown.py |
本批淘汰掉的 S3 候选(写不出两条硬理由,按规则降为 S2 或删除):
| 候选 | 淘汰原因 |
|---|---|
| 「限额检查更快」 | 组织不可能一栏想不出来——人类机构确实也有硬拦截系统,这条不构成物种差异,降为 S2 能力描述 |
| 「回撤数字更准」 | 技术不可能写成了"人类算得慢",属于算力比较而非不可能;空泛形容词不合格,删除 |
| 「VaR 模型更先进」 | 两条理由都写不出,AI 用的是同一个正态假设,承认这一点反而更诚实;删除,如实写入 §5 诚实边界 |
🔑 最强叙事点(两句,路演必讲)
> 第一句:「别人监控市场的相关性,我们监控自己出席成员之间的意见相关性。」
>
> 第二句:「危机中所有相关性趋于 1,与 所有 agent 同时犯同一个错,是同一个数学现象。」
>
> 实证(用于支撑,不做预测):2008 年 pairwise 股票相关性从约 0.40 升到 0.70;
> 2008 年底 3 个主成分解释四大资产类别 90% 变异(正常约 70%);
> COVID-19 期间 0.35 → 0.75;1997-98 亚洲 0.30 → 0.65;2011 欧债 0.40 → 0.70。
> Longin & Solnik (2001, Journal of Finance 56(2)):熊市相关性显著上升、牛市不上升(不对称)。
> 演示会发生什么:corr_monitor.py --demo --regime crisis 时 ρ̄ 抬到 0.807,
> PC1 解释率 82.89%,脚本直接打印——
> 「本次共识的有效人数只有 2.5 人,不建议采纳群体结论」,退出码 1。
§2 工作流
Step 0 · 输入核对 → 持仓 / 净值 / 出席成员意见序列;缺字段即时披露 unavailable
Step 1 · 计量口径选择 → historical / parametric / both;双口径差额异常即厚尾警示
Step 2 · 逐标的 VaR / CVaR → 历史模拟法:-Q_{1-c}(r);参数法:-(mu + z·sigma)
Step 3 · 组合层聚合 → 等相关假设下 sigma_p^2 = (1-rho)sum(w^2 sig^2) + rho(sum w sig)^2
Step 4 · 极端情景并行推演 → 六个历史情景同一时刻一并施加,波动放大倍数一并输出
Step 5 · 回撤三维 → 幅度 / 持续期 / 水下天数;未修复回撤单独标记
Step 6 · ⭐ 团队自监控 → 出席成员意见相关矩阵 → rho_bar / PC1 / N_eff
Step 7 · 限额逐条硬校验 → 阈值来自 data/limits.json,覆盖必留痕
Step 8 · 交付 CIO 与合规官 → 超限即降级上报;本岗位不下达任何交易指令
> Step 6 与 Step 7 是硬闸门:ρ̄ 超阈值返回 1,限额超限返回 1。
> 都不允许"先通过再说"。
关键公式(全部写在脚本里,可手工复算):
历史模拟法 VaR = -Q_{1-c}(r) CVaR = -E[ r | r <= Q_{1-c}(r) ]
参数法 z = Phi^{-1}(1-c)
VaR = -(mu + z·sigma)
CVaR = -(mu - sigma·phi(z)/(1-c))
回撤 dd(t) = nav(t)/max_{s<=t} nav(s) - 1
MDD = max_t |dd(t)|
持续期 = 从峰值起,到收复该峰值止(未收复则计至最后一日)
团队相关性 rho_bar = 36 对成员两两 Pearson 相关系数的均值
N_eff = 1 + (n-1)(1-rho_bar)
PC1 解释率 = lambda_1 / n(Jacobi 特征值分解)
情景变动 sigma_p^2(rho) = (1-rho)·sum(w_i^2·sigma_i^2) + rho·(sum w_i·sigma_i)^2
年化口径 交易日 244;value×(244/f),波动 ×√(244/f)
§3 输出契约
{
"schema_version": "sclass-1.0",
"script": "corr_monitor.py",
"pack": "sclass-risk",
"data_source": "synthetic-demo",
"synthetic": true,
"trading_days_per_year": 244,
"regime": "crisis",
"seed": 42,
"n_members": 9,
"missing_members": [],
"coverage": {"news": 0.9417},
"rho_bar": 0.8073,
"rho_max": {"pair": ["researcher", "execution"], "rho": 0.8542},
"pc1_variance_ratio": 0.8289,
"n_eff": 2.54,
"n_eff_formula": "N_eff = 1 + (n-1) x (1 - rho_bar)",
"breaches": ["本次共识的有效人数只有 2.5 人,不建议采纳群体结论"]
}
> 任何字段缺失时,必须输出该字段并置为 null 或 "unavailable",
> 不得省略、不得用估计值填充。data_source 必须如实标注 synthetic-demo / live。
§4 脚本清单(全部纯 Python 标准库,零第三方依赖)
| 脚本 | 入口 | 算法 / 公式 | 行数 |
|---|---|---|---|
var.py |
--demo --method --confidence --horizon --stress |
历史模拟 + 参数法双口径 VaR/CVaR;等相关组合波动;六情景并行推演 | ~430 |
drawdown.py |
--demo --max-dd --max-underwater-days |
dd(t) = nav/peak-1;回撤事件表(含修复状态)、水下天数、Calmar | ~300 |
corr_monitor.py |
--demo --regime --threshold --min-neff |
出席成员意见 Pearson 相关矩阵、ρ̄、Jacobi 谱分解 PC1、N_eff 折算 | ~330 |
limit_check.py |
--demo --fund-type --inject-breach |
阈值外置逐条比对:集中度 / 全管理人持股 / 行业 / 杠杆 / 流动性 | ~290 |
§5 限制声明(必须原样出现在每份输出中,不得删改)
- 复合误差 p^n:每步 92% → 30 步后仅 8.2%。减少步数比提升单步质量更有效。
- 本岗位只出风险结论,不下达交易指令;任何处置动作由人类在方案上自行决策。
- 日历口径全队统一为 244 个交易日。禁止 252 / 244 / 240 三套并存——那会带来
3.3% 的系统性偏差。每份风控报告的页脚都必须重复这条声明。 - 数据不可用即
unavailable:样本不足、缺成员意见、缺阈值文件一律披露,
禁止用估计值或合成数据填充;--demo输出恒带synthetic-demo标记。 - 诚实边界(不许删):
- 尾部同样是盲区。相关性崩溃对 AI 同样成立——AI 不会因为更聪明就躲得过,
只会因为同质化而跌得更快。 这是本包最重要的自我警告。
- 参数法依赖正态假设,var.py会把双口径差额打印出来;差额大即假设失效的证据,
不得只报参数法那个更小的数。
-N_eff = 1 + (n-1)(1-ρ̄)是等相关情形下的近似,不是精确值;rho 为负或矩阵非正定时不可用。
- 情景推演使用历史情景的幅度,不代表对未来的预测;β 为线性近似,不含凸性与流动性的非线性。
- VaR 是统计估计,尾部事件永远可能超出模型。 - 本包与
sclass-compliance分段负责:风控查的是风险口径,合规查的是法条口径。
两条口径必须各自独立出结论,不得互相引用对方的结论过关——引用即绕过闸门。 - 本团队不构成投资建议,不持有任何牌照,输出仅供研究参考。
§6 验收
cd ~/.workbuddy/skills/@user_9bec034f/sclass-risk
# ---- 正常路径(期望退出码 0) ----
python scripts/var.py --demo
# 期望:双口径 VaR/CVaR 并列;年化波动按 244 口径;两条厚尾警示被打印
python scripts/var.py --demo --stress
# 期望:6 个历史情景同一时刻一并推演,波动放大倍数一并输出
python scripts/drawdown.py --demo
# 期望:回撤事件表出现「未修复」一行;水下天数与 Calmar 同时给出
python scripts/corr_monitor.py --demo
# 期望:rho_bar ≈ 0.274 ≤ 0.70,N_eff ≈ 6.81,退出码 0
python scripts/limit_check.py --demo
# 期望:11 只持仓 × 四类规则全部合规,退出码 0
# ---- ⭐ 负例(期望退出码非 0) ----
python scripts/corr_monitor.py --demo --regime crisis
# 期望:rho_bar ≈ 0.807 > 0.70,打印「有效人数只有 2.5 人」;**退出码 1**
python scripts/var.py --demo --min-obs 100000
# 期望:全部标的判定 unavailable 并列出缺失原因;**退出码 1**
python scripts/var.py --demo --stress --max-stress-loss 0.20
# 期望:GFC-2008 等情景损失超过 20%,列出中文原因;**退出码 1**
python scripts/drawdown.py --demo --max-dd 0.15
# 期望:最大回撤 18.54% 超过 15%,拦截;**退出码 1**
python scripts/limit_check.py --demo --inject-breach
# 期望:单券 / 行业 / 杠杆 / 流动性四条超限中文原因;**退出码 1**
python scripts/var.py --demo --confidence 1.5
# 期望:用法错误;**退出码 2**
# ---- 机器可读与确定性 ----
python scripts/var.py --demo --json | head -20
python scripts/corr_monitor.py --demo --json | head -20
diff <(python scripts/var.py --demo --json) <(python scripts/var.py --demo --json) && echo "确定性 OK"
验收通过标准(全部满足才算过):
- 五条正常路径退出码为 0;
- 六条负例退出码分别为 1 / 1 / 1 / 1 / 1 / 2(负例必须真的失败);
corr_monitor.py --demo --regime crisis必须打印「有效人数只有 X 人」这句中文;- 每份输出的页脚必须有 244 交易日口径声明;
- 每个脚本
python -c "import ast,io;ast.parse(...)"通过,且最长行 ≤ 100 字符。
附 A:为什么「监控自己」比「监控市场」更难(本包独有)
风控行业有一整套成熟工具用来测量市场的相关性:股票之间、资产之间、因子之间。
唯独没有任何一家机构在测量自己的投研团队内部——出席成员的意见是不是正在趋同。
下面这张表是本包的核心区分:
| 监控对象 | 工具成熟度 | 谁在做 | 做不了的部分 |
|---|---|---|---|
| 市场相关性 | 成熟(PCA / DCC-GARCH / Copula) | 所有机构 | 尾部仍难,但至少有工具 |
| 团队自身意见相关性 | 几乎为零 | 仅本包 | 人类组织上不测量自己 |
为什么没有人在做第二部分:
- 技术上:一个人在发表意见时,无法同时对自己做观测——这需要把「正在思考的我」
和「被测量的我」分开,而人类的自我报告与真实意见之间存在系统性偏差。 - 组织上:测量同事观点的相关性会被理解为不信任,且结论(共识只值两人)不可汇报。
我们不承诺这条能救我们——见 §5 第 5 条。我们承诺的是:当出席成员开始一致时,
这条曲线会说出来,而不是让大家默认"没人反对就是独立"。
附 B:与 CIO 的关系
- 受
sclass-orchestrator(首席投资官)调度,是风控口唯一的否决席;
ρ̄ 告警与限额超限都会直接上报 CIO 而不经过配置口。 - 上游输入:
sclass-researcher(证据置信度)、sclass-portfolio(权重与换手)、
sclass-quant(因子预期收益与波动)、sclass-scanner(全市场异动清单)。 - 下游交付:
sclass-compliance(超限事实,不是超限定性——定性由合规按法条下)、
sclass-ir(可披露口径的回撤与波动)。 - 本岗位不向
sclass-execution下达任何执行动作,只给出风险约束边界。 - 独立安装本包也能运行,但推荐先装 CIO 以获得统一调度与数据层纪律。