第四章:定价与估值模型——信用曲线构建、违约概率模型、回收率假设与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给一家银行,银行信用变差,你的敞口(赔付概率)也变大了。这就是典型的错路风险。

知识体系总览

下面这张图,是我自己梳理的本章知识结构。你把它存下来,做定价时对照着看,不容易漏掉关键环节。

信用衍生品定价与估值模型知识体系 市场输入 CDS报价 / 债券价格 假设参数 回收率 / 无风险利率 模型选择 简化模型 / 结构模型 信用曲线构建 插值方法:线性 / 样条 / Nelson-Siegel 输出:任意期限的信用利差 违约概率模型 PD = 1 - exp(-λt) λ = Spread / (1 - R) 回收率假设 优先级 / 行业 / 宏观 三套情景:乐观/基准/悲观 CVA / DVA 调整 净额结算 / 抵押品 / 错路风险 © 蓝海资料掘金营

我的建议:刚开始做信用衍生品定价时,别急着上复杂模型。先把信用曲线构建和违约概率计算跑通,然后用简单的常数回收率假设做CVA。等你对市场感觉上来了,再逐步加入动态回收率和错路风险调整。我当年就是这么过来的——先活下来,再谈优化。

好了,这一章的内容就到这里。定价模型这东西,纸上谈兵容易,真刀真枪干起来全是细节。下一章我们会聊到信用衍生品的对冲策略,到时候再细说。


公众号:蓝海资料掘金营,微信deep3321