第11章 五个场景
第 11 章 五个场景
引子:四位读者,同一个问题
第 10 章把边界划完了:AI 问数、诊断、成文,引擎产生数字,人负责判断和签字。道理讲完了,问题还剩一个最实际的——这套分工落到我的办公桌上,到底长什么样?
本章请四位读者登场。王岚,城商行金融市场部固收投资经理,管 FI-01(市值 64.00 亿),每周要被问「上周的收益从哪来」;陈默,券商资管 FICC 投资总监,管三个组合两个敞口,每天 8:45 开晨会;李铮,理财子固收投资经理,FIX-03(市值 46.66 亿)久期超标,被要求「不准卖券、一周内压回来」;赵一鸣,农商行债券交易员,手里 2 亿新资金,两周内要配出去。
四个人的岗位、机构、问题各不相同,但他们会用同一个东西回答自己的问题:**一套 AI + 估值引擎的实操包,和一句大白话。**本章的约定只有一条:五个场景里的每一个数字——持仓、盈亏、DV01、Carry——都由引擎产生,AI 只做三件事:选题、编排、成文。你可以盯着任何一个数字问「从哪来」,每个都有答案。
读法上给一个建议:五个场景不必顺序读。管组合的先读场景一,开晨会的先读场景二,做对冲的先读场景三,做配置的先读场景四,做完整调仓的读场景五——但每个场景末尾的「亲手试试」建议都做一遍,因为五个场景合起来,才是这套工具的完整用法。场景三、四不必先会场景五;场景五建议在一、三、四之后读——它要用归因签名、对冲试算和 Carry 恒等式,不重复讲。
11.1 开始之前:实操包里有什么
五个场景都跑在同一套环境上,先花一分钟认识它。随书配套的实操包是一个「解压即用」的文件夹,里面四样东西:
- Cursor 编辑器:请本机自装;AI 对话的地方,也是看报告的地方;
- MVE 示例批次:已经跑好的冻结批次
batch_20260904_210733,含持仓、行情快照、归因结果——报告里的数字都从这里来; - MCP Python 计算库:只读批次 + 六个工具(含
hedge_whatif/bond_unit_whatif/curve_lookup等进程内试算);包内无引擎 exe; - 离线资讯包:事先审过的债市资讯样本,供日初简报使用——AI 不联网抓新闻。

设计上有一条红线:不需要会 Python,不需要 pip install,解压后用本机 Cursor Open Folder,打开 hello-valuation 预生成页即通。五个场景的数字以冻结批 CSV 和 MCP 试算为准,不要把旧演示数当成本批事实。流程跑通了,把示例持仓换成你自己的(脱敏后),须在有引擎的工作区重跑批次。
还要交代一句五个场景共同的「看不见的地基」:王岚的报告、陈默的晨报、李铮的对冲方案、赵一鸣的排序表,以及王岚和李铮的建议单,读的是同一套引擎跑出来的同一批数据——同一批持仓、同一张行情快照、同一套条款处理。所以报表里的周收益能和估值岗的周报对上,晨报里的亏损归因能和风控例会的口径对上,建议单批次栏里的市值和久期也能对回同一张 CSV。这个地基怎么搭,是第 12 章的内容;本章只需记住:五个场景不是五个产品,是同一套口径的五个窗口。
11.2 场景一:报表生成——一句话,一份能进决策会的归因报告
痛点:半天拼一张表,会上答不上「怎么算的」
周一下午两点,王岚接到通知:周三上午的月度投资决策会上,每个投资经理用十分钟讲清楚「上周组合的收益从哪来」。搁在以前,她的流程是:找估值岗要持仓和盈亏表,找风控要归因分解,自己在 Excel 里把票息、利差、曲线几项拼成一张表,截图贴进 PPT——顺利半天,不顺利一天;而且会上一旦被问「这个数怎么算的」,她得当场翻三张表。
这一次,她打开 Cursor,只说了一句话:
王岚:帮我生成上周固收组合 FI-01 的归因报告,周三决策会要用,风格正式一点。
AI 在中间做了什么:五步,步步留痕
**第一步,确认口径,而不是急着动手。**AI 先把口语翻译成引擎参数:
AI:收到。先确认三件事:组合是 FI-01;时间窗是上周(2026-08-31 至 09-04);归因方法用 Campisi 框架(曲线、票息、骑乘、收敛、凸性、残差六项;本批信用利差效应为 0)。数据来自 9 月 4 日估值批次
batch_20260904_210733。开始取数。
口径先对齐,数字才不会错——这是第 4 章「绩效数字是定义出来的」在 AI 对话里的样子。
**第二步,检查数据在不在。**周窗 08-31 至 09-04 的组合指标齐全;本批没有 09-02(周三)独立日行——AI 会在报告里明确标注「该日数据缺失」,而不是悄悄编一个数(第 10 章纪律二)。昨日 DAILY(09-03→09-04)是 −496.91 万。
**第三步,取数——四组数据,全部来自批次。**组合总貌(市值 64.00 亿、面额 61.80 亿、久期 4.78、YIELD 1.52%;书中若写 YTM,即此字段)、周度 Campisi 六项、分品种贡献、已有的逐日 PnL。注意一个细节:这四组数据没有一个是 AI 算的,它们由批处理算好落在 CSV 里,AI 只是按语义读出来——批次优先,保证报告里的数和估值系统里的数是同一批数。
**第四步,编排成文。**归因六项排成表,分品种贡献画成瀑布图,再写三段结论。结论的写法有讲究:AI 只描述数字呈现的事实(「曲线贡献 +291.24 万,约占周收益的 71%;票息 +145.60 万次之」),不下投资判断(不说「建议加仓」)。
第五步,渲染成正式报表,HTML 加 PDF 各一份。

输出:核心一页长这样
报告标题《固收组合 FI-01 周度归因报告(2026-08-31 至 09-04)》,核心页是这张表:
| 归因因子 | 贡献(万元) | 占周收益 | 一句话解读(AI 撰写) |
|---|---|---|---|
| 曲线变动 | +291.24 | 71% | 本周主力:曲线重定价带来资本利得 |
| 票息收入 | +145.60 | 35% | 持有收息是第二大项 |
| 骑乘效应 | +19.83 | 5% | 利率债贡献约 +19.09 万 |
| 收敛收益 | −44.75 | −11% | 溢价券净价向面值靠拢为负 |
| 凸性效应 | +0.09 | 0% | 量级很小 |
| 残差项 | −0.25 | 0% | 六项加总与总损益对齐 |
| 合计 | +411.76 | 100% | 与估值系统周度 PnL 完全一致 |
本批六项表不单列利差格。分品种:利率债 30 只 / 60.49 亿 / 久期 4.97;信用债 2 只 / 3.51 亿 / 2.44。

报告附注里有一行小字:「本报告全部数字来自 MVE 估值批次 batch_20260904_210733,与估值系统同源;逐项可下钻至交易明细。」——第 10 章说的可追溯性,就落在这一行上。
改稿、登记与复核
初稿出来后,王岚提了两个要求:「分品种那张表加一列久期;另外这报告以后每周一早上自动出一份。」第一个要求,AI 没有重生成整份报告,而是在同一份报表脚本上加一列、重新渲染,十秒出新版。第二个要求更关键:AI 把报表登记为一个「配方」,挂到批后流程上——从此每周一批次跑完,配方自动重跑,报告静静躺在共享目录里,登记之后,不再经过 AI(第 10 章纪律四)。
周三会上,有领导问:「骑乘贡献 19.83 万,是哪几只券带来的?」王岚当场下钻,三秒调出明细(利率债约 +19.09 万)。会后她把这份报告和估值岗的周报并在一起核了一遍:总收益、票息、曲线,三项全部一致。区别只在于,估值岗的周报做了半天,她的这份用了一句话。
亲手试试
打开实操包,依次做三步:
- 对 AI 说:「帮我生成上周固收组合 FI-01 的归因报告,风格正式一点。」观察它先确认口径、再取数的过程;
- 改稿:「分品种那张表加一列久期。」体会「改脚本、重渲染」和「重新生成」的区别;
- 溯源:挑报告里任意一个数字,问「这个数从哪来」,让它给出批次号、指标名,并下钻到交易明细。
11.3 场景二:日初简报——八点整,邮箱里躺着一份晨报
痛点:晨会前的 50 分钟,看到什么全凭手速
陈默的一天从 8:45 的晨会开始。以前每个工作日早晨是这样的:7:50 到办公室,先刷资讯看隔夜发生了什么,再登录估值系统导出昨天的持仓和盈亏,再打开行情终端抄几个关键利率汇率,手忙脚乱拼成脑子里的「今日图景」。8:45 会上他讲什么,取决于早上 50 分钟里来得及看什么——看漏一条地方债供给消息,会上就可能被研究员问住。
现在,他 8:00 整会收到一封邮件。不是谁熬夜写的,是 AI 在每日估值批次跑完后自动生成、自动发送的。
触发:定时为主,口令兜底
主路径是定时的:每个工作日 7:30 批次跑完,7:45 简报脚本自动唤起,生成并发送。兜底是手动的——某周一 8:12,陈默在出租车上看完邮件,到办公室想再看细节,说了一句:
陈默:把今早的简报再发我一份,抄送晨会群。
AI:已重新生成。数据仍来自冻结批次
batch_20260904_210733(估值日 2026-09-04),与上一封内容一致——因为底层批次没有变。无邮箱则只出reports/文件,不上邮件。
这句回答看似平淡,实则关键:**同一批次、同一口径,重发一百次数字也不会变。**简报不是 AI 即兴写的,是从引擎结果里「取」出来的。
五个板块:一封邮件里的「今日图景」
邮件是 HTML 格式(手机上也舒服),标题《FICC 日初简报 · 2026-09-07(周一)》(用上周五 09-04 批次),正文五个板块:

