TTR下的EMA功能错误

时间:2013-09-05 11:25:40

标签: r quantmod

我正在尝试让TTR包中的EMV功能正常工作。

library("quantmod")
library("TTR")
getSymbols("EBT.AX")
EMV(LoHi(EBT.AX), Vo(EBT.AX), n=9, maType="EMA", vol.divisor=10000)

这会产生以下错误消息:

Error in `[.xts`(HL, , 2) : subscript out of bounds.

根据TTR文件,EMV使用高低(HL)价格。但是 HL 不起作用。我已经成功地将 LoHi 用于其他指标(例如DonchianChannel),但它不适用于EMV。使用以下内容生成相同的错误:EMV(EBT.AX[,c("High","Low")],.....

我也试过了:

EMV(HLC(EBT.AX)[,-3], Vo(EBT.AX), n=9, maType="EMA", vol.divisor=10000)

但这会产生以下错误:Error in runSum(x, n) : Series contains non-leading NAs.我尝试了几种不同的股票,并且都产生了相同的错误但没有缺失值。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

EMV函数会在以下任何一种情况下抛出此错误:

  1. 任何给定时期的高低均等,或
  2. 任何给定时期的音量都为零。
  3. 纠正这两种情况,该功能将起作用。

    EBT.AX[,2] <- EBT.AX[,2]+1e-6
    EBT.AX[,5] <- EBT.AX[,5]+1e-6
    emv <- EMV(HLC(EBT.AX)[,-3], Vo(EBT.AX), n=9, maType="EMA", vol.divisor=10000)