c# - 如何计算历史股价的复利
问题描述
自标准普尔成立以来,我一直在研究它。
1927 年 12 月 30 日的初始开盘价为 17.66。
93 年后的 12 月 12 日,价格收于 3663.46。(33950 天)
总百分比回报增加 2,064,439.39% (TotalPercentage = (Gain / Cost) * 100)
我将如何在复利的基础上计算?换句话说,我希望能够说“平均复合年回报率为 xx%。我认为这会更有意义。
更具体地说,我如何在 c# 中计算它?
我是一名程序员,不是数学专业的,所以如果我的数学概念很幼稚,我深表歉意。
解决方案
正如评论所说,你应该寻找你真正想要计算的东西。
如果您只想要一个简单的复合年回报率,您可以只查找第 n 个根。那是,
在 C# 中,这将是
Math.Pow(3663.46 / 17.66, 1.0 / 93)
这将产生大约 5.9% 的 PA。但我们没有考虑其他因素,例如分配的股息。如果我们谈论股息,我们可能还想寻找股息再投资回报。这将需要更多信息,例如指数信托基金的每日收盘价和股息记录。然后我们会想知道我们应该考虑时间权重还是金钱权重回报。但这超出了这个编程问题的范围。
推荐阅读
- python - 这个嵌套列表理解是如何解释的?filtred = [str for str in decode.split() if not any(i in str for i in list)] python 3
- php - PHP in_array 不起作用或工作奇怪
- jquery - 客户端与服务器端
- asp.net-core - 可以从 kendoSwitch 传递数据值
- flask - 调用云功能后如何将 Flask 用户重定向到“成功完成”页面?
- python - 如何在 Tkinter Treeview 的标题列之间添加垂直线?
- php - 字符串是否包含 PHP 中的任何子字符串列表?
- c# - 从大型 xml 文件中读取单个元素的内部文本
- amazon-web-services - 如何通过 SSH 连接到我的 EC2 实例
- sql-server - 一对一的关系。两个表都需要 Id 列吗?