伴随着衍生金融工具的出现,交易对手信用风险一直成为学术领域的主要课题。尤其是OTC市场上的产品缺乏严格监管,充斥着交易对手风险。与债券或贷款不同的是,这些信用敞口不仅有时间依赖,而且还受到市场上各种风险因子的影响,如利率期限结构、汇率等。关于交易对手的信用敞口,一般为正,通常分为Current Exposure(CE),Potential Future Exposure(PFE)。前者是指当前可观测到的信用敞口,根据Mark to Market的盯市估值可以在每一个时刻确认所持头寸的敞口大小,以此确定CE的值,CE(t)=Max(V(t),0)。后者是未来潜在的风险敞口,是随机的,可以用概率密度函数来描述它。实际上,在未来的每一个时点t(t>0)上,信用风险敞口都存在一个概率分布f(xt)。确定了这个分布,我们就可以确定如下两个指标,即Expected Credit Exposure和Worst(Largest)Credit Exposure。
图9.26
WCE是在一定概率下才有意义,它类似于VaR的概念(关于VaR的应用请参见风险价值与经济资本的应用章节)。
若是从时间轴上看,可以确定一列ECEt,于是也就引出了所谓Average Expected Credit Exposure(AECE)的概念,表达式为AECE=(1/T)ECEtdt。对应地有所谓的Expected Worst Credit Exposure(AWCE),定义为AWCE=(1/T)WCEtdt。
下面,我们将通过利率互换(Interest Rate Swap)和货币互换(Currency Swap)两个例子来说明如何求解以上六大指标(CE,PFE,ECE,WCE,AECE,AWCE),并寻找它们的特点和规律。
案例:Bank A和Bank B直接做了一笔利率互换协议,协议持续4年,名义本金100万美金,规定每年末Bank A向Bank B支付固定利息,Bank B向Bank A支付浮动利息(由每一期的期初确定浮动利率)。我们给出签订协议初的利率期限结构,首先确定利率互换的价格(固定利率),然后计算相应的信用风险敞口指标。
表9.3
对于Bank B而言,其价值V等价于持有一笔固息债券的多头和一般浮息债券空头。为简单考虑,我们假定浮息债券的价值固定为1。那么互换协议的价值之唯一风险因子就是这笔虚拟的固息债券的到期收益率。为了能够考察利率互换协议的未来价值的波动情况,就必须对其价值的风险因子指定所服从的随机过程。为了说明问题,我们定义其服从某个均值回复的利率随机过程,如下:
drt=(0.04-rt)dt+0.005rtdzt
在Excel中,我们应用了VBA自定义函数ECE_vasicek,将ECE的数据存在C列中,并作图显出了ECE的变化趋势。
Function ECE_vasicek(k As Double,theta As Double,sigma As Double, gammar As Double,t As Integer,r0As Double)As Double
图9.27
Dim m As Integer,n As Integer,value_pay_fix()As Double,r()As Double,rr()As Double
Re Dim r(0To t),rr(1To 50)
r(0)=r0
For m=1To 50
For n=1To t
r(n)=r(n-1)+k*(theta-r(n-1))*1/12+sigma*r(n-1)^
gammar*Sqr(1/12)*Application.Worksheet Function.Norm SInv(Rnd())
Next n(www.xing528.com)
rr(m)=Worksheet Function.Max(Bond_Clean_Price(1,r0,r(t),(48-t)/12,1)-1,0)
Next m
ECE_vasicek=Application.Worksheet Function.Average(rr)
End Function
注:为了加快Excel的计算速度,在程序中我们将蒙特卡罗模拟的次数定为50次,尽管非常小,但在图标中已经能够看到大致的变化趋势了。请读者修改程序,大幅度提高模拟次数可以看见更为光滑的曲线。
==以下是债券定价函数==
Function Bond_Clean_Price(Face_Value As Double,Coupon_Rate As Double, YTM As Double,Time_to_Maturity As Double,Pay_Frequency As Integer)
Dim num_period As Double,temp_sum As Double,i As Integer,Bond_Full_Price As Double,Accrual_Interest As Double
temp_sum=0
num_period=Pay_Frequency*Time_to_Maturity
For i=0To Int(num_period)
temp_sum=temp_sum+(Coupon_Rate*Face_Value/Pay_Frequency)/(1+YTM/Pay_Frequency)^(i+num_period-Int(num_period))
Next i
Bond_Full_Price=temp_sum+Face_Value/(1+YTM/Pay_Frequency)^num_period
Accrual_Interest=Coupon_Rate*Face_Value/Pay_Frequency*(1-num_period+Int(num_period))
Bond_Clean_Price=Bond_Full_Price-Accrual_Interest
End Function
请读者仿造以上的函数过程,自定义求解WCE的函数,其中涉及如何获得给定数组的分位数问题。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。