python - 年回报率与年化回报率与复合年增长率
问题描述
我在 Internet 和 Stack Overflow 上阅读了关于年回报率、年化回报率和CAGR的不同文章,我有点困惑,我不知道它们是不同的还是相同的。
这里是我需要的。假设我在 3 年内的增长率为 10%。从 100 美元开始,我有:
初始资本:100$ 第 1 年:110$ 第 2 年:121$ 第 3 年:133$
现在这里的年回报率是 10%,年平均回报率应该是 33/3=11%。正确的?显然,年平均回报率并不能很好地衡量增长率,因为没有考虑复利。我对么?
假设现在我在问题中反转我的输入日期。我有初始资本 100 美元和最终 133 美元,我想计算增长率。公式应该是(大写最终/大写初始)^(1/3)-1。
(133/100)^(1/3)-1=(1,33)^(1/3)=0.098
或多或少对应于 10%。到目前为止,我的计算和推理是否正确?如果是这样,年回报率与复合年增长率有什么区别?看起来他们是一样的,对吗?
假设现在我的时间范围是从 2008 年 9 月 10 日到 2012 年 2 月 10 日,我的时间范围是 3 年 132 天。根据这个网站(见视频)https://www.investopedia.com/ask/answers/071014/what-formula-calculating-compound-annual-growth-rate-cagr-excel.asp这里的年数是( 3 + K) 其中 K 是以年为单位转换的天数,在我们的示例中 K=132/365=0.36 所以年数 N=3+0.36=3.36,这是我应该在公式中使用的值。我对么?
现在最后一个疑问是计算 K 的网站建议除以 360 或 365 的天数,但我应该在计算中只考虑股市开盘的天数(一个或多或少等于 272 的数字)吗?
关于 python 的最后一个问题是,假设我有一个熊猫数据框 df,有人可以放一段我可以用来计算年回报率和/或 CAGR 的代码片段。代码应该考虑到时间框架可能有超过一年的天数,而不是完美的一年的倍数(如上面的示例)。
我试着写它,但我不确定我做得很好。
此外,如果我的时间框架少于一年,会发生什么?我应该使用年化回报吗?在这种情况下代码如何变化?
提前感谢您的帮助。
解决方案
你的公式是正确的,但假设增长 10%,你最终会得到 133.1 而不是 133。
那么:(133.1/100)^(1/3)-1 = 10%
推荐阅读
- database - 在cassandra中获取我的布尔字段为空的所有行
- html - 如何创建 3 个包含每个包含图像和一些文本的框?
- jquery - 在单击 a href 之前显示 jquery ui / bootstrap 对话框
- javascript - 在实例化时绑定其他属性
- javascript - 如何一个接一个/一个完成后执行这些功能?
- spring - 使用 Spring Data 将对象转换为任意对象
- h2o - 在 Ubuntu 下无法连接到 R 中的 h2o
- javascript - 从功能子组件访问数组
- python - 我该如何解决这个错误?我正在尝试运行模型,但不断收到此关键错误
- c# - 使用 AutoMapper 7 / C# 将父模型映射到子模型