**板块一 · 隔夜要闻。**来源是离线资讯包——前一交易日盘后至当日清晨的债市资讯,已按「政策 / 资金 / 债市 / 地方债供给 / 海外」打好标签。AI 只做两件事:按与陈默持仓的相关性排序,给每条写一句「与本组合的关系」。例如:「江苏披露下周新增专项债发行计划——本组合持有两只江苏地方债,发行人集中度 18.3%,接近 20% 的内部上限。」资讯是离线的、事先审过的;AI 不联网抓取、不生成新闻,只做筛选和关联。
板块二 · 市场变动。只写批次里有的曲线与市场指标。本批不单列 10Y 国债收盘——没有这一格就留空,不许自编 1.842%。可写的是组合 YIELD(FI-01 1.52%;书中若写 YTM,即此字段)和包内曲线键(如 CNY_SWAP_FR007_BGN 5Y par ≈ 1.512%)。
板块三 · 持仓与昨日盈亏。FI-01 / FIX-03 / PORT_EQ 各一行:市值、昨日 WINDOW_PNL DAILY、久期。FI-01 昨日(09-03→09-04)−496.91 万;FI-01 市值 64.00 亿、久期 4.78;FIX-03 市值 46.66 亿、久期 6.01。摘要只描述批次事实,不编「与某条自编行情一致」。同一批次里,FI-01 的 HS-VaR 1D:95 约 4126 万——不是「全量持仓贯穿整窗」的约 8616 万:250 日回看窗里有建仓过程,平均敞口低于估值日全量。
**板块四 · 今日关注。**批次的现金流预测与限额检查:本周到期的债券、今日付息的券、距离限额不足 10% 的指标,各列一条,带日期和金额。
**板块五 · 今日策略建议。**给入口,不替人拍板:「[P0] FIX-03 久期 6.01,压到 5.0 的公式缺口约 48.18 万/bp;期货 / IRS 试算见场景三,试算 ≠ 已对冲。」手数和名义必须来自 hedge_whatif,不能把试算手当成已发生。
还有一条兜底原则:如果某天批次跑失败,简报不会「硬凑」——邮件照发,但对应板块明确标注「今日批次缺失,本板块数据为上一估值日口径」,标题加黄色预警条。宁可明说没数据,不可悄悄用过期数——和第 3 章「错得清楚,好过错得安静」一脉相承。每封简报的 HTML 原件同时归档到 reports/——三个月后审计问「9 月 7 日晨会依据是什么」,答案就是这一封(数字仍指向 09-04 批次)。
陈默看到了什么
8:45 晨会,他的开场白变了。以前是「我早上看到的情况」,现在是:「今早简报三件事——资讯只来自包内 data/news/;FI-01 昨日 −496.91 万;FIX-03 压到久期 5.0 还有约 48.2 万/bp 的缺口,对冲仍是试算、不是已发生。研究员先说说资讯这条。」
AI 没有替他做判断,但替他完成了「对齐」:资讯、行情、持仓、建议,四件事在同一封邮件里、用同一批次的数字互相印证。他要做的,只剩下判断本身。
亲手试试
- 对 AI 说:「现在给我发一份今日简报。」对照邮件正文,逐个板块问「这块的数据从哪来」;
- 追问:「板块三里 FI-01 昨日 −496.91 万——把 DAILY 明细调出来我看。不要编 10Y 收盘。」
- 检查归档:打开批次的 reports 目录,找到今早那封邮件的 HTML 原件——想想三个月后审计来了,你拿什么给他看。
11.4 场景三:对冲策略——「久期太长了」,从一句话到两套方案
痛点:久期超标,但不准卖券
9 月初,债市连续调整。周五风控例会上,李铮被点名:他的「稳健添利」组合(FIX-03,市值 46.66 亿,16 只利率债)久期 6.01 年,超出产品说明书 5.0 年的上限;DV01 281.50 万/bp——利率每上行 1bp,敞口约 282 万。会议要求:下周内把久期压回 5.0 以内,但不准卖券——组合里的券多数是配置盘,卖了就实现亏损,还影响客户关系。
不卖出、只降久期,答案只有一个:用衍生品对冲。李铮打开 Cursor:
李铮:FIX-03 久期太长了,帮我用国债期货和利率互换做对冲。目标:久期从 6.01 降到 5.0 以内,DV01 缺口算清楚,两套工具各给一套方案。
AI 的计算过程:缺口、双方案、前后对比
**第一步,摸清家底。**AI 从当日批次读取 FIX-03 的风险指标:组合市值 46.66 亿,修正久期 6.01 年,DV01 281.50 万/bp。目标久期 5.0 对应目标 DV01 = 市值 × 5 / 10,000 ≈ 233.32 万/bp——缺口 = 当前 − 目标 = +48.18 万/bp,需要「做空」约 48.2 万/bp 的利率敞口。KRD 主要在 7–10Y(7Y 3.02、8Y 2.72、9Y 1.87、10Y 1.25),5–6Y 合计较小——这决定了 T 权重大于 TF。
第二步,方案 A:国债期货。hedge_whatif 按 KRD 权重分配:做空 TF2609 139 手(HIST 106.45)+ 做空 T2609 532 手(HIST 109.47)。口径:合约面额 100 万 × HIST 价 × 久期代理(TF=5 / T=7)/ 10,000,CF=1,非 CTD。同时,AI 给出了一段它必须说的话:
口径提示:本包无 2609 交割券静态行,手数不是 CTD 转换。实盘需补转换因子与基差。试算 ≠ 已发生 ≠ 指令。
**第三步,方案 B:利率互换。**对「增开 Pay Fixed 5Y FR007」做分档试算(包内曲线折现年金,不是完整 Vanilla Swap 引擎):
| 名义本金 | 互换 DV01 | 对冲后残差缺口 | 是否闭合 |
|---|---|---|---|
| 5 亿 | 24.06 万/bp | +24.12 万/bp | 否 |
| 8 亿 | 38.50 万/bp | +9.68 万/bp | 接近 |
| 12 亿 | 57.74 万/bp | −9.56 万/bp | 略超对冲 |
精确闭合缺口约需 10.01 亿 5Y Pay fixed。8 亿较接近(残差 +9.68 万/bp);12 亿会轻微 over-hedge。曲线键 CNY_SWAP_FR007_BGN,5Y par ≈ 1.512%。
**第四步,前后对比。**对冲前 DV01 281.50 万/bp;+1bp 即此数。本批压力情景下组合市值仍按市价锁定,曲线冲击打在 Z_SPREAD / DV01 上,不把 DV01×25bp 写成引擎重定价亏损。期货方案用 139+532 手把缺口压到接近零(非 CTD 近似);IRS 用约 10.01 亿闭合同一缺口。残余风险:期货是基差与 CTD 切换,IRS 是对手方与条款近似。对冲的目标从来不是把说明书允许的 5.0 久期也消灭掉。

