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 (将#修改为@)