panison 发表于 2021-3-27 09:48

Python计算内部收益率(Excel可以直接用IRR()函数)

Excel可以直接用IRR()函数实现,使用Python编程实现只是为了练手{:1_893:}


"""
例题:
 2X14年初,甲公司购买了一项债券,剩余年限5年。
   买价101万元,另付交易费用3万元,该债券面值为100万元,票面利率为4%,每年末付息,到期还本。
   计算该债券的内部收益率。

可以直接用Excel的IRR()函数计算,数据区域:
投资 -104
第一年4
第二年4
第三年4
第四年4
第五年 104
"""
# 定义内部收益率函数 irr()
# 每期等额收付金额a, 第n期期末不含a的收付金额f,现值p
# 小数位精度保留10位


def irr(a, f, p, n):
    i = 1e-12
    for j in range(1, 13):
      while True:
            pi = a*((1 - pow(1 + i, -n))/i) + f*pow(1+i, -n)
            if pi < p:
                i = i - eval("1e-" + str(j))
                break
            else:
                i = i + eval("1e-" + str(j))
    return round(i, 10)


r = irr(100*0.04, 100, 101+3, 5)
print("该债券的内部收益率为:{}".format(r))

龍謹 发表于 2021-3-27 10:56

PY小白,围观学习,谢谢分享!

ying656 发表于 2021-3-27 11:07

py小白加理财小白 围观

Anyling 发表于 2021-3-27 11:17

小白围观,想学python,一直没时间学

panison 发表于 2021-3-27 11:30

Anyling 发表于 2021-3-27 11:17
小白围观,想学python,一直没时间学

我本人不是计算机专业的,也就是作为兴趣学的。想学的话,每天空闲时间30分钟,两个月入门足够了。
我自己也是小白,仅仅是刚入门而已。:handshake
页: [1]
查看完整版本: Python计算内部收益率(Excel可以直接用IRR()函数)