python做估值模型_关于在Python用KMV模型估计资产价值及其波动

import scipy as sp

import pandas as pd

import scipy.stats as stats

from scipy import log,sqrt,exp

# input area

D=30.            # debt

E=70.            # equity

T=1.             # maturity

r=0.07           # risk-free

sigmaE=0.4       # volatility of equity

#

# define a function to siplify notations later

def N(x):

return stats.norm.cdf(x)

#

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)

diff4A= (A*N(d1)-D*exp(-r*T)*N(d2)-E)/A  # scale by assets

diff4sigmaE= A/E*N(d1)*sigmaA-sigmaE     # a small number already

diffNew=abs(diff4A)+abs(diff4sigmaE)

if diffNew

diffOld=diffNew

output=(round(A,2),round(sigmaA,4),round(diffNew,5))

return output

#

print("KMV=", KMV_f(D,E,T,r,sigmaE))

print("KMV=", KMV_f(D=65e3,E=110e3,T=1,r=0.01,sigmaE=0.2))

对于此代码中对A和sigmaA的定义实在不怎么理解,求助各位了

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值