0

我试图确定需要发送给 quantstrat 的 add.indicator() 参数的详细程度。

在技​​术分析术语中,我尝试使用一组平滑的 ADX 指标进行交易,并通过枝形吊灯止损退出。

以下是我想要添加为指标的函数,以及我正在使用的相应 add.indicator 方法:

首先是吊灯停止出口:

cstop <- function(HLC, n=22) {
  high22 <- runMax(Hi(HLC), n)
  custATR <- ATR(HLC,n)[,2]
  chandy <- high22 - custATR *3
  return(chandy)
}

add.indicator(strategy = strategy.st, name="cstop", 
              arguments=list(HLC=quote(HLC(mktdata)), n=22), 
              label="cstop")

现在是 ADX 条目的一部分:

custplusDI <- function(HLC, n=14) {
  plusDI <- ADX(HLC,n)[,1]
  plusadx <- EMA(plusDI,8)
  return(plusadx)
}


add.indicator(strategy = strategy.st, name="custplusDI", 
              arguments=list(HLC=quote(HLC(mktdata)), n=14), 
              label="PlDIEMA")

我的问题是这些函数产生的数字与它们在 quantmod 上的数字不同(它们被准确反映)。注意 指标仍然返回值,但它们与 quantmod 值略有偏差,所以我想知道我的 add.indicator() 函数的参数是否足够丰富。我需要添加更多参数吗?谢谢你的帮助。

我正在比较 cstop 公式:

> x <- as.xts(cstop(PINDUODUO,22))
> x["2019-12-26/2020-01-17"]
                 e1
2019-12-26 36.26062
2019-12-27 36.44514
2019-12-30 36.59081
2019-12-31 36.71896
2020-01-02 38.38809
2020-01-03 38.68500
2020-01-06 38.70250
2020-01-07 38.68648
2020-01-08 38.70937
2020-01-09 38.89576
2020-01-10 38.94140
2020-01-13 38.90998
2020-01-14 38.95907
2020-01-15 39.05502
2020-01-16 39.01706
2020-01-17 39.02720

到 quantstrat 中的 e1.cstop (应该是同一件事??):

>test = applyIndicators(strategy.st, mktdata=PINDUODUO)
>test["2019-12-26::2020-01-20"]

在同一时间段内包含:

e1.cstop
34.45244281
34.70823709
34.83331841
34.92407648
36.32570946
36.6536343
36.70619674
36.68546062
36.75430368
36.87001324
36.76364905
36.82575555
36.82367579
36.88169044
36.88934051
36.94164312
4

0 回答 0