def KMV_f(E,D,T,r,sigmaE):
n=10000
m=2000
diffOld=1e6 # a very big number
for i in sp.arange(1,10):
for j in sp.arange(1,m):
A=E+D/2+i*D/n
sigmaA=0.05+j*(1.0-0.001)/m
d1 = (log(A/D)+(r+sigmaA*sigmaA/2.)*T)/(sigmaA*sqrt(T))
d2 = d1-sigmaA*sqrt(T)
diff4E= (A*N(d1)-D*exp(-r*T)*N(d2)-E)/A # scale by assets
diff4A= A/E*N(d1)*sigmaA-sigmaE # a small number already
diffNew=abs(diff4E)+abs(diff4A)
if diffNew<diffOld:
diffOld=diffNew
output=(round(A,2),round(sigmaA,4),round(diffNew,5))
return output
#
c13_08_KMF_function.py 文件源码
python
阅读 23
收藏 0
点赞 0
评论 0
评论列表
文章目录