我写了一些代码来计算内部收益率,结果很好。。。在import scipy.optimize as optimize
import datetime
def npv(cf, rate=0.1):
if len(cf) >= 2:
first_date = min([x[0] for x in cf])
dcf = [x[1] * (1 /
((1 + rate) ** ((x[0] - first_date).days / 365))) for x in cf]
return sum(dcf)
elif len(cf) == 1:
return cf[0][1]
else:
return 0
def irr(cf):
f = lambda x: npv(cf, rate=x)
r = optimize.newton(f, 0, maxiter=70)
return r
…但当我尝试这种现金流时
^{pr2}$
我得到这个错误:File "/Users/maxim/Dropbox/Python/FinProject/fintrack/main/models.py", line 503, in getIRR
return irr(cf)
File "/Users/maxim/Dropbox/Python/FinProject/fintrack/main/models.py", line 37, in irr
r = optimize.newton(f, 0, maxiter=70)
File "/Library/Frameworks/Pyt