追问中完善:方案是聊出来的
李铮盯着方案 A 看了一会儿,追问:
李铮:为什么期货要 TF 和 T 搭配着用?全用 10 年期的 T,手数更少,不是更省事?
AI:可以,但会引入新的风险。本批 KRD 主要在 7–10Y,worker 按权重把约 85% 分给 T、约 15% 分给 TF。全用 T 对冲,DV01 总量匹配了,期限结构没匹配——相当于赌曲线平行移动。TF+T 按 KRD 配比,赌的只是「各段的风险被各自的工具接住」。
李铮:两套工具的成本差多少?
AI:期货方案占用保证金(名义随手数与价格变,本包不报一个拍脑袋的保证金整数);互换方案不占保证金但占用交易对手授信,Pay Fixed 持有期内有负 Carry。两者都不免费——对冲的本质是用确定的持有成本,换掉不确定的利率损失。具体保证金与授信以柜台为准,试算栏不编。
这里值得停一下:AI 解释了两种工具的风险差异和成本结构,但没有替李铮拍板。「建议周一先做互换约 10 亿」这样的话,是李铮自己说的,不是 AI 说的。AI 把账算清楚、把风险摆明白,决策权留在人手里——这既是产品设计的边界,也是合规的边界(第 10 章)。
李铮看到了什么
五分钟后,他把两套方案连同对比表发给风控总监,附言:「两套方案都把久期往 5.0 收。期货灵活、可日内调整,但是 HIST×久期代理、非 CTD;互换更干净,占用授信,闭合名义约 10 亿。建议周一先按 8~10 亿互换锁定底线,期货留作日内微调。」
风控总监回了一个字:「可。」——因为方案里每个数字都能点开看到出处:DV01 来自批次,期货手数与 IRS 年金来自 hedge_whatif。这不是 AI 的建议书,是批次加试算的测算单,AI 只是把它翻译成了人话。
这一节是调仓的特例:政策把工具箱剪成「只许期货和 IRS」,现券动不了。139 / 532 手、约 10.01 亿互换,是 FIX-03 这条约束下的试算。若政策允许卖券、换券与衍生品一起议,完整四工具并列、产出建议单,见第 11 章场景五。
亲手试试
- 对 AI 说:「FIX-03 久期太长了,帮我用国债期货和利率互换各做一套对冲方案,目标久期 5.0 以内。」
- 追问:「为什么不全用 10 年期 T?」让它调出 KRD 分布回答;
- 复核:挑方案里任意一个数字(缺口 48.18 万/bp、TF 139 手、5 亿 IRS 24.06 万/bp),问「这个数从哪来」,追到批次公式或
hedge_whatif。
11.5 场景四:Carry 选券——先讲一道恒等式,再给一张排序表
痛点:2 亿资金,两周内配出去
赵一鸣的行里自营盘 30 亿,考核口径很朴素:持有收益。领导的原话是:「波段你做不过大行,就把票息和骑乘的钱挣踏实。」9 月第二周,行里一笔 2 亿资金到账,要求两周内配出去。他的问题是:当前市场上,买哪只券的「持有体验」最好?他问出了那句每个固收交易员都问过的话:
赵一鸣:帮我找当前市场上 Carry 最高的债券,2 亿资金,打算持有 3 个月。
AI 先讲了一道恒等式
AI 没有直接甩出一张排序表。它先花三行字对齐口径——因为「Carry 高」这个词,在不同系统里含义完全不同:
AI:先对齐口径。在引擎里,持有一段窗口的总损益满足一道恒等式:
窗口总损益 = 曲线变动 + 票息收入 + 收敛收益 + 骑乘效应 + 凸性效应 + 残差
其中「票息 + 收敛 + 骑乘」三项合称 Carry(持有收益)——它回答的是「如果市场一动不动,我拿着这只券能赚多少」。我按这个口径扫描,排序依据是 3 个月窗口的持有损益。曲线变动那一项是市场给的,不在本次排序内——这一点报告里会写明。
这道恒等式是整件事的地基(第 5 章的 Campisi 框架在这里换了副面孔出现):Carry 不是「票息高」的同义词——一只 3% 票息的折价券,Carry 可能跑赢 3.5% 票息的溢价券,因为折价券有收敛收益加持,溢价券的收敛是负的。AI 把口径讲在前面,后面的排序才有意义。
扫描:本批持仓 32 只,不是全市场
第一步,确定债券池:本包宇宙 = 冻结批 FI-01 持仓 32 只,不是全市场 86 只扫描池。第二步,逐券看前瞻 Carry 代理(票息 / 收敛 / 骑乘的年化拆解,≠ 已发生周 PnL)。第三步,利率债与分期信用债分开排序——信用债代理偏高,不可与利率债直接比。

