【发布时间】:2013-01-22 04:08:13
【问题描述】:
我正在学习 R(及其通过 quantmod lib 在交易任务中的应用),并定期浏览社区以从这里获得很多新知识和技巧。我对 R 的总体印象,尤其是对 quantmod lib 的印象——它很棒。
此时我需要经验丰富的 R 用户的帮助。我正在使用通过 getSymbols 下载的时间序列,我需要分别从局部最小值/最大值计算累积增长/下降。
我可以使用 FOR 循环来解决我的任务,也可以在 MS Excel 中进行必要的建模,但我想找出更简单的解决方案,不需要 FOR 循环并且在 R 中更“原生”。
示例。 输入数据:
20121121 79810
20121122 79100
20121123 80045
20121126 81020
20121127 80200
20121128 81350
20121129 81010
20121130 80550
20121203 80780
20121204 81700
20121205 83705
20121206 83350
20121207 83800
20121210 85385
结果:
CLOSE Cumulative gr/dd
20121121 79810 N/A
20121122 79100 0.58%
20121123 80045 1.55%
20121126 81020 2.37%
20121127 80200 -0.10%
20121128 81350 0.06%
20121129 81010 -0.76%
20121130 80550 -0.82%
20121203 80780 0.73%
20121204 81700 3.78%
20121205 83705 5.19%
20121206 83350 -1.50%
20121207 83800 1.67%
20121210 85385 2.22%
【问题讨论】:
-
您假设这里的人熟悉计算累积增长/回撤的概念。您能详细说明一下您是如何获得“累积 gr/dd”的吗?
-
.. 进一步说明@agstudy 的观点:也许可以减少数据集的行数,并准确突出显示计算 0.58% 1.55% 所采取的步骤,以此类推,使用
for循环......然后也许我们可以帮助您改进它:) -
是的,你们两个都是对的。我应该提供更多细节和示例代码(使用 FOR)来阐明任务。一旦我使用 R 进入我的家用 PC,我就会这样做。简单地说 - 在资产增长的同时,我们计算累积 ROC。当资产开始下降时 - 我们从局部最大值(资产完成增长并开始下降的点)开始计算累积 ROC。当资产停止下跌并再次开始增长时 - 我们开始从局部最小值(即资产停止下跌并开始新一轮增长的点)计算累积 ROC。
-
经过一些谷歌搜索和反复试验后,我已经解决了我的任务,并用我的结果更新了初始帖子,以供参考。
-
@UncleKo,而不是在您的问题标题中添加“已解决”,您应该发布您的解决方案作为答案并接受它。
标签: r time-series xts quantmod