Cds

隱含違約機率(CDS 價差)

  • February 3, 2020

經過一番Google搜尋,我取得了一些進展,但還不足以得出結論,所以我們開始吧:

鑑於交易對手的 CDS 利差為 100bp(跨時間持平)且無風險利率為 0%(也持平),假設交易對手違約,我們支付了一半的違約年隱含機率是多少我們的年度價差?契約期限為5年,預期回收率為40%。

我的嘗試:

我們(保護買方)的 CDS 契約現值為:

$ P(d)*Protection\ leg + (1-P(d))*Premium\ leg=0 $ ,

在哪裡

$ Protection\ leg= (1-R)Notional-0.5Spread*Notional $ 和

$ Premium\ leg= Spread*Notional $ .

從這裡我解決了

$ P(d)=\frac{Spread}{(1-R)+0.5*Spread} $ .

在這種情況下,我假設這是危險率 $ \lambda $ ,這是恆定的,因為 CDS 期限結構是平坦的。現在,按照赫爾,我們可以使用公式

$ P(0,t)=1-e^{(-\lambda*t)} $

獲得在該時間段內發生違約的(近似)隱含機率 $ (0,t) $ .

現在,如果我想獲得違約發生的機率,例如, $ (1,2) $ 或者 $ (2,3) $ ? 如何正確調節機率?

謝謝!

這裡有一些東西,所以如果有任何問題,我會逐步添加細節。分析與Hull, J. (2012)的**附錄 K中的內容差不多。**風險管理和金融機構,+ 網站(第 733 卷)。約翰威利父子公司

Python 導入:

import numpy as np
import pandas as pd
from scipy.optimize import brentq

TABLE構造一個包含我們需要的所有資訊的表的函式:

def TABLE(PD, s=0.01, r=0):
   table = pd.DataFrame({'Time': np.arange(1,6)}).set_index('Time')
   table['SurvivingProb'] = np.exp(-PD*table.index)
   table['DefaultProb'] = -np.diff(table['SurvivingProb'], prepend=1)
   table['DF1'] = np.exp(-r*table.index)
   table['PV/ExpPMT'] = table['SurvivingProb']*table['DF1'] # * s
   table['DF2'] = np.exp(-r*(table.index-0.5))
   table['PV/ExpPayoff'] = 0.6*table['DefaultProb']*table['DF2'] # * s
   table['PV/AccrualPMT'] = 0.5*table['DefaultProb']*table['DF2'] # * s
   return table

例如,如果我們假設違約機率(危險率)為 0.02,我們將得到下表:

在此處輸入圖像描述

為了計算 CDS 價差隱含的精確違約機率,我們將使用以下函式:

def defaultProb(PD, s=0.01, r=0):

   table = TABLE(PD, s, r)

   return s*(np.sum(table['PV/ExpPMT'] + table['PV/AccrualPMT'])) \
               - np.sum(table['PV/ExpPayoff'])

接下來,使用 Brent 方法求解違約機率:

PD = brentq(defaultProb, 0, 1)

結果是0.016667

如果我們現在想查看更新的TABLE

TABLE(PD)

在此處輸入圖像描述

從這裡我們可以直接讀取無條件違約機率(DefaultProb列),即在零時間看到的特定年份的違約機率。

要計算違約的條件機率,只需除以第一列中的前一個條目。例如,如果您希望第三年的違約機率以沒有更早的違約為條件:

$$ 0.015987/0.967215=0.01652893 $$

引用自:https://quant.stackexchange.com/questions/50939