我试图确定需要发送给 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