微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python目标寻求解决贴现率变量

如何解决python目标寻求解决贴现率变量

我知道如何使用 numpy irr 和 npv,但是,当其中一个现金流(最终价值)取决于该比率时,我正在努力解决使我的 NPV = 0 的比率。实际上,我需要找到一种方法来编写目标搜索函数,通过更改所有现金流的贴现因子将 NPV 设置为 0。所以解决这样的事情:

  1. 现金支出(在这种情况下,市值为负值)
  2. cashflow_1 /(1 + 利率 + 点差)^1
  3. cashflow_2 /(1 + 利率 + 点差)^2
  4. cashflow_3 /(1 + 利率 + 点差)^3
  5. ((cashflow_3 * (1 + lt_growth_rate)) / (rate + spread - lt_growth_rate)) / (1 + rate + spread)^3

并且我需要找到价差度量使我的 NPV = 市值的位置,步骤 0,即零值。

这是我到目前为止没有运气的尝试:


import numpy as np
from scipy.optimize import newton,fsolve


def fn(x):
    return np.npv(x,[-tst['mkt_cap'][i] + (tst['fcfe_1'][i]/(1+ x + tst['10y_tsy'][i])) + (tst['fcfe_2'][i]/(1+ x + tst['10y_tsy'][i])**2) + (tst['fcfe_3'][i]/(1+x+tst['10y_tsy'][i])**3) + ((tst['fcfe_3'][i] * (1+terminal_growth))/(tst['10y_tsy'][i] + x - terminal_growth))])

[newton(fn,x0=0) for x in range(len(tst))]

我也尝试过使用这里的 GoalSeek 函数 (https://github.com/DrTol/GoalSeek_Python)

像这样:

[print(GoalSeek(fn,goal,x0)) for i in range(len(tst))]

其中目标为 0 且 x0=.05,一个猜测值

任何帮助将不胜感激!谢谢。

编辑:这里是数据帧的片段,来自主数据帧而不是“tst”,它只是我正在测试的一个切片:

其中“10y_tsy”是每个发行人的 10 年期政府债券(对于不同的住所国家,它们的价值不同),fwiw。

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。