首页 > 解决方案 > 如何计算历史股价的复利

问题描述

自标准普尔成立以来,我一直在研究它。

1927 年 12 月 30 日的初始开盘价为 17.66。

93 年后的 12 月 12 日,价格收于 3663.46。(33950 天)

总百分比回报增加 2,064,439.39% (TotalPercentage = (Gain / Cost) * 100)

我将如何在复利的基础上计算?换句话说,我希望能够说“平均复合年回报率为 xx%。我认为这会更有意义。

更具体地说,我如何在 c# 中计算它?

我是一名程序员,不是数学专业的,所以如果我的数学概念很幼稚,我深表歉意。

标签: c#math

解决方案


正如评论所说,你应该寻找你真正想要计算的东西。

如果您只想要一个简单的复合年回报率,您可以只查找第 n 个根。那是,

公式

公式

在 C# 中,这将是

Math.Pow(3663.46 / 17.66, 1.0 / 93)

这将产生大约 5.9% 的 PA。但我们没有考虑其他因素,例如分配的股息。如果我们谈论股息,我们可能还想寻找股息再投资回报。这将需要更多信息,例如指数信托基金的每日收盘价和股息记录。然后我们会想知道我们应该考虑时间权重还是金钱权重回报。但这超出了这个编程问题的范围。


推荐阅读