此示例显示了如何在同质损失假设下对首次违约(FTD)掉期进行定价。
首先违约互换是一种工具,当(以及如果)一篮子信贷工具中的第一种出现违约时,它将支付预先确定的金额。篮子里的信贷工具通常是债券。如果你假设一个信用事件后的损失金额对篮子里的所有信用都是一样的,你就在均匀的损失假设。这个假设使得模型更简单,因为篮子中的任何违约都会触发相同的支付金额。这个例子是这些工具的定价方法的实现,如O'Kane [2.]。该方法分为两个步骤:
用数值计算篮子的生存概率。
使用此生存曲线和标准单名信用违约掉期(CDS)功能查找FTD价差并为现有FTD掉期定价。
给定篮子中每个发行人的CDS市场报价,使用cdsbootstrap
为每个发行人校正个别违约概率曲线。
%利率曲线ZeroDates=datenum({“17-Jan-10”,“17-Jul-10”,“17-Jul-11”,“17-Jul-12”,...“17-Jul-13”,“17-Jul-14”});ZeroRates = [1.35 1.43 1.9 2.47 2.936 3.311]'/100;ZeroData = [zeroates ZeroRates];%CDS价差%MarketSpreads中的每一行对应于不同的发行人;每一行%列到不同的到期日(对应于MarketDates)MarketDates=datenum({“20-Sep-10”,“20-Sep-11”,“20-Sep-12”,“20-Sep-14”,...“2016年9月20日”});市场价差= [160 195 230 285 330;130 165 205 260 305;150 180 210 260 300;165 200 225 275 295];%发行人数量等于MarketSpreads中的行数日产汽车=规模(市场利差,1);%结算日期解决= datenum (‘2009年7月17日’);
在实践中,时间轴是离散化的,FTD生存曲线只在网格点处进行评估。本例每三个月使用一个点。要请求cdsbootstrap
返回所需特定网格点上的默认概率值,使用可选参数“ProbDates”
.将原始标准CDS市场日期添加到网格中,否则这些日期的违约概率信息将使用网格中最接近的两个日期进行插值,那么市场日期的价格将与原始市场数据不一致。
ProbDates=union(MarketDates,Daysad(结算,360*(0.25:0.25:8),1));nProbDates=length(ProbDates);DefProb=Zero(nIssuers,nProbDates);对于ii=1:nIssuers MarketData=[MarketDates MarketSpreads(ii,:)'];ProbData=cdsbootstrap(ZeroData,MarketData,结算,...“ProbDates”, ProbDates);DefProb (ii) = ProbData (:, 2) ';终止
这是篮子中每一个信用的校准违约概率曲线。
figure plot(ProbDates', defprobb) datetick title(“个别违约概率曲线”)伊拉贝尔(“累积概率”)xlabel(“日期”)
潜在变量用于不同的信用风险环境,有不同的解释。在某些情况下,潜变量是变量的代理资产价值变动,并且该变量的域被装箱,每个装箱对应一个信用评级。BIN限制或阈值由信贷转移矩阵确定。在我们的上下文中,潜在变量与违约时间,阈值确定离散化时间网格中可能出现默认值的存储单元。
从形式上讲,如果特定发行人的违约时间表示为 ,我们知道它的默认概率函数 ,一个潜变量 以及相应的阈值 满足
或
这些关系使潜变量方法便于模拟和分析推导 和 是时间的函数。
变量分布的选择 确定阈值 . 在标准潜变量模型中,变量 服从标准正态分布,从哪个
哪里 是累积标准正态分布。
用前面的公式来确定缺省的时间阈值,或只是默认阈值,对应于先前获得的篮子中信用的违约概率。
defsthresh=norminv(DefProb);
跟随奥凯恩[2.,你可以使用一个单因素潜在变量模型来推导篮子的生存概率函数的表达式。
给定参数 为每个发行人 ,并给出独立的标准正态变量 和 ,单因素潜变量模型假设潜变量 与发行人关联 满足
这就形成了发行人之间的相关性 和 属于 .所有潜在变量 共有因素 作为不确定性的来源,但每个潜在变量也有一个特殊的不确定性来源 .系数越大 时,潜在变量越像公共因素 .
利用潜变量模型,你可以导出一个篮子生存概率的解析公式 生存于过去 换句话说,这是它的默认时间 大于 是
哪里 是为发卡机构计算的上述默认阈值 , -th日期在离散网格中。条件返回单因子的值 ,即所有发行人都能度过难关的概率 是
产品是合理的,因为所有的 的是独立的。因此,条件是 这个 是独立的。时间上无违约的无条件概率 是的所有值的积分 之前的条件概率
具有 标准法向密度。
通过计算每个点的一维积分 在网格中,可以得到整个篮子的生存曲线的离散化,即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);FTDSurvProb=0(大小(概率));对于jj=1:nProbDates%向量化条件概率作为Z的函数vecCondProb=@(Z)prod(normcdf)bsxfun(@rdivide,...-repmat(DefThresh(:,jj),1,长度(Z))+bsxfun(@times,beta,Z),...sqrt(1-beta.^2));%将正态分布域截断为[-5,5]区间FTDSurvProb(jj)=积分(@(Z)vecondprob(Z)。*normpdf(Z),-5,5);终止FTDDefProb=1-FTDSurvProb;
将FTD概率与单个发行人的违约概率进行比较。
图表(ProbDates',DefProb)日期勾选保持在…上绘图(ProbDates、FTDDefProb、,“线宽”,3)保留日期关标题(“FTD和个人违约概率曲线”)伊拉贝尔(“累积概率”)xlabel(“日期”)
假设篮子中的所有工具具有相同的回收率,或均匀损失假设(见O'Kane[2.]),您可以使用cdsspread
函数,通过传递刚刚计算的FTD概率数据。
到期日=市场日期;ProbDataFTD=[ProbDates,FTDDefProb];FTDSpread=cdsspread(零数据,ProbDataFTD,结算,到期日);
将FTD价差与单个价差进行比较。
图2:图表(MarketDates、MarketSpreads)日期勾选保持在…上绘图(市场日期、FTDSpread、,“线宽”, 3)关标题(“FTD和个人CDS利差”)伊拉贝尔(“FTD价差(bp)”)xlabel(“到期日”)
现有的FTD掉期可通过以下方式定价:cdsprice
,使用相同的FTD概率。
Maturity0 = MarketDates (1);假定到期日为最近的市场日期分布0=540;%现有FTD合同的扩展%假设恢复和名义恢复的默认值FTDPrice = cdsprice (ZeroData ProbDataFTD,解决、Maturity0 Spread0);流('现有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=零(长度(到期日)、长度(更正));FTDSpreadByCorr(:,1)=总和(市场利差);FTDSpreadByCorr(:,end)=最大(市场利差)';对于ii=2:length(corr)-1 beta=sqrt(corr(ii))*one(尼苏尔,1);FTDSurvProb=zero(length(ProbDates));对于jj=1:nProbDates%向量化条件概率作为Z的函数condProb=@(Z)prod(normcdf)bsxfun(@rdivide,...-repmat(DefThresh(:,jj),1,长度(Z))+bsxfun(@times,beta,Z),...sqrt(1-beta.^2));%将正态分布域截断为[-5,5]区间FTDSurvProb(jj)=积分(@(Z)condProb(Z)。*normpdf(Z),-5,5);终止FTDSurvProb=FTDSurvProb(:,1);FTDDefProb=1-FTDSurvProb;ProbDataFTD=[ProbDates,FTDDefProb];FTDSpreadByCorr(:,ii)=cdsspread(零数据,ProbDataFTD,结算,到期);终止
FTD价差位于个人价差总和和最大价差之间的区间。当相关性增加到1时,FTD息差向篮子中单个息差的最大值(所有信用违约)靠拢。当相关性降至零时,FTD价差接近单个价差(独立信用)的总和。
图图例= cell(1,length(corr));情节(MarketDates FTDSpreadByCorr (: 1),凯西:”)图例{1}=“息差总和”;日期标记保持在…上对于ii=2:长度(corr)-1图(市场日期,FTDSpreadByCorr(:,ii),“线宽”,3*corr(ii))图例{ii} = [“科尔”num2str (ii) * 100 (corr)“%”];终止绘图(市场日期,FTDSpreadByCorr(:,结束),“k-。”)图例{end}=利差的马克斯;持有关标题(“不同相关性的FTD价差”)伊拉贝尔(“FTD价差(bp)”)xlabel(“到期日”)传奇,“位置”,“西北”)
对于短期和小型相关性,篮子实际上是独立的(FTD利差非常接近单个利差的总和)。对于较长的到期日,相关性效应变得更加显著。
这里是FTD利差对相关性依赖性的另一种可视化。
图surf(更正、市场日期、FTDSpreadByCorr)日期勾选(“是的”)ax=gca;斧头=“反向”;视图(-40,10)标题(“不同相关性和到期日的FTD利差”)xlabel(“相关性”)伊拉贝尔(“到期日”)兹拉贝尔(“FTD价差(bp)”)
Loeffler, Gunter和Peter Posch。使用Excel和VBA进行信用风险建模。威利金融,2007年。
多米尼克[2]•欧凯恩称。对单一名称和多名称信用衍生品进行建模。威利金融,2008年。
cdsbootstrap
|cdsprice
|cdsspread
|cdsrpv01