第四章:定价与估值模型——信用曲线构建、违约概率模型、回收率假设与CVA/DVA调整
好,咱们进入正题。这一章是信用衍生品做市的核心中的核心。你想想看,做市商靠什么赚钱?说白了,就是靠定价。你比市场更准,你就能活;你错了,你就亏钱。我个人习惯把定价模型拆成四个模块来理解:信用曲线、违约概率、回收率,以及CVA/DVA调整。咱们一个一个来啃。
4.1 信用曲线构建:从市场报价到无风险基准
信用曲线是什么?它反映了不同期限下,一个实体(比如一家公司)的信用风险溢价。我刚开始做交易员时,总觉得这东西跟国债收益率曲线差不多,后来发现完全不是一回事。
构建信用曲线,我们通常从CDS报价入手。CDS的固定保费(Spread)隐含了市场对违约风险的预期。但这里有个坑:CDS报价是标准化的,期限固定(1年、3年、5年、7年、10年),而我们需要的是连续曲线。
核心思路:用已知期限的CDS Spread,通过插值或参数化模型,推算出任意期限的信用利差。
常用的方法有两种:
- 线性插值:简单粗暴,但曲线不够平滑。我早期做小规模组合时用过,后来发现对奇异期权定价误差太大。
- 样条插值(如三次样条):平滑性好,但容易过拟合。嗯,这里要注意,样条参数调不好,曲线末端会翘上天。
- Nelson-Siegel模型:参数化方法,用四个参数拟合整条曲线。我个人比较喜欢这个,因为它稳定,而且参数有经济含义——比如长期水平、短期斜率。
举个例子,假设我们有以下CDS报价:
| 期限(年) | CDS Spread(bps) |
|---|---|
| 1 | 50 |
| 3 | 80 |
| 5 | 110 |
| 10 | 150 |
用Nelson-Siegel拟合后,我们可以得到2年期、4年期等任意期限的信用利差。代码实现大致如下:
def nelson_siegel(t, beta0, beta1, beta2, lambda_):
# t: 期限(年)
# beta0: 长期水平
# beta1: 短期斜率
# beta2: 曲率
# lambda_: 衰减因子
term = t / lambda_
return beta0 + (beta1 + beta2) * (1 - np.exp(-term)) / term - beta2 * np.exp(-term)
# 用优化算法拟合参数
from scipy.optimize import curve_fit
params, _ = curve_fit(nelson_siegel, [1,3,5,10], [0.005, 0.008, 0.011, 0.015])
避坑指南:我曾经用线性插值处理一个5年期CDS和7年期CDS之间的缺口,结果在6年期上算出的Spread比两边都低,导致一笔交易少收了3个bp。后来我改用样条插值,但加了平滑惩罚项,才把这个问题解决。
4.2 违约概率模型:从Spread到PD
信用曲线有了,下一步是把它转化成违约概率(PD)。这里有个关键假设:回收率。为什么?因为CDS Spread反映的是预期损失,而预期损失 = PD × (1 - 回收率)。
常用的模型有两个:
- 简化模型(Reduced-Form Model):假设违约是一个泊松过程,强度由信用曲线决定。说白了,就是给定一个违约强度λ,那么t年内不违约的概率是exp(-λt)。
- 结构模型(Structural Model):基于Merton模型,把公司股权看作看涨期权,债务看作看跌期权。这个模型理论上很美,但实际中很少用——因为需要公司资产价值数据,而做市交易中我们通常只有CDS报价。
我个人习惯用简化模型。从CDS Spread反推违约强度的公式很简单:
# 假设回收率R=40%
R = 0.4
spread = 0.01 # 100 bps
lambda_ = spread / (1 - R) # 违约强度
pd_1year = 1 - np.exp(-lambda_ * 1) # 1年违约概率
但这里有个问题:违约强度是常数吗?显然不是。信用曲线是倾斜的,说明违约强度随时间变化。所以我们需要用分段常数强度,或者用Cox过程(强度随时间变化)。
注意:回收率假设对PD的影响极大。回收率从40%调到20%,PD会翻倍。我见过不少交易员在这个环节翻车——他们直接用市场默认的40%回收率,结果对高收益债的定价偏差很大。
4.3 回收率假设:最容易被忽视的参数
回收率,说白了就是违约后你能拿回多少钱。它取决于:
- 优先级:高级担保债回收率最高,次级债最低。
- 行业:比如金融机构的回收率通常高于制造业,因为资产流动性好。
- 宏观环境:经济衰退期,回收率普遍下降。
我做市时常用的回收率假设:
| 债券类型 | 典型回收率 |
|---|---|
| 高级担保债 | 60-80% |
| 高级无担保债 | 40-60% |
| 次级债 | 20-40% |
| 股权 | 0-10% |
你想想看,如果一笔CDS交易对手是银行,回收率假设用40%还是60%,直接决定你的报价是赚还是亏。我建议做市团队至少准备三套回收率假设:乐观、基准、悲观,然后根据市场情绪动态切换。
4.4 CVA/DVA调整:做市商的生存之道
CVA(信用估值调整)和DVA(债务估值调整),是金融危机后监管强推的东西。说白了,就是把你对手方的信用风险量化,然后从交易价格里扣掉。
CVA的计算公式:
CVA = (1 - R) * ∫[0,T] EE(t) * dPD(t)
其中EE(t)是t时刻的预期敞口,PD(t)是t时刻的违约概率。
DVA正好相反,是你自己违约给对手方带来的损失。做市商通常同时计算CVA和DVA,然后取净额(CVA - DVA)作为调整项。
实战经验:我记得有一次,一个对手方是某欧洲银行,它的CDS Spread在两周内从50bps飙到300bps。我们持仓的CVA从10万欧元直接跳到80万欧元。幸亏我们提前做了对冲——买了该银行的CDS保护,不然这笔交易就亏大了。
CVA/DVA调整的难点在于:
- 净额结算:如果和同一个对手方有多笔交易,敞口可以互相抵消。但计算净额敞口需要把所有交易汇总,这很麻烦。
- 抵押品:如果交易有抵押品(比如现金或国债),敞口会降低。但抵押品的价值也会波动,所以需要动态调整。
- 错路风险(Wrong-Way Risk):最要命的情况——对手方信用恶化时,你的敞口反而变大。比如你卖了一个CDS给一家银行,银行信用变差,你的敞口(赔付概率)也变大了。这就是典型的错路风险。
知识体系总览
下面这张图,是我自己梳理的本章知识结构。你把它存下来,做定价时对照着看,不容易漏掉关键环节。
我的建议:刚开始做信用衍生品定价时,别急着上复杂模型。先把信用曲线构建和违约概率计算跑通,然后用简单的常数回收率假设做CVA。等你对市场感觉上来了,再逐步加入动态回收率和错路风险调整。我当年就是这么过来的——先活下来,再谈优化。
好了,这一章的内容就到这里。定价模型这东西,纸上谈兵容易,真刀真枪干起来全是细节。下一章我们会聊到信用衍生品的对冲策略,到时候再细说。
公众号:蓝海资料掘金营,微信deep3321