【发布时间】:2020-02-13 10:54:00
【问题描述】:
我知道我的问题在这里得到了回答..financial python library that has xirr and xnpv function?..
def xirr(transactions):
years = [(ta[0] - transactions[0][0]).days / 365.0 for ta in transactions]
residual = 1
step = 0.05
guess = 0.05
epsilon = 0.0001
limit = 10000
while abs(residual) > epsilon and limit > 0:
limit -= 1
residual = 0.0
for i, ta in enumerate(transactions):
residual += ta[1] / pow(guess, years[i])
if abs(residual) > epsilon:
if residual > 0:
guess += step
else:
guess -= step
step /= 2.0
return guess-1
当我为资金交易执行上述代码时,我在第一次迭代中得到负残差。 猜测=0.5-0.5=0 因此,我在下一次迭代中得到 zerodivisionerror。 为什么我得到负残差..如何处理这个?/ 提前致谢
【问题讨论】: