这个例子展示了如何在同质损失假设下为首次违约(FTD)互换定价。
首先违约互换是一种工具,当(以及如果)一篮子信贷工具中的第一种出现违约时,它将支付预先确定的金额。篮子里的信贷工具通常是债券。如果我们假设信用事件后的损失金额对篮子中的所有信用都是相同的,我们就在均匀的损失假设。这个假设使模型更简单,因为篮子中的任何违约都会触发相同的支付金额。这个例子是这些工具的定价方法的实现,如O’kane[2]所述。该方法有两个步骤:a)从数字上计算篮子的生存概率;b)使用生存曲线和标准单名信用违约掉期(CDS)功能来发现FTD价差并为现有FTD掉期定价。
给定篮子中每个发行人的CDS市场报价,使用cdsbootstrap
为每个发行人校正个别违约概率曲线。
%利率曲线ZeroDates = datenum ({‘10年1月17日’,“17-Jul-10”,“17-Jul-11”,“17-Jul-12”,...“2013年7月17日”,‘2014年7月17日’})ZeroRates=[1.35 1.43 1.9 2.47 2.936 3.311]/100;ZeroData=[ZeroDates ZeroRates];% CDS利差市场价差中的每一行对应一个不同的发行人;每一个%列到不同的到期日(对应于MarketDates)MarketDates = datenum ({“20-Sep-10”,“20-Sep-11”,“20-Sep-12”,“20-Sep-14”,...“20-Sep-16”});市场价差= [160 195 230 285 330;130 165 205 260 305;150 180 210 260 300;165 200 225 275 295];%发行人数量等于市场价差的行数日产汽车=规模(市场利差,1);%结算日期解决= datenum (‘2009年7月17日’);
在实践中,时间轴是离散的,FTD生存曲线只在网格点进行评估。我们每三个月使用一个点。为了要求cdsbootstrap
返回我们想要的特定网格点的默认概率值,使用可选参数“ProbDates”。我们将原始标准CDS市场日期添加到网格中,否则这些日期的默认概率信息将使用网格上最近的两个日期进行插值,市场日期的价格将不一致使用原始市场数据。
ProbDates =联盟(MarketDates daysadd(结算360 * (0.25:0.25:8),1));nProbDates =长度(ProbDates);DefProb = 0 (nIssuers nProbDates);为ii = 1: n发行人市场数据= [MarketDates MarketSpreads(ii,:)'];ProbData = cdsbootstrap (ZeroData MarketData,结算,...“ProbDates”, ProbDates);DefProb (ii) = ProbData (:, 2) ';结束
这些是篮子中每个信贷的校准违约概率曲线。
图形绘图(ProbDates',DefProb)日期标记标题(“个别违约概率曲线”)伊拉贝尔(“累积概率”)xlabel(“日期”)
潜在变量用于不同的信用风险环境中,有不同的解释。在某些环境中,潜在变量是风险的代理资产价值的变化,并将此变量的域划分为bin,每个bin对应一个信用评级。bin限制或阈值由信用迁移矩阵确定。在我们的上下文中,潜在变量与默认的时间,阈值决定离散时间网格中可能出现默认值的容器。
在形式上,如果特定发行人的违约时间被表示为,我们知道它的默认概率函数,一个潜变量和相应的阈值满足
或
这些关系使潜变量方法便于模拟和解析推导。这两个和是时间的函数。
变量分布的选择确定阈值.在标准潜在变量模型中,变量选择遵循标准正态分布,从中
在哪里为累积标准正态分布。
使用前面的公式确定默认时间阈值,或者只是默认阈值,对应于先前获得的篮子中信用的违约概率。
DefThresh = norminv (DefProb);
根据O'Kane[2],我们使用一个单因素潜在变量模型来推导篮子的生存概率函数的表达式。
给定的参数为每个发行人,并给出独立的标准正态变量和,单因素潜变量模型假设潜变量与发行人关联满足
这就形成了发行人之间的相关性和属于.所有潜在的变量共享公因数作为不确定性的来源,但每个潜在变量也有一个特殊的不确定性来源.系数越大时,潜在变量越像公共因素.
利用潜变量模型,推导出篮子存活概率的解析公式。
发行者的概率幸存的过去时间,换句话说,就是它的默认时间大于是
在哪里发行者的默认阈值是否高于此值,供-离散化网格中的第个日期。
条件返回单因子的值,即所有发行人在过去生存的概率是
产品是合理的,因为所有的是独立的。因此,有条件的,是独立的。
时间上无违约的无条件概率是的所有值的积分之前的条件概率
与标准法向密度。
通过计算每个点的一维积分在网格中,我们得到了整个篮子的生存曲线的离散化,即FTD生存曲线。
潜在变量模型也可以用来模拟违约时间,这是许多信贷工具定价方法的后引擎。例如,Loeffler和Posch[1]通过模拟来估计一个篮子的存活概率。在每个模拟场景中,确定每个发行者的违约时间。通过一些簿记,可以从模拟中估计网格的每个桶上有第一个默认值的概率。在O’kane[2]中也讨论了模拟方法。仿真非常灵活,适用于许多信用工具。然而,如果可行的话,分析方法是首选,因为它们比模拟方法更快、更准确。
为了计算我们示例中的FTD生存概率,我们将所有Beta设置为目标相关性的平方根。然后我们在时间网格中循环所有日期,以计算给出篮子生存概率的一维积分。
关于实现,条件生存概率是标量的函数Z
将
condProb=@(Z)prod(normcdf((-defsthresh(:,jj)+beta*Z)。/sqrt(1-beta.^2));
然而,我们使用的积分函数要求被积函数的句柄接受向量。尽管围绕条件概率的标量版本进行循环可以工作,但使用下面的方法对条件概率进行矢量化要高效得多bsxfun
.
β= sqrt (0.25) * 1 (nIssuers 1);FTDSurvProb = 0(大小(ProbDates));为jj = 1: nProbDates%向量化条件概率作为Z的函数vecCondProb = @ (Z)刺激(normcdf (bsxfun (@rdivide,...-repmat (DefThresh (:, jj), 1,长度(Z)) + bsxfun (@times,β,Z),...√1测试版。^ 2))));%截断正态分布域到[-5,5]区间FTDSurvProb (jj) =积分(@ (Z) vecCondProb (Z)。* normpdf (Z), 5、5);结束FTDDefProb = 1-FTDSurvProb;
比较FTD概率与个别发行人的违约概率。
figure plot(ProbDates', defprobb) datetick保持在…上绘图(ProbDates、FTDDefProb、,“线宽”3) datetick保存关标题(“FTD和个人违约概率曲线”)伊拉贝尔(“累积概率”)xlabel(“日期”)
假设篮子中的所有工具具有相同的回收率,或均质损失假设(见参考文献中的O'Kane),我们使用cdsspread
函数,但传递的FTD概率数据刚刚计算。
成熟= MarketDates;ProbDataFTD = [ProbDates, ftddefprobb];FTDSpread = cdsspread (ZeroData ProbDataFTD,解决、成熟度);
将FTD价差与个人价差进行比较。
图2:图表(MarketDates、MarketSpreads)日期勾选保持在…上情节(MarketDates FTDSpread,“线宽”, 3)关标题(“FTD和个人CDS利差”)伊拉贝尔(“FTD传播(bp)”)xlabel(“到期日”)
现有的FTD交换可以定价cdsprice
,使用相同的FTD概率。
Maturity0 = MarketDates (1);%假设在最近的市场日期到期Spread0 = 540;%现有FTD合同的扩展%假定恢复和概念的默认值FTDPrice=cdsprice(零数据、ProbDataFTD、结算、到期日0、展期0);fprintf('现有FTD合同价格:%g\n',FTDPrice)
现有FTD合同价格:17644.7
为了说明FTD价差对模型参数的敏感性,我们计算了一系列相关值的市场价差。
corr=[0.01 0.10 0.25 0.5 0.75 0.90 0.99 1];FTDSpreadByCorr=0(长度(到期日),长度(corr));FTDSpreadByCorr(:,1)=总和(市场利差);FTDSpreadByCorr(:,结束)=最大(市场利差);为ii=2:length(corr)-1 beta=sqrt(corr(ii))*one(尼苏尔,1);FTDSurvProb=zero(length(ProbDates));为jj = 1: nProbDates%向量化条件概率作为Z的函数condProb = @ (Z)刺激(normcdf (bsxfun (@rdivide,...-repmat (DefThresh (:, jj), 1,长度(Z)) + bsxfun (@times,β,Z),...√1测试版。^ 2))));%截断正态分布域到[-5,5]区间FTDSurvProb (jj) =积分(@ (Z) condProb (Z)。* normpdf (Z), 5、5);结束FTDDefProb = 1-FTDSurvProb;ProbDataFTD = [ProbDates, ftddefprobb];FTDSpreadByCorr(:,(二)= cdsspread (ZeroData ProbDataFTD,解决、成熟度);结束
FTD价差位于个人价差总和和最大价差之间的区间。当相关性增加到1时,FTD息差向篮子中单个息差的最大值(所有信用违约)靠拢。当相关性降至零时,FTD价差接近单个价差(独立信用)的总和。
图例=单元格(1,长度(corr));绘图(市场日期,FTDSpreadByCorr(:,1),凯西:”)传说{1}=“利差的总和”;datetick举行在…上为ii = 2:length(corr)-1 plot(MarketDates,FTDSpreadByCorr(:,ii)),“线宽”,3*corr(ii))图例{ii}=[“相关系数”num2str (ii) * 100 (corr)“%”];结束情节(MarketDates FTDSpreadByCorr(:,结束),“k -”。)图例{end}=“最大息差”;持有关标题(“不同相关性的FTD价差”)伊拉贝尔(“FTD传播(bp)”)xlabel(“到期日”)传说(传说,“位置”,“西北”)
对于期限较短且相关性较小的货币篮子,该货币篮子实际上是独立的(FTD息差非常接近单个利差的总和)。随着期限的延长,相关效应变得更加显著。
这是一个关于FTD扩展对相关性的依赖性的另一种可视化方法。
图surf(更正、市场日期、FTDSpreadByCorr)日期勾选(“y”) ax = gca;斧子。YDir =“反向”;视图(-40年,10)标题(“不同相关性和到期日的FTD利差”)xlabel(“相关”)伊拉贝尔(“到期日”) zlabel (“FTD传播(bp)”)
[1]吕弗勒,甘特和彼得·波施,基于Excel和VBA的信用风险建模, Wiley Finance, 2007。
[2] 奥凯恩,多米尼克,单名称和多名称信用衍生品模型, Wiley Finance, 2008。
cdsbootstrap
|cdsprice
|cdsrpv01
|cdsspread