Я знал, что на мой вопрос ответили здесь .. financial python библиотека с функциями xirr и xnpv? ..
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
, когда я выполняю приведенный выше код для операций с фондами я получаю отрицательный остаток в 1-й итерации. думаю = 0,5-0,5 = 0 Из-за этого я получаю zerodivisionerror в следующей итерации. Почему я получаю отрицательный остаток .. как с этим бороться? / Заранее спасибо