悬赏 500 个论坛币 未解决
function [ DD,EDF ] = KMVcompute( E,SD,LD,r,T,EquityTheta)
%计算违约距离和违约概率
DP=SD+0.5*LD;%计算违约概率
D=DP;%债务的市场价值,这里做简便计算
[Va,AssetTheta]=KMVOptSearch(E,D,r,T,EquityTheta);%计算资本的市场价值和资本的波动率
DD=(Va-DP)/(Va*AssetTheta);%违约距离计算
EDF=normcdf(-DD);%计算违约概率
end
function F=KMVfun(EtoD,r,T,EquityTheta,x)
d1=( log(x(1)*EtoD)+(r+0.5*x(2)^2)*T ) / ( x(2)*sqrt(T));
d2=d1-x(2)*sqrt(T);
F=[ x(1)*normcdf(d1)-exp(-r*T)*normcdf(d2)/EtoD-1;
normcdf(d1)*x(1)*x(2)-EquityTheta];%根据最优化函数 需要列出方程组
function [Va,AssetTheta]=KMVOptSearch(E,D,r,T,EquityTheta)
%KMV中x以及资产波动率的寻找
K=E/D;
x0=[1,1];%搜素初始点
VaThetaX=fsolve(@(x) KMVfun(K,r,T,EquityTheta,x), x0);%联立方程优化,求解x与公司资产波动率
Va=VaThetaX(1)*E;%公司资产市场价值=x*公司股权价值
AssetTheta=VaThetaX(2);%公司资产价值波动率
---------------------------------------------
以上是求KMV的matlab模型,求助此模型可以反向求解吗,就是已知E,r,T,EquityTheta,DD的情况下,我想反向求出D/DP。
。。能通过matlab实现么,或者有什么近似可取的方法,我自己试了下,实在弄不出来,求大神帮助!