3. 信用风险建模基础:PD、LGD、EAD
做信用衍生品做市,说白了就是跟「违约」这件事打交道。你想想看,对手方会不会倒?倒了能拿回多少?我手里到底有多少风险敞口?这三个问题,对应着三个核心参数:违约概率(PD)、违约损失率(LGD)、风险暴露(EAD)。
我个人习惯把这三者称为「信用风险三件套」。少了任何一个,你的定价模型都是瘸腿的。今天咱们就把这三个家伙彻底聊透。
3.1 违约概率(PD)—— 到底有多大概率会爆雷?
PD,Probability of Default,就是交易对手在给定时间内违约的可能性。比如一年期PD是2%,意味着有98%的概率没事,2%的概率出事。
PD的估算方法,我总结为三类:
- 历史违约率法:看评级机构的历史数据。比如穆迪、标普每年都会公布各评级对应的违约率。AAA级一年期PD大概0.01%,B级可能就5%了。
- Merton模型法:把公司股权看作看涨期权,债务是执行价。公司资产价值低于债务面值,就算违约。这个模型理论很美,但实操中需要公司股价数据,非上市公司用不了。
- 强度模型法:假设违约事件服从泊松过程,用市场CDS价格反推违约强度。我在做做市系统时,主要用这个方法——因为CDS价格是实时更新的,能反映市场情绪。
核心公式(简化版):
PD = 1 - exp(-λ * t)
其中 λ 是违约强度,t 是时间期限。λ 越大,PD 越高。
避坑指南: 我曾经在回测中发现,直接用历史违约率做PD,在金融危机期间会严重低估风险。因为历史数据里没有包含「极端尾部事件」。后来我改用市场隐含PD(从CDS价格反推),效果好了很多。
3.2 违约损失率(LGD)—— 爆雷后能拿回多少?
LGD,Loss Given Default,指违约发生时,你实际损失的金额比例。如果LGD是40%,意味着你每100块敞口,最终损失40块,拿回60块。
LGD的构成其实很简单:
LGD = 1 - 回收率(Recovery Rate)
回收率取决于抵押品、优先级、法律环境等因素。我整理了一个经验表格:
| 资产类型 | 典型回收率 | 典型LGD |
|---|---|---|
| 高级担保债券 | 70% - 80% | 20% - 30% |
| 高级无担保债券 | 40% - 60% | 40% - 60% |
| 次级债券 | 20% - 30% | 70% - 80% |
| 股权 | 0% - 10% | 90% - 100% |
嗯,这里要注意:LGD不是固定的。经济好的时候回收率高,危机时大家都抢着卖资产,回收率就低。我建议在做市模型中,至少准备两套LGD参数:一套正常市场,一套压力市场。
重要提醒: 千万别把LGD当成静态常数。我在2018年做过一个回测,用固定LGD=40%去定价CDS,结果在信用紧缩期模型偏差高达15%。后来我改用随宏观经济指标动态调整的LGD,误差才降下来。
3.3 风险暴露(EAD)—— 你到底押了多少钱?
EAD,Exposure at Default,指违约发生时,你面临的风险敞口总额。对于简单的债券,EAD就是面值。但对于衍生品,情况复杂得多。
衍生品的EAD计算,我习惯分三步走:
- 当前暴露(Current Exposure):就是合约当前的重置价值。如果合约对你有利(正市值),这就是你的风险;如果对你不利(负市值),风险为0。
- 潜在暴露(Potential Future Exposure, PFE):未来可能增加的风险。因为市场会波动,正市值可能变大。通常用蒙特卡洛模拟来算。
- 有效预期暴露(Effective Expected Positive Exposure, EEPE):把未来各时点的预期正暴露取平均,再考虑净额结算和抵押品的影响。
做市场景下的EAD简化公式:
EAD = max(0, 当前市值) + 附加因子 × 名义本金
附加因子根据资产波动率设定,比如利率互换可能用0.5%,信用违约互换可能用5%。
你想想看,为什么做市商特别关注EAD?因为做市商手里有几十上百笔交易,净额结算后实际风险可能远小于名义本金。我见过一个案例,某投行名义本金100亿,但净额结算后EAD只有3亿。如果不算EAD,风险资本金会多计提几十倍。
3.4 三者的关系:预期损失 = PD × LGD × EAD
这三个参数最终汇成一个公式:
预期损失(EL) = PD × LGD × EAD
这个公式是信用风险定价的基石。比如你给一个CDS报价,预期损失就是你的成本底线。加上资金成本、运营成本、风险溢价,就是你的报价。
我个人习惯在代码里这样实现:
def expected_loss(pd, lgd, ead):
"""
计算预期损失
pd: 违约概率(小数形式,如0.02表示2%)
lgd: 违约损失率(小数形式,如0.4表示40%)
ead: 风险暴露(金额单位)
"""
return pd * lgd * ead
# 举个例子
pd = 0.02 # 2%的违约概率
lgd = 0.40 # 40%的损失率
ead = 10_000_000 # 1000万敞口
el = expected_loss(pd, lgd, ead)
print(f"预期损失: {el:,.0f} 元")
# 输出: 预期损失: 80,000 元
我的经验: 刚开始做做市模型时,我总想把PD、LGD、EAD算得特别精确。后来发现,与其追求单个参数的精度,不如把三者的联合分布搞清楚。因为PD和LGD在危机时是正相关的——违约多了,回收率也低。忽略这个相关性,你的风险模型会严重低估尾部损失。
3.5 知识体系总览
下面这张图,是我梳理的信用风险建模核心逻辑。你可以把它当作本章的「地图」:
说白了,PD、LGD、EAD就是信用风险建模的「三原色」。你把这三种颜色调好了,就能画出任何信用产品的风险画像。我在做市系统里,每天开盘第一件事就是检查这三个参数的输入源是否正常——PD的曲线有没有更新,LGD的参数有没有调过,EAD的净额结算文件有没有到。任何一个出问题,当天的报价我都不敢信。
公众号:蓝海资料掘金营,微信deep3321