首页 > 解决方案 > 年回报率与年化回报率与复合年增长率

问题描述

我在 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 的代码片段。代码应该考虑到时间框架可能有超过一年的天数,而不是完美的一年的倍数(如上面的示例)。

我试着写它,但我不确定我做得很好。

此外,如果我的时间框架少于一年,会发生什么?我应该使用年化回报吗?在这种情况下代码如何变化?

提前感谢您的帮助。

标签: pythonpandas

解决方案


你的公式是正确的,但假设增长 10%,你最终会得到 133.1 而不是 133。

那么:(133.1/100)^(1/3)-1 = 10%


推荐阅读