1

我正在尝试使 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. 我尝试了几种不同的股票,并且都产生了相同的错误,但没有缺失值。

任何帮助,将不胜感激。

4

1 回答 1

1

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

  1. 任何给定时期的最高价和最低价相等,或
  2. 任何给定时期的成交量为零。

纠正这两种情况,该功能将起作用。

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)
于 2013-09-05T11:46:26.163 回答