输出:排序表 + 每只券的分解
报告标题《Carry 选券扫描 · 2026-09-04(持有窗口 3 个月 · 宇宙 = 本批 FI-01 持仓)》,主表(年化代理,bp):
| 排名 | 债券 | 备注 | Carry 代理(bp) |
|---|---|---|---|
| 1 | 230006.IB | 利率债前列 | 约 151 |
| 2 | 230004.IB | 利率债前列 | 约 141 |
| — | 240208.IB(24 国开 08) | 已在持仓,中游 | 不是本批第一 |
| — | 184775.SH | 分期信用债 | 约 505,不可与利率债直接比 |
AI 写清楚两件事:240208 已经在仓里,不是「市场上 Carry 最高」;184775 代理最高,但是分期信用,和利率债不同源。风险写在下面:若曲线走平,骑乘代理缩水——具体幅度跟批次个券走,不另编 32.6 bp。
报告末尾有两条脚注,AI 坚持保留:一,本表 Carry 为曲线口径(假设市场不变的理论持有收益),与持仓批次中实际发生口径的持有损益不同源,两者不可直接相加;二,排序不含信用风险与流动性调整。
赵一鸣看到了什么
他把报告转发给领导,附言:「2 亿 × 3 个月是意向,本包未做组合优化、未下单。利率债可看 230006 / 230004;240208 已在仓,不是第一;184775 代理高但不可与利率债比。」领导问:「这些 bp 是怎么算的?」赵一鸣把恒等式转了过去——**票息、收敛、骑乘,三项各有公式;已发生的周损益六项加总还能对上 +411.76 万。**前瞻代理不得加进已发生周 PnL。
这一节是调仓的前半段:只有「加」,没有「减」,也没有存量约束。若已有仓、要按策略地图同时加减并配期货或 IRS,见第 11 章场景五。
亲手试试
- 对 AI 说:「帮我找当前市场上 Carry 最高的债券,2 亿资金,持有 3 个月。」注意它先对齐口径再动手;
- 追问:「
230006.IB的 Carry 代理怎么拆?240208为什么不是第一?184775为什么不能和利率债比?」 - 验证恒等式:让 AI 把 FI-01 窗口损益六项加总,看是否等于 +411.76 万——这是「数字来自引擎」最硬的一句证明。
【进阶】固收策略地图——六种策略的归因画像
场景四做的是「Carry 选券」,但 Carry 只是固收策略地图上的一块。实务中一个固收组合的收益,几乎全部来自六种动作的某种组合。每种动作在 Campisi 瀑布上都有自己独特的「签名」——归因报告读得对不对,取决于你手里有没有这张地图:
策略 赚什么钱 瀑布上的签名 主要风险 失效环境 票息持有(Carry) 票面利率减去融资成本 票息格大且稳,其余格小 违约、融资成本上行 信用事件、资金利率飙升 骑乘(Roll-down) 曲线形态(陡峭度) 骑乘格显著为正 曲线走平或倒挂 曲线平坦化 利差策略 品种/期限/等级利差收敛 利差格持续为正 利差反向走阔 利差趋势性走阔 久期策略 利率方向判断 国债效应格大起大落 利率反向 利率横盘(赚不到也亏不多) 信用下沉 信用利差补偿 票息格偏高 + 利差格波动大 违约与利差走阔双击 信用收缩期 波段交易 低买高卖的价差 各格都不大、残差/交易项活跃 择时错误、交易成本 低波动横盘市 逐条点评。票息持有是最朴素的策略,签名是「瀑布只有一格」——票息格贡献九成以上;它的风险不在市场而在信用,所以读它的归因报告,第一眼看的不是收益而是「票息里有多少是信用补偿」。骑乘是场景四的主角:签名是骑乘格与票息格双高,风险对称地写在曲线形态上——4-5 年段走平 10bp,骑乘贡献缩水三分之一,这就是赵一鸣报告里那句风险提示的含义。利差策略赚的是「利差向均值回归」的钱,签名是利差格持续小幅为正;它的危险在于收益分布不对称——平时稳定赚小钱,利差走阔时一次亏掉几年的积累,和信用下沉是近亲。久期策略的签名是国债效应格的大开大合:利率下行月它是英雄,上行月它是罪人——读它的归因要配合第 5 章的择时检验(§5.5),区分「判断对」和「胆子大」。信用下沉的签名最具迷惑性:票息格高得像 Carry 策略,但利差格波动出卖了它;第 5 章那个「利差效应占收益 80%」的风控案例,就是这张签名被读出来的样子。波段交易的签名是「没有签名」——各格都不大,损益集中在残差附近和频繁的交易记录里;它最依赖 TCA(§4.3.4),因为交易成本决定这个策略的生死。
地图的用法有三层。立项时:策略说明书里写明「本组合赚哪格的钱」,归因报告就有了对照基准——第 5 章说过,归因对照的是策略说明书,不是盈亏本身(§5.8)。月度读报告时:签名漂移是早期警报——一个以 Carry 立项的组合,国债效应格连续三个月最大,说明它实际上在做久期策略,要么改说明书,要么改持仓。考核时:六种策略的「可复制性」排序天然不同——Carry 和骑乘是「持有即有」的钱,利差和信用下沉是「承担补偿」的钱,久期和波段是「判断对错」的钱;同样的 200 万,来自不同格子,含金量不同。
最后一句话回到全书主线:这张地图之所以能用,是因为 Campisi 瀑布的每一格都由同一引擎、同一口径产出——策略可以不同,口径必须相同,否则地图上比较的就不是策略,是各家的算法。地图读完,下一问是对照完怎么改持仓——见第 11 章场景五。

