admin管理员组

文章数量:1558091

目录

  • Python中的金融函数
    • 一、numpy_financial金融函数
    • 二、神奇的投资公式

Python中的金融函数

NumPy的金融函数已经被淘汰并会逐步从Numpy移除。(The financial functions in NumPy are deprecated and eventually will be removed from NumPy),我们使用新的包numpy_financial,以下就是新的包的函数的介绍。

一、numpy_financial金融函数

print('--------一、numpy_financial金融函数---------')

# 1、npf.fv 终值函数
# numpy_financial.fv(rate, nper, pmt, pv, when=‘end’)
# rate:利率
# nper:投入的次数
# pmt,每次投入值,投入则添负值。
# pv:初次投入值,也叫现值。
# 以利率3%, 每季度支付金额10, 存款周期5年, 现值1000为参数, 计算终值:
print("以利率3%, 每季度支付金额10, 存款周期5年, 现值1000为参数, 计算终值:",npf.fv(0.03/4, 5 * 4, -10, -1000))


# 3、numpy_financial.npv(rate, values)
# rate:利率
# values:为现金流序列。
# 函数返回函数的现值。
# 第一期投入100,后面每期依次取39,59,55,20,全部取完,问初次还要投入多少
print("第一期投入100,后面每期依次取39,59,55,20,全部取完,问初次还要投入多少:",npf.npv(0.281,[-100, 39, 59, 55, 20]))
#-0.0084785916384548798

# 4、numpy_financial.irr 内部收益率
# numpy_financial.irr(values)
# values:为现金流序列
# 投入100 一期取出38 二期取出48 三期取出90 四期取出17 五期取出36,问要多大的利率才能支撑这种取出
print("投入100 一期取出38 二期取出48 三期取出90 四期取出17 五期取出36,问要多大的利率才能支撑这种取出:",npf.irr([-100, 38, 48, 90, 17, 36]))
# 0.3734202268880209

# 5、numpy_financial.pmt 计算分期付款
# numpy_financial.pmt(rate, nper, pv, fv=0, when=‘end’)
# rate:利率
# nper:投入的次数
# pv:现值
# fv:终值
# 假设贷款1000000, 年利率10%, 30年还完, 问每月支付多少钱
print("假设贷款1000000, 年利率10%, 30年还完, 问每月支付多少钱:",npf.pmt(0.10/12, 12 * 30, 1000000))
# -8775.71570089

# 7、numpy_financial.rate 计算利率
# numpy_financial.rate(nper, pmt, pv, fv, when=‘end’, guess=0.1, tol=1e-06, maxiter=100)
# nper:贷款年数
# pmt:每期投入
# pv:现值
# fv:终值
# 一共付167期, 每期付款100, 贷款9000, 终值为0,问贷款利率
print("一共付167期, 每期付款100, 贷款9000, 终值为0,问贷款利率:",12 * npf.rate(167, -100, 9000, 0))
# 0.0999756420664

二、神奇的投资公式

print('--------二、神奇的投资公式---------')
# 二、神奇的投资公式
# 用户累计投入56万,1.4wx40
# 两种投资模式:
# 1、保守,5%年化收益,40年收169万,投资回报训练场3倍。
# 2、激进:20%年收益率,40年收益1.02亿无,投资回报184倍。
def sta001(k ,nyear ,xd):
    d2 =npf.fv(k ,nyear ,-xd ,-xd);
    d2 =round(d2)
    return d2

# =======================

d40 =1.4 *40
print("d40,40 x 1.4=" ,d40)
d= sta001(0.05, 40 - 1, 1.4);
print("01保守投资模式,", d, round(d / d40))

d2 = sta001(0.20, 40 - 1, 1.4);
print("02激进投资模式,", d2, round(d2 / d40))

dk = round(d2 / d)
print("dk,两者差别(xx倍):", dk)
# 01保守投资模式, 169.0 3.0
# 02激进投资模式, 10281.0 184.0
# dk,两者差别(xx倍): 61.0

###参考
[1]: https://pypi/project/numpy-financial/
[2]: https://blog.csdn/benjorsun/article/details/115907760

本文标签: 复利威力函数金融numpyfinancial