鱼C论坛

 找回密码
 立即注册
查看: 1087|回复: 1

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

[复制链接]
发表于 2024-1-4 09:49:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
各位大神,请赐教!

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



import pandas as pd
import numpy_financial as npf

def g(p,d):
    p5 = p/0.05
    list_g = [0.1,0.12,0.1,0.08,0.05]
    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)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 19:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表