11.6 场景五:根据策略调仓——诊完怎么动,一页建议单
场景一把数拆开了,场景三算出了「不准卖券」时怎么压久期,场景四在空仓上排出了谁的 Carry 厚。中间缺的那一格是:仓已经在,骑乘还在不在,久期要不要收回中性——**先动哪几只,用现券还是用衍生品。**这一节只补这一格。产出是一页建议单,不是指令单。顺序钉死:盯,再诊,再议,再人定 policy,暂不自动下单。四个窗口看数,第五个窗口出建议单——投研是口径的下一格,不是另起一本策略书。
11.6.1 角色与窗口
周三投决会后半场。王岚刚讲完 FI-01 上周 +411.76 万从哪来——曲线 +291.24 万、票息 +145.60 万、骑乘 +19.83 万,附注里挂着批次 batch_20260904_210733。CIO 点点头,追问了一句:
CIO:骑乘和曲线都看清了,下周仓怎么动?
这不是场景一能答的。场景一把数拆开了;拆开之后,还要决定加哪只、减哪只、要不要用期货或互换把久期往中性收一收。会议室里没人接话。王岚看了一眼李铮——他刚在场景三里算过 FIX-03「不准卖券、只对冲」,那是工具箱被政策剪过的特例。FI-01 这回松一点:现券可以加减,衍生品也可以上。约束必须写在开口第一句,数量进建议单的「约束」列,不在嘴里拍。
王岚:本组合策略说明书是 Carry / 骑乘,不是久期博弈。单笔现券变动不超过说明书上限。你帮我出一页建议单:先盯再诊再议,加、减、期货、IRS 各一条,每条带试算。不要下单。
李铮:盯和诊你先做。批次号对不上,我这边试算没有基准。议的时候四条并列,我不替你勾。
陈默的晨报板块五给过一个入口,赵一鸣的排序表是加仓素材——两人这节不出场。拍板的还是现有的领导与风控总监,不新设策略官,也不设交易执行岗。窗口可以是周三投决会后半场,也可以是周一策略会;问法一样,单子停在人手里。说明书上的单笔上限是政策语言,具体数量写进建议单「约束」列,不在开口里报一个整数——报了,就变成口算。
11.6.2 盯 → 诊 → 议 → 人定
顺序不许改。一张四行表钉住分工:
| 步 | 谁问 | 看什么 | 数字从哪来 | AI 做什么 | 人做什么 |
|---|---|---|---|---|---|
| 盯 | 王岚 | 曲线 + 持仓,同一批次 | 批次栏 | 取数、并列 | 确认批次号 |
| 诊 | 王岚 | 骑乘 / Carry / 利差从哪来;对照策略地图 | 批次栏(Campisi + 个券下钻) | 诊断、对照说明书 | 判断签名是否漂移 |
| 议 | 李铮 | 加券、减券、期货、IRS | 每条一行试算栏 | 调用实时试算,四条并列 | 不拍板 |
| 人定 | 王岚勾、风控批 | policy | 建议单正文 + 页脚 | 成文、留痕 | 勾选、签字;暂不自动下单 |
王岚先盯。她不让 AI 跳到「建议减谁」。同一批次上的曲线和持仓必须先并列出来:FI-01 市值 64.00 亿、修正久期 4.78 年、32 只券,都来自 batch_20260904_210733——和场景一那张周报是同一包证据。批次号对上了,才往下走。
再诊。上周骑乘 +19.83 万,仍在说明书「赚骑乘格」的签名上,但量级不大;曲线 +291.24 万才是本周主力,是市场给的,不是她主动拉久期的结果。她要判断的是两件事:签名有没有漂成纯久期博弈?长久期券是不是该减?
王岚:先把上周六项再摊一遍。票息 146 万、骑乘 20 万,这两格对说明书。曲线赚了 291 万,我要看是市场给的,还是仓自己漂到长端了。
AI:六项来自同一批次。骑乘下钻利率债约 +19.09 万,口径与场景一会上那句「19.83 万哪来的」相同。曲线格是主力,不等于说明书改成了久期策略。减谁加谁,以个券久期和试算为准,不另估一个比例。
AI 可以把个券下钻摊开,对照策略地图说「骑乘格还在、国债效应格没有抬头」——判断「要不要改持仓」,仍是王岚的。第 5 章那句「归因对照的是策略说明书,不是盈亏本身」,在这里变成一页单子的入口。
李铮再议。加、减、期货、IRS 各一条,每条单独跑试算,四条并列摆上桌。他可以解释工具差在哪:现券动的是签名本身,期货接的是不愿卖的久期,IRS 压的是干净的 DV01。他不说「建议周一先做哪一条」。王岚勾 policy,风控批一个「可」。AI 不拍板,也不把单子送进交易系统。
李铮:四条我都叫试算。你勾两条,我就跑两条的合计;你勾四条,再跑四条的合计。我不当场口算一个总数给你。

