%KMV方程组
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)
%KMVOptSearch
EtoD=E/D;
VX=fsolve(@(x)KMVfun(EtoD,r,T,EquityTheta,x), [1,1]);
Va=VX(1)*E;
AssetTheta=VX(2);
%以下计算KMV模型
%r: 无风险利率
r=0.0225;
%T: Time to expiration
T=1;%输入 月数
%DP:违约点
%SD: 短期负债 LD: 长期负债
SD=3146285612.57;%输入
LD=691144080.36;%输入
%计算违约点
DP=SD+0.5*LD;
D=DP;%债务的市场价值,可以修改
%PriceTheta: 股票市场价格日波动ln(x2/x1)
PriceTheta=0.409;%(输入)
%EquityTheta: 年化市场波动率
EquityTheta=PriceTheta*sqrt(240);
%AssetTheta: volatility of asset
%E:股票总市值:流动股+股票价格*非流动股,此处非流通股的价值怎么计算需要再商讨
E= 9986380800;
%Va: 资产价值
%以下计算资产价值以及资产价值波动率
[Va,AssetTheta]=KMVOptSearch(E,D,r,T,EquityTheta);
%计算违约距离
DD=(Va-DP)/(Va*AssetTheta);
%计算违约率
EDF=normcdf(-DD);
运行后报错:
??? Input argument "x" is undefined.
Error in ==> KMV_DD at 3
d1=( log(x(1)*EtoD)+(r+0.5*x(2).^2)*T ) / ( x(2)*sqrt(T));
这是啥原因啊~~~