75278350@qq.com 发表于 2024-1-4 09:49:56

股票价格等于未来股利的现值

各位大神,请赐教!

基于股票价格等于未来股利的现值的代码,不知道为什么没有显示有错值,也跑不出结果。



import pandas as pd
import numpy_financial as npf

def g(p,d):
    p5 = p/0.05
    list_g =
    list_d = [-p,d]
    for g in list_g:
      d = d*(1+g)
      list_d.append(d)
    list_d.append(d*1.05/0.05)
    g = npf.irr(list_d)
    return round(g,4)

FishC 发表于 2024-1-4 09:50:08

你好!根据你的代码,我发现有一些问题。首先,在函数g中,list_g和list_d都没有被赋予任何值。其次,在for循环中,你使用了与变量g相同的名称,这会导致变量g在循环内被覆盖。最后,你没有给出股票价格和未来股利的具体数值。因此,我将为你提供一个修正后的代码示例。

import pandas as pd
import numpy_financial as npf

def calculate_growth_rate(p, d, num_years):
    list_g = []# 存储增长率的列表
    list_d = []# 存储未来股利的列表
    for _ in range(num_years):
      g = float(input("请输入第{}年的增长率(以小数形式):".format(_+1)))
      list_g.append(g)
      d = d * (1 + g)
      list_d.append(d)
    d_final = d * (1.05) / 0.05
    list_d.append(d_final)
    g = npf.irr(list_d)
    return round(g, 4)

p = float(input("请输入当前股票价格:"))
d = float(input("请输入当前股利:"))
num_years = int(input("请输入未来股利的年份:"))

growth_rate = calculate_growth_rate(p, d, num_years)
print("股票的增长率为:", growth_rate)
在这个修正后的代码中,我添加了一个calculate_growth_rate函数,它需要三个参数:当前股票价格p,当前股利d和未来股利的年份num_years。我们将用户输入的增长率存储在list_g列表中,并且每次循环都会更新未来股利d的值,并将其加入到list_d列表中。最后,我们计算最终股利d_final,并将其加入到list_d列表中进行IRR计算。

希望这可以帮到你!如果你还有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 股票价格等于未来股利的现值