根据《金融计算与建模:理论、算法与SAS程序》数里面对于First to Default的一篮子信用违约互换定价的例子
例子里面是十个债券
我给缩减到了3个 同时变换了些数字 整体程序应该没问题
但是始终跑不出来结果
求帮忙啊
毕业论文急用。。
程序如下:
proc iml;
cov={1.0000 0.4015 0.4193
0.4015 1.0000 0.3639
0.4193 0.3639 1.0000};
h={0.07,0.25,0.12};
T={[10000]0};
V={[10000]0};
r=0.03;
value=0;
rv=rannor(repeat(1000,10000,3));
Y=rv*(root(cov));
i=1;
j=1;
do while(i<=10000);
do while(j<=3);
x=cdf('Normal',Y[i,j]);
Y[i,j])=-(log(1-x))/h[j];
j=j+1;
end;
T[i]=min(Y[i,]);
if T[i]<6 then v[i]=50000*exp(-r*T[i]);
value=value+v[i];
j=1;
i=i+1;
end;
value=value/10000;
print value;
run;
quit;