人定这一步,容易被听成「AI 给完建议,人点一下确认」。不是。王岚勾的是 policy:这条减做不做、那条加做不做、期货和 IRS 要不要同时上。勾之前她可以再问一句「组合这两条的合计试算跑了没有」;勾之后,单子仍然不进 OMS。风控那个「可」,盖的是「数字对得上、约束写得清」,不是「去下单」。第 10 章说判断留痕——建议单上谁勾了哪一条,就是这一层留痕。
王岚:四条我先勾减和加。期货、IRS 这周不动。你按这两条再跑一次合计。
李铮:合计也是试算栏。跑完我写在单子底下,不跟批次栏的 412 万加在一起。
王岚:页脚那句留下。我拿这页去找风控,不拿这页去找交易台。
11.6.3 建议单样例
标题:《FI-01 调仓建议单(非指令)· 估值日 2026-09-04 · 批次 batch_20260904_210733》。表头七列,另加一列约束。批次栏写已发生事实,试算栏写「假如加/减/空期货/开 IRS」之后的 Δ。两栏不许混写,更不许加总成「调仓后收益」。Δ 列是试算口径,出版前按同批次重跑填入。[1]
| 券/工具 | 方向 | 数量逻辑 | 批次事实 | 试算(1 亿面额 / 目标 5.0) | 溯源 | 约束 |
|---|---|---|---|---|---|---|
240011.IB(24 附息国债 11) | 减 | 长久期、骑乘效率偏低 | 市值约 2.05 亿,久期 7.10,DV01 15.77 万,WTD +19.74 万 | ΔDV01 约 +8.17 万/bp(+1bp 约 −8.17 万) | bond_unit_whatif | 单笔上限 / 实现损益 |
240208.IB(24 国开 08) | 加 | 已在仓、短久期 | 市值约 1.96 亿,久期 2.83,DV01 5.50 万,WTD +8.05 万 | ΔDV01 约 +2.85 万/bp(+1bp 约 −2.85 万) | 同上 | 可投池 / 集中度 |
| TF2609 / T2609 | 做多 | FI-01 久期 4.78 低于 5.0 | 缺口约 −12.45 万/bp | TF 96 / T 96(HIST,非 CTD) | hedge_whatif | 保证金 / 基差 |
| 5Y IRS | 不建议 Pay fixed | Pay fixed 会再缩短久期,与「抬到 5.0」相反 | 同上缺口为负 | 若要抬久期应改 Receive fixed;Pay 5 亿会扩大缺口约 24.06 万/bp | 曲线年金 | 授信 / 方向 |
减的是 240011——久期 7.10,对组合 DV01 拖累大。加的是 240208——已在持仓,不是场景四利率债第一,但是短久期对照。期货和 IRS 跟场景三同一套 worker,组合换了必须重跑。**不能把 FIX-03 的 139 / 532 手或 10.01 亿直接填进 FI-01。**指令数量格仍留空。
李铮把四行摊开,只讲逻辑,不填空着的 Δ:
李铮:减 11、加 08,动的是骑乘格对说明书的位置,不是赌利率方向。期货是给「这只现在卖不掉」留的接口,IRS 是给「只想压 DV01、不想动券」留的接口。四条都在,不等于四条都要勾。你勾哪几条,我按勾中的再跑一次合计试算。
王岚:扫描池那行 Carry 代理不能加进上周的 412 万。场景四写过:前瞻 Carry 和批次里已经发生的损益,不同源。

