会计python库_具有xirr和xnpv功能的财务python库?

下面是实现这两个功能的一种方法。import scipy.optimize

def xnpv(rate, values, dates):

'''Equivalent of Excel's XNPV function.

>>> from datetime import date

>>> dates = [date(2010, 12, 29), date(2012, 1, 25), date(2012, 3, 8)]

>>> values = [-10000, 20, 10100]

>>> xnpv(0.1, values, dates)

-966.4345...

'''

if rate <= -1.0:

return float('inf')

d0 = dates[0] # or min(dates)

return sum([ vi / (1.0 + rate)**((di - d0).days / 365.0) for vi, di in zip(values, dates)])

def xirr(values, dates):

'''Equivalent of Excel's XIRR function.

>>> from datetime import date

>>> dates = [date(2010, 12, 29), date(2012, 1, 25), date(2012, 3, 8)]

>>> values = [-10000, 20, 10100]

>>> xirr(values, dates)

0.0100612...

'''

try:

return scipy.optimize.newton(lambda r: xnpv(r, values, dates), 0.0)

except RuntimeError: # Failed to converge?

return scipy.optimize.brentq(lambda r: xnpv(r, values, dates), -1.0, 1e10)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值