nError:'float'对象不能解释为索引

时间:2017-12-10 16:07:34

标签: python

我一直收到这个错误,我不知道我做错了什么?希望有人可以帮助我。我的代码是:

file="path"; name=$(cat "$file")

我的价值观是:

def bmsim_vec(T, N, X0, mu, sigma, numsim):
    np.random.seed(0)
    deltaT = float(T)/N
    tvec = np.linspace(0, T, N+1)
    z = np.random.randn(numsim, N+1)
    dX = mu*deltaT + sigma*np.sqrt(deltaT)*z
    dX[:, 0] = 0.
    X = np.cumsum(dX, axis=1)
    X += X0
    return tvec, X

def certificate(S0, T, R, sigma, delta, numsim=3):
    N = T
    r = np.log(1+R)
    X0 = np.log(S0)
    nu = (r-delta)-0.5*sigma**2
    _, X = bmsim_vec(T, N, X0, nu, sigma, numsim)
    S = np.exp(X)
    pay = np.zeros_like(S)
    payoffs = np.zeros(numsim)
    for i in xrange(numsim):
        for j in xrange(1, T+1):
            pay[i, j] = np.maximum((1+(S[i, j]-S[i, j-1])/S[i, j-1]), (1+R))
            payoffs[i] = pay[i,1:].mean()
    g = np.exp(-r*T)*(payoffs)**T*S0
    C = g.mean(); s = g.std()
    zq = norm.ppf(0.975)
    Cl = C - zq/np.sqrt(numsim)*s
    Cu = C + zq/np.sqrt(numsim)*s
    return C, Cl, Cu

我不断得到的错误就是这个:

S0=11.;T=10.;R=0.02;sigma=0.3;delta=.01
certificate(S0, T, R, sigma, delta, numsim=3)

TypeError:'float'对象不能解释为索引

希望有人看到我的错误。谢谢!

0 个答案:

没有答案