表下三行硬规则,王岚和李铮当时就是这么说的:
王岚:批次栏的数必须能在这包 CSV 里对上。对不上就停,不要往下议。
李铮:试算栏每条独立可复算。四条可以组合,组合也要再跑一次合计试算,不许心算加总——批次栏的已发生事实和试算栏的推演,不能加出「调仓后收益」。
王岚:页脚写清楚:建议单 ≠ 指令单。本单不报入交易系统。
页脚就这一句,印在每一页下面。风控总监后来批的那个「可」,批的是勾选和留痕,不是批准自动下单。
建议单上的数分两栏,读的时候先分清。批次栏是已经发生的事实:64.00 亿、4.78 年、+411.76 万、票息 +145.60 万、骑乘 +19.83 万,只认冻结批次号。试算栏是推演:假如减 240011、加 240208、做多期货、开 IRS,Δ 怎么变。两栏可以对照,不能加总。缺试算的格子就空着——空着比填一个「看起来合理」的手数更安全。这是第 10 章纪律二落到建议单上的样子:缺数明说,不许硬凑。
11.6.4 和场景三、场景四差在哪
| 场景三 §11.4 | 场景四 §11.5 | 场景五 §11.6 | |
|---|---|---|---|
| 仓位前提 | 有仓、不准卖券 | 空仓 2 亿要配出去 | 有仓,政策允许加减 |
| 工具 | 只期货 + IRS | 只现券「加」 | 加、减、期货、IRS 四条并列 |
| 产出 | 对冲方案(仍是测算单) | 排序表 | 建议单 |
| 人定 | 风控一个「可」 | 领导问「怎么算的」 | 勾 policy,仍不自动下单 |
| 复用 | 缺口 / 分档 / 基差提示原样引用,不重算 | 恒等式与「曲线口径 ≠ 已发生」脚注原样引用 | 只引用,不重写那两节 |
场景三是工具箱被政策剪过的特例,场景四是只有「加」的前半段。场景五把四件工具摊开,让人勾。勾完,单子还是建议单。读完三、四再读五,不是因为五更高级,是因为五要复用那两节已经对齐过的口径:HIST 非 CTD、分档年金、恒等式,不必再讲一遍。场景一的签名也要在:没有上周那张 Campisi 表,诊这一步没有对照物。三节都不重写,五只负责把它们接到同一页建议单上。读者从对冲或选券读完,不要以为已经调过仓了——完整四工具并列,从这里才开始。建议单交卷,指令单不交。人勾完,流程即停,暂不自动下单。这一页纸到人为止,看清再勾。
王岚后来跟李铮对过一次这张表。她说,场景三那张测算单她敢直接转给风控,因为约束写死了「不准卖券」;场景四那张排序表她不敢直接当调仓单,因为仓是空的、没有减、没有存量。场景五要的是把两张半成品拼回去——拼的时候最容易犯的错,是把 FIX-03 的手数抄进 FI-01,或把 Carry 代理加进已经发生的 412 万。两处都是口径事故:一个抄错了组合,一个把试算栏加进了批次栏。
李铮:三和四我都做过。五不是把两份报告订在一起,是再走一遍盯诊议。报告可以引用,数字必须重跑。
王岚:勾完我还是只拿一页建议单去找风控。他批的是「可议、可核」,不是「可下单」。
这一节不重写场景三的分档表,也不重写场景四的恒等式。那两节的数字、图、对话都还在原处。这里只引用,只对照。
11.6.5 亲手试试
打开实操包,按这个顺序问。第 1 问和第 13 章场景五操作卡是同一句,一字不改。
- 对 AI 说:「用批次 batch_20260904_210733 给 FI-01 出一页调仓建议单:先盯曲线和持仓,再诊骑乘、Carry、利差从哪来,再议加券、减券、期货、IRS,每条带试算;不要下单。」观察它是否先报批次号、是否四条都有试算栏、页脚是否写非指令单。
- 「把建议单里 Δ久期最大的那一条追到出处:批次还是试算?」批次栏对得上 CSV,才算过关;试算栏要能指到脚本,不能只给一段解释。
- 负例:「把这张建议单直接下单。」预期:拒绝,并重申非指令单。再问:「没有批次号,先按经验填一列 ΔPnL。」预期:空格明说,不许口算。
三问做完,回头看第 11 章场景三、场景四末尾那两段交叉引用:那两节的问法没有改,数字已按同一冻结批回填。场景五不是把它们升级成「已经调过仓了」,是把特例和前半段接回完整的四工具并列。试算必须来自 MCP,不许口算手数。
11.6.6 红线
【红线】建议单三句
建议单不是指令单。试算不是批次——已发生的事实和假如发生的推演,分栏写,不许加总。空格不许口算:缺批次、缺试算、缺约束,就明说缺,不填「合理的数」。这是第 10 章「不能判断、不能担责」落到投研桌上的样子。
三句连着读:第一句管出口,单子停在人手里;第二句管栏,412 万不能和 ΔPnL 加在一起;第三句管空格,没有 Tool 回填就留空。第 10 章那个短例——建议单不是指令单——在这里落地成页脚、分栏和空格三件事。
页脚、分栏、空格,比任何口号都硬。下一节把五个场景收成一条主线:AI 的角色没有变,变的只是第五个窗口交出的那一页纸。
11.7 五个场景,一条主线
把五个场景连起来看,AI 的角色始终一致:
| 场景 | 读者要的 | AI 做的 | 数字来自 |
|---|---|---|---|
| 报表生成 | 一份能进决策会的报告 | 确认口径、取数、编排、成文 | 估值批次(Campisi 归因) |
| 日初简报 | 睁眼即得的今日图景 | 定时触发、五板块汇编、邮件投递 | 估值批次 + 离线资讯包 |
| 对冲策略 | 可执行的对冲方案 | 缺口测算、双工具配比、前后对比 | 估值批次 + 实时试算 |
| Carry 选券 | 持有收益最高的券 | 口径对齐、逐券分解、排序成表 | 曲线计算 + 估值批次 |
| 根据策略调仓 | 一页建议单 | 盯诊议编排、成文留痕 | 估值批次 + 实时试算 |
五个场景还共享同一条暗线:每个场景的结尾,都有一次人工复核——王岚与估值岗对账,陈默在晨会上做判断,李铮的方案要风控总监批一个「可」,赵一鸣的排序要回答领导「怎么算的」,建议单要王岚勾、风控再批一个「可」。AI 把准备工作的成本压到接近零,但「最后一道工序是人」这件事,五个场景里一次都没有省略。
再回头看第 10 章的边界表,五个场景其实是它的五组注脚:AI 查数据(问数)、找异常(诊断)、起草文字(成文),但没有一个数字是它编造的;它给建议的「入口」,不给决策的「结论」;它把报告创作出来,然后退出,由引擎量产下去。你可以质疑成文的角度,但不必质疑数字本身——这句话在五个场景里,各被验证了一次。
本章小结
回到引子的问题:AI + 估值引擎到底能帮你做什么?
五个场景给了五个具体的答案:一句话出一份能进决策会的归因报告(从半天到 40 秒,且每个数字可下钻);八点整邮箱里躺着一份口径对齐的晨报(资讯、行情、持仓、建议,同一批次的数字互相印证);「久期太长了」五分钟后变成两套可执行的对冲方案(缺口、配比、成本、残余风险,逐项可复核);「帮我找 Carry 最高的券」先得到一道恒等式、再得到一张排序表(口径讲在前面,排序才有意义);「诊完怎么动」变成一页建议单(加、减、期货、IRS 四条并列,人勾 policy,不自动下单)。
但比五个答案更重要的是同一个前提:**五个场景里的每一个数字,都来自同一套引擎、同一批持仓、同一张行情快照。**报表里的 412 万和晨报里 FI-01 昨日 −497 万能对回同一张 CSV,对冲方案的 DV01 和风控例会的 DV01 是同一个数,建议单批次栏里的市值也能对回同一张 CSV——这不是 AI 的功劳,是「一个引擎,一套口径」的功劳。AI 不是第二套数;它是同一套数的新界面。
这个前提是怎么工程实现的——估值、绩效、归因、风险怎样共用同一批持仓与同一张快照,条款缺失时引擎为什么宁可报错也不猜——是下一章的主题。
亲手试试
本章本身就是「亲手试试」的展开:五个场景末尾的操作步骤,合起来就是实操包的完整读者路径。如果只做一件事,建议从场景一开始——解压实操包,对 AI 说「帮我生成上周固收组合 FI-01 的归因报告」,5 分钟后,你会拿到本书第一张属于你的报表。
然后做最后一个动作:把报表里任意一个数字挑出来,问「这个数从哪来」。**从这一问开始,你就已经在用这本书的全部内容了。**五个场景走完,还可以开放追问本包的能力边界——Mathema MCP 还能做什么、哪几步是试算、哪几步是批次已发生。完整问法见第 13 章场景六。
上一章:第10章 AI 的边界 · 下一章:第12章 一个引擎,一套口径 · 回目录 · 下载 PDF
建议单存量数复用 §11.2 / §11.4 / §11.5 已出场批次(FI-01 市值 64.00 亿、久期 4.78、周收益 +411.76 万、
240208/240011)。试算来自bond_unit_whatif/hedge_whatif。FIX-03 的 139 / 532 手或 10.01 亿不能直接抄到 FI-01。 ↩︎