如何避免在ADX功能中包含当天的HLC价格

时间:2017-05-14 14:08:15

标签: r quantmod

我想使用ADX功能(TTR包)。 我使用以下语法,但我不确定当前的价格是否是公式的一部分。如果他们那么我就不能使用这个函数进行预测。有没有办法避免当天的价格与ADX。 这是我使用的代码行:

AMZN$ADX14<-ADX(HLC(AMZN),n = 14, maType="EMA", wilder=TRUE, na.rm=TRUE)

2 个答案:

答案 0 :(得分:3)

查看源代码,是的,给定时间戳的收盘价用于计算该时间戳上的相应ADX值。

根据您的描述,您似乎想要使用ADX的lag 1个值,您可以通过这种方式实现(为简单起见,n = 6):

AMZN$ADX6 <- ADX(HLC(AMZN),n = 6, maType="EMA", wilder=TRUE, na.rm=TRUE)
AMZN$ADX6lag1 <- lag.xts(ADX(HLC(AMZN),n = 6, maType="EMA", wilder=TRUE, na.rm=TRUE))

head(AMZN, 13)
           AMZN.Open AMZN.High AMZN.Low AMZN.Close AMZN.Volume AMZN.Adjusted      DIp      DIn        DX     ADX6    DIp.1    DIn.1      DX.1 ADX6lag1
2007-01-03     38.68     39.06    38.05      38.70    12405100         38.70       NA       NA        NA       NA       NA       NA        NA       NA
2007-01-04     38.59     39.14    38.26      38.90     6318400         38.90       NA       NA        NA       NA       NA       NA        NA       NA
2007-01-05     38.72     38.79    37.60      38.37     6619700         38.37       NA       NA        NA       NA       NA       NA        NA       NA
2007-01-08     38.22     38.31    37.17      37.50     6783000         37.50       NA       NA        NA       NA       NA       NA        NA       NA
2007-01-09     37.60     38.06    37.34      37.78     5703000         37.78       NA       NA        NA       NA       NA       NA        NA       NA
2007-01-10     37.49     37.70    37.07      37.15     6527500         37.15       NA       NA        NA       NA       NA       NA        NA       NA
2007-01-11     37.17     38.00    37.17      37.40     6465600         37.40  7.54711 23.32760 51.111380       NA       NA       NA        NA       NA
2007-01-12     37.36     38.21    37.27      38.20     4466400         38.20 10.33458 18.93201 29.376237       NA  7.54711 23.32760 51.111380       NA
2007-01-16     38.40     38.89    37.97      38.66     5643700         38.66 21.85520 15.50147 17.008279       NA 10.33458 18.93201 29.376237       NA
2007-01-17     38.70     39.00    37.78      37.88     5026800         37.88 16.96372 15.51769  4.451876       NA 21.85520 15.50147 17.008279       NA
2007-01-18     37.50     37.65    36.72      36.98     9105000         36.98 13.51296 30.94944 39.216234       NA 16.96372 15.51769  4.451876       NA
2007-01-19     36.69     37.48    36.60      37.02     6095900         37.02 11.40158 28.24434 42.482962 30.60783 13.51296 30.94944 39.216234       NA
2007-01-22     37.65     37.90    36.80      36.95     8317000         36.95 16.48641 22.88154 16.244505 28.21394 11.40158 28.24434 42.482962 30.60783

在时间戳2007-01-22上,您可以使用ADX6lag1 = 30.60783(实际上是在2007-01-19上计算的,以预测该36.95栏上的关闭。

答案 1 :(得分:0)

您可以在运行ADX之前过滤掉当前日期 getSymbols("AMZN",to=Sys.Date()-1)