首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >addTA - naCheck(x,n)中的错误:系列包含非前导NAs

addTA - naCheck(x,n)中的错误:系列包含非前导NAs
EN

Stack Overflow用户
提问于 2017-10-01 12:24:05
回答 2查看 1.7K关注 0票数 1

最近,我试图创建自己的技术指标,一个简单的黄金交叉指示器。50 - 200天将被添加到我的chartSeries图表.首先,下面的代码运行得很好,但是在更新的quantmod包发布后,它给出了以下错误消息:

代码(库存数据通过getSymbols函数在quantmod中下载)

代码语言:javascript
复制
#20dayEMA - 50dayEMA Technical indicator, Price and Volume
newEMA <- function(x){(removeNA(EMA(p[,6],n=50)-(EMA(p[,6],n=200))))
}
emaTA <- newTA(newEMA)
emaTA(col='lightgoldenrod3', 'Price')

然后它给了我一个错误消息:

naCheck(x,n)中的错误:系列包含非前导NAs

有谁知道如何去除这些不领先的NAs吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-03 07:43:20

您可以使用na.omit,并且不需要转换为xts-object,因为这是默认的。

代码语言:javascript
复制
library(quantmod)
getSymbols("VELO.CO")
p <- na.omit(VELO.CO)
newEMA <- function(x) {
  EMA(p[,6], n = 20) - (EMA(p[,6], n = 50))
}

emaTA <- newTA(newEMA)
barChart(VELO.CO)
emaTA(col = "lightgoldenrod3", "Price")
票数 0
EN

Stack Overflow用户

发布于 2017-10-02 19:01:35

我不熟悉quantmod包,但我反复使用您的代码,我想我找到了一个可行的解决方案:

代码语言:javascript
复制
library("quantmod")
getSymbols("VELO.CO")
p <- as.xts(c(VELO.CO))

# remove incomplete cases
vec <- which(!complete.cases(p))  # rows 2305 2398
p2 <- p[-vec, ]

newEMA <- function(x) {
    EMA(p2[, 6], n = 20) - (EMA(p2[, 6], n = 50))
}

emaTA <- newTA(newEMA)
barChart(VELO.CO)
emaTA(col = "lightgoldenrod3", "Price")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46512356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档