KMV模型的Python实现

原文是建立在https://www.jianshu.com/p/ee33c4375a8e的基础之上的,在检验其代码时发现这一ETOD代入有问题,因为这篇文章是在matlab上的代码做的,我看matlab上也是这样,就没太搞懂。

具体更改的代码

```def KMVOptSearch(E,D,r,T,EquityTheta):

    def KMVfun(x,E,D,r,T,EqutityTheta):

        d1 = (np.log(x[0]/D)+(r+0.5*x[1]**2)*T)/x[1]*np.sqrt(T)

        d2 = d1-x[1]*np.sqrt(T)

        return [E-x[0]*stats.norm.cdf(d1,0,1)+D*np.exp(-r*T)*stats.norm.cdf(d2,0,1),

                EqutityTheta-x[0]*stats.norm.cdf(d1,0,1)*x[1]/E]

    VaThetaX = fsolve(KMVfun,[100,0.001],args=(E,D,r,T,EquityTheta))

    Va = VaThetaX[0]

    AssetTheta = VaThetaX[1]

    return Va, AssetTheta```

但是运行起来总会报错,报错内容是RuntimeWarning: invalid value encountered in log

还希望有人指点一下

你可能感兴趣的:(KMV模型的Python实现)