【发布时间】:2011-03-30 17:11:41
【问题描述】:
我似乎无法通过 XTS 中的 period.apply() 直接使用 TTR 指标函数。请帮我弄清楚我做错了什么。
> require(TTR)
> require(quantmod)
> require(xts)
> data(sample_matrix)
> period.apply(sample_matrix, endpoints(sample_matrix,"weeks"), RSI)
Error in EMA(c(NA, 0.190714286249097, 0.190459011271606, 0, 0, 0, NA, :
Invalid 'n'
我也尝试过先as.xts(sample_matrix),但没有帮助。
【问题讨论】:
-
您的示例中的错误是因为
RSI的默认n=10并且没有10 天的周数。您还将一个 OHLC 对象发送到 RSI,它需要一个单变量对象。即使你解决了这些问题,?period.apply表示它会将函数应用于沿向量的非重叠区间,并返回一个长度为 INDEX-1 的向量;您正在尝试返回与sample_matrix长度相同的向量。如果您告诉我们您要完成的工作,而不是仅仅发布不起作用的代码,这将很有帮助。 -
@joshu-ulrich 感谢您指出我的错误。我正在尝试在 period.apply 中使用 [code]endpoints(sample_matrix, 'weeks', k = 2)[/code] ,以便我可以获得 2 周期间系列的 RSI 值。 to.period() 方法不支持非统一周期(例如 2、3 周而不是 1),所以我认为这可能会。
-
Paul,
to.period肯定支持非统一期。这就是k参数的用途(例如to.period(sample_matrix, "weeks", 2))。
标签: r xts quantitative-finance