创建EMA公式时遇到错误

时间:2017-06-14 06:51:22

标签: r

当我尝试在货币对上使用EMA功能时,在收盘价上,它似乎给我一个错误。代码和错误如下:

getSymbols('JPY=X', src= 'yahoo')     
JPY.EMA.10 <- EMA(`JPY=X`.Close, n=10)  
Error: unexpected symbol in "JPY.EMA.10 <- EMA(`JPY=X`.Close"

ps:我是R领域的初学者。抱歉,如果我的问题看起来太微不足道了。

问候
哈维

1 个答案:

答案 0 :(得分:1)

确实存在一个带有等号的股票代码。

因此,这种符号会有点奇怪,但我们可以让它轻松工作:

library(quantmod)

getSymbols('JPY=X', src= 'yahoo')
#> Warning: JPY=X contains missing values. Some functions will not work if
#> objects contain missing values in the middle of the series. Consider using
#> na.omit(), na.approx(), na.fill(), etc to remove or replace them.
#> [1] "JPY=X"

EMA(`JPY=X`$`JPY=X.Close`, n = 10, na.rm = T)
#> Error in naCheck(x, n): Series contains non-leading NAs

我们仍然会收到错误,但这与EMA函数有关,而不是某些语法错误。

您可以按警告中的建议使用na.omit(`JPY=X`)修复错误。

我们还可以简化我们的生活,将变量分配给更标准的名称:

JPY_Close <- na.omit(`JPY=X`$`JPY=X.Close`)
EMA(JPY_Close, n = 10)
#>                  EMA
#> 2007-01-01        NA
#> 2007-01-02        NA
#> 2007-01-03        NA
#> 2007-01-04        NA
#> 2007-01-05        NA
#> 2007-01-08        NA
#> 2007-01-09        NA
#> 2007-01-10        NA
#> 2007-01-11        NA
#> 2007-01-12 119.26700
#> 2007-01-15 119.47664
#> 2007-01-16 119.71543
#> 2007-01-17 119.87990
#> 2007-01-18 120.13083
#> 2007-01-19 120.32704
#> 2007-01-22 120.56212
#> ...