python计算IRR公式

  1. Python计算IRR公式
from scipy import optimize

# 计算现值
def xnpv(rate, cashflows):
    return sum([cf / (1 + rate) ** ((t-cashflows[0][0]).days/365.0) for (t, cf) in cashflows])

# 计算xirr
def xirr(cashflows, guess=.01):
    try:
        return optimize.newton(lambda r: xnpv(r, cashflows), guess)
    except:
        # print('无法计算irr')
        # return -1
        try:
            guess = -0.5
            return optimize.newton(lambda r: xnpv(r, cashflows), guess)
        except:
            return 0

cashflows = [(datetime.date(2021, 2, 9), -50000), (datetime.date(2021, 2, 9), -30000)]

posted on 2023-05-31 11:23  朝朝暮Mu  阅读(447)  评论(0)    收藏  举报