全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 悬赏大厅
2755 2
2017-02-27
悬赏 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实现么,或者有什么近似可取的方法,我自己试了下,实在弄不出来,求大神帮助!



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2017-2-27 23:45:07
本人MATLAB新手,啥都不会,只能依葫芦画瓢自己改了下,但是总是显示迭代超次数,不知道是哪里出错了还是怎么
function F=KMVfun(E,DD,r,T,EquityTheta,x)
EtoD=E/exp(log(x(1)*E)-DD*x(2)*sqrt(T)+(r-0.5*x(2)^2)*T);
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,DD,r,T,EquityTheta)
%KMV中x以及资产波动率的寻找

x0=[1,1];%搜素初始点
VaThetaX=fsolve(@(x) KMVfun(E,DD,r,T,EquityTheta,x), x0);%联立方程优化,求解x与公司资产波动率
Va=VaThetaX(1)*E;%公司资产市场价值=x*公司股权价值
AssetTheta=VaThetaX(2);%公司资产价值波动率

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-8-26 16:25:29
xyhwwwww 发表于 2017-2-27 23:45
本人MATLAB新手,啥都不会,只能依葫芦画瓢自己改了下,但是总是显示迭代超次数,不知道是哪里出错了还是怎 ...
楼主资产价值和波动率能算出来吗?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群