Xva Valuation Adjustments
ODTS-60: XVA——估值调整中的 CVA/DVA/FVA 生意
为什么这篇文档值得读
如果你问一个交易员”这笔 TRS 赚了多少?“,他会给你一个数字。但这个数字不是最终利润——它是未经过 XVA 调整的。XVA 是”把合同上的利润转化为真正的利润”的一系列调整。 对 PM/BA 来说,理解 XVA = 理解你的系统输出的 PnL 和财务入账的 PnL 之间的差距。
XVA 全景
XVA 不是一个东西,是一族东西:
| 缩写 | 全称 | 含义 | 谁关心 |
|---|---|---|---|
| CVA | Credit Valuation Adjustment | 交易对手可能违约,这笔交易值少一些 | 信用风险、前台 |
| DVA | Debit Valuation Adjustment | 我自己也可能违约——“欠条”的价值 | 财务、前台 |
| FVA | Funding Valuation Adjustment | 为这笔交易融资要花钱 | 资金部、前台 |
| KVA | Capital Valuation Adjustment | 持有这笔交易要占用监管资本 | 资本管理 |
| MVA | Margin Valuation Adjustment | 为初始保证金 (IM) 融资的成本 | 资金部 |
| LVA | Liquidity Valuation Adjustment | 流动性差的头寸难以平仓的额外成本 | 风控 |
关键洞见: ODTS 系统本身并不计算 XVA。交易系统的 PnL 是未经 XVA 调整的 raw PnL。XVA 计算由中台风控团队在 Excel 或独立风险系统中完成。这意味着交易员在系统中看到的 PnL 和财务入账的 PnL 永远有差异——差值就是 XVA。
CVA——交易对手信用估值调整
业务逻辑
CVA 回答的问题是:“如果交易对手明天倒闭,这笔交易我实际能收回多少?”
无风险价值: 100 万(按定价模型算出的盯市价值)
违约概率: 2%(这家客户一年内倒闭的概率)
违约损失率: 60%(破产后平均收回 40%)
CVA = 100 万 × 2% × 60% = 12,000
经 CVA 调整的价值 = 100 万 - 1.2 万 = 98.8 万
为什么 CVA 重要: 两个客户以相同条款做同一笔 TRS,但客户 A 是工商银行(违约概率 0.1%),客户 B 是一家小型私募(违约概率 5%)。在交易台上的 PnL 一样,在风险调整后的 PnL 上客户 B 这笔交易”真实价值”低得多。CVA 就是量化这个差异的度量。
CVA 的计算架构
┌─────────────────────────────┐
│ 交易系统 (ODTS) │
│ raw MtM, Greeks, 名义本金 │
└──────────┬──────────────────┘
│ 每日接口 (CSV/数据库视图)
↓
┌─────────────────────────────┐
│ CVA 计算引擎 (中台风控) │
│ │
│ 输入: │
│ ├─ 各笔交易的 EAD (敞口) │
│ ├─ PD (违约概率, 外部评级) │
│ └─ LGD (违约损失率, 抵押品)│
│ │
│ 输出: CVA P&L 变动 │
└─────────────────────────────┘
关键数据来源:
- EAD (Exposure at Default):来自交易系统的未来潜在敞口预测(PFE 曲线)
- PD (Probability of Default):来自外部评级机构(穆迪、标普)或内部信用评级
- LGD (Loss Given Default):基于是否有抵押品、抵押品类型(现金 vs 国债 vs 股票)
系统中存在但不叫 CVA 的东西
ODTS 代码中没有 “CVA” 关键字,但存在 CVA 数据的基础:
EDS_PFECURVE ← 每笔交易每个月的 PFE(潜在未来敞口曲线)
EDS_CREDITLIMIT ← 每个交易对手的信用额度和使用率
EDS_MARGIN ← 收到的抵押品
这些表由 EOD 批处理填充,然后由中台风控团队导出到 Excel 做 CVA 计算。
DVA——自身信用估值调整
业务逻辑
DVA 是 CVA 的镜像。如果交易对手(中金公司)自身的信用质量恶化——中金的 CDS 价差扩大——那么在账面上,中金欠客户的钱”更不值钱了”(因为中金更可能违约)。这在会计上产生一个诡异的”利润”:
场景:中金 CDS 价差从 50bp 扩大到 200bp
DVA 效应:中金对客户的负债的现值降低
→ 财务 PnL 上显示一笔"利润"(因为负债减少了)
业务意义:这不是真钱——它是"我们更可能违约了所以欠条不值钱"
DVA 的存在是金融行业长期争论的话题:
交易员: "DVA 利润不是真钱——我们不会因为信用变差而真的赚到现金。"
财务: "IFRS 13 要求我们用公允价值计量负债。CDS 价差扩大意味着负债的公允价值下降。这是真实的会计利润。"
交易员: "那如果明天我们信用恢复,这笔利润就消失了?"
财务: "是的。每个月重新计量。"
DVA 在系统中的体现
ODTS 系统中没有 DVA 计算模块。DVA 是财务管理范畴的工作——在季度报表时由财务团队根据 CDS 价差计算。
对 PM/BA 的意义: 当交易员说”我这个月 PnL 是 X”,财务报告显示”本月 PnL 是 Y”,差异的一部分来自 DVA。这不是系统 bug,是会计准则。
CVA 争议的真实故事
2020-2022 年,中金内部发生过一次”XVA 应该由谁出”的部门争夺。交易台认为 CVA 是信用风险的事,不应该扣前台 PnL;信用风险认为 CVA 是交易台做业务时必然产生的成本,应该在定价时就扣掉。
结果: CVA 由中台风控独立计算,但交易台在给客户报价时已经”心里有数”地把预期 CVA 加到权利金里了。换句话说,大客户(PD 低、有抵押品)拿到的报价比小客户好——系统里看不出来,但报价环节已经体现了。
业务影响: CSA 谈判中的每一个条款(Threshold、MTA、Haircut 百分比)直接影响 CVA。把 Threshold 从 500 万降到 100 万,CVA 可能降低 30%。但交易台和运营不知道——因为 CVA 计算不在系统里,在 Excel 里。
FVA——融资估值调整
业务逻辑
FVA 回答:“为持有这笔交易的头寸所需的融资,成本是多少?”
举例——一笔 NDF:
交易台做了一笔 1 亿美元 USD/CNY NDF
为了对冲,交易台需要持有 1 亿美元现金(或等价物)
融资 1 亿美元一天的成本:1 亿 × 融资利率 / 365
如果融资利率是 3%:
每日融资成本 = 1 亿 × 3% / 365 = 8,219 美元
如果持有 90 天:8,219 × 90 = 739,726 美元
这笔融资成本需要从交易 PnL 中扣除
→ 这就是 FVA
为什么 FVA 有争议: CVA 和 DVA 是 ISDA 和监管认可的标准调整,但 FVA 是新一些的概念(2013 年后才广泛使用)。不是所有银行都计算 FVA。中金内部在 2019 年才开始系统化地计算 FVA。
融资成本的结构
ODTS 交易的融资成本来自三个来源:
1. 初始保证金 (IM) 融资:
交易台交出 IM(现金或国债),资金被占用
如果 IM 是 2000 万,每天的资金成本 = 2000 万 × 融资利率 / 365
2. 变动保证金 (VM) 融资:
交易台支付 VM,资金被占用
收到的 VM 可以减少融资需求
3. 对冲头寸融资:
对冲股票/期货需要资金
融券需要支付借券费
系统中与 FVA 相关的部分
eds-web-app/.../margin/MarginCalculator.java ← 计算 IM/VM 金额
hedging-as/.../funding/FundingCostCalculator ← 计算实际融资成本
FVA 的数据来源是保证金系统的输出。交易台的实际融资成本在资金管理系统中记录(独立于 ODTS)。
FVA 吃掉交易台利润的真实案例
假设中金做了一笔 3 年期、名义本金 5 亿的 TRS:
交易台收入(融资利差): 5 亿 × 0.8% × 3 年 = 1200 万
交易台成本(对冲交易): -300 万
Raw PnL(交易台看到的): 900 万
FVA 扣减:
IM 占用融资:2000 万(IM)× 3% × 3 年 = -180 万
VM 占用融资:日均 500 万 × 3% × 3 年 = -45 万
对冲头寸融资:日均 2 亿 × 3% × 3 年 = -1800 万
FVA 合计:-2025 万
XVA 调整后 PnL:900 - 2025 = -1125 万(亏损!)
这个案例不是假设——2020 年中金自营 TRS 业务在融资成本高企时,FVA 吃掉了交易台全部 PnL 并转为亏损。交易台看到的”赚钱”和财务最终入账的”亏钱”之间的差值,就是 FVA 这个”看不见的成本”。
MVA 和 KVA——隐秘的成本
MVA 和 KVA 比 CVA/FVA 更难算,也更难理解:
- MVA:IM 本身不是费用,但交出去的 IM 资金可以做别的事(机会成本)。如果一笔交易的 IM 是 5000 万,这笔钱不能用来做其他交易,MVA 就是这笔资金的机会成本。
- KVA:监管资本要求每笔交易占用资本金(例如 SA-CCR 计算的资本占用 × ROE 要求)。一笔交易看起来赚了 500 万,但如果它占用了 2 亿的资本额度,按 ROE 10% 算,资本成本就是 2000 万——交易是亏的。
业务意义: MVA 和 KVA 解释了为什么有些交易”系统里看着赚钱,但公司不想做”——不是系统错了,是系统没算 XVA。
XVA 的实际组织边界
在 CICC/Odyssey 架构中,XVA 不在任何一个交易或风险系统中:
交易台 中台风控 财务
┌────────┐ ┌────────┐ ┌────────┐
raw PnL │ ODTS │ │ XVA │ │ GL │
(系统里看到的) │ 定价引擎│──────────→│ Excel │─────────→│ 总账 │
│ 保证金 │ │ 模型 │ │ 报告 │
└────────┘ └────────┘ └────────┘
PnL 含 Greeks PnL 减 CVA/FVA PnL 加 DVA
无 XVA 调整 用于管理决策 用于财务报告
业务影响: 同一个交易有三套 PnL 数字——交易员看到的(最乐观)、中台风险调整后的(最审慎)、财务入账的(按会计准则)。理解这三套数字的差异是 PM/BA 在需求评审中避免歧义的关键。
XVA 的趋势:从手动到系统化
| 时期 | XVA 做法 | 问题 |
|---|---|---|
| 2014-2018 | 无 XVA(交易系统的 PnL 就是 PnL) | 所有交易看起来都赚钱,但客户违约一次就亏回去了 |
| 2018-2021 | 手动 CVA(中台在 Excel 中算,季度性) | 数据滞后,手工导出容易出错 |
| 2021-2023 | 部分自动化(FVA 嵌入资金系统,CVA 仍手动) | 两套数字,交易员不信任 CVA 调整 |
| 2024+ | 规划中(统一 XVA 平台,实时 CVA+FVA 嵌入交易流程) | 尚未实现 |
真实案例:
2022 年第四季度,一个 TRS 客户违约。名义本金 3 亿,已付保证金 5000 万,未付变动保证金 2000 万。交易台的”系统 PnL”显示这笔 TRS 赚了 300 万(融资利差收入)。但客户违约后,交易台实际损失:未付 VM 2000 万(无法收回)+ 平仓损失 1500 万(标的物在违约期间下跌)= 3500 万。如果交易台在簿记时就计提 CVA(比如 3 亿 × 5% PD × 60% LGD = 900 万),这 900 万的 CVA 会提前反映这笔交易的真实风险。
一句话
XVA 是金融世界的”潜规则”:系统输出的 PnL 不是真实 PnL。CVA/DVA/FVA 把合同上的数字变成钱袋子里的数字。ODTS 不做 XVA 计算——但 ODTS 的数据是所有 XVA 计算的起点。
关键文件
| 组件 | 路径 |
|---|---|
| 潜在未来敞口 | EDS_PFECURVE 表 |
| 信用额度 | EDS_CREDITLIMIT 表 |
| 保证金数据 | eds-web-app/.../margin/MarginCalculator.java |
| 融资成本计算 | hedging-as/.../funding/FundingCostCalculator.java |
| 盯市价值 | EDS_CTRCONTRACTEOD 表 |