输入数据
我们将采用11个指标(振荡器),在输入设置中不设优先级。我们将从某些指标中抽取多个变量。然后我们将写一个函数形成17个变量的输入集。
最近4000个 TF = M30 / EURUSD 柱形的报价将被采用。
In <- function(p = 16){
require(TTR)
require(dplyr)
require(magrittr)
adx <- ADX(price, n = p) %>% as.data.frame %>%
mutate(.,oscDX = DIp -DIn) %>%
transmute(.,DX, ADX, oscDX) %>% as.matrix()
ar <- aroon(price[ ,c(‘High’, ‘Low’)], n = p)%>%
extract(,3)mt4kdj三线指标下载
atr <- ATR(price, n = p, maType = “EMA”) %>%
extract(,1:2)
cci <- CCI(price[ ,2:4], n = p)
chv <- chaikinVolatility(price[ ,2:4], n = p)
cmo <- CMO(price[ ,’Med’], n = p)
macd <- MACD(price[ ,’Med’], 12, 26, 9) %>%
as.data.frame() %>%
mutate(., vsig = signal %>%
diff %>% c(NA,.) %>% multiply_by(10)) %>%
transmute(., sign = signal, vsig) %>%
as.matrix()
rsi <- RSI(price[ ,’Med’], n = p)
stoh <- stoch(price[ ,2:4], nFastK = p, nFastD =3, nSlowD = 3, maType = “EMA”)%>%
as.data.frame() %>% mutate(., oscK = fastK – fastD)%>%
transmute(.,slowD, oscK)%>% as.matrix()
smi <- SMI(price[ ,2:4],n = p, nFast = 2, nSlow = 25, nSig = 9)
vol <- volatility(price[ ,1:4], n = p, calc = “yang.zhang”, N = 144)
In <- cbind(adx, ar, atr, cci, chv, cmo, macd, rsi, stoh, smi, vol)
return(In)
}
zigzag指标下载,zigzag指标的用法与技巧输出数据(目标)
作为目标变量,我们将使用ZigZag信号。下面就是计算zigzag和其信号的公式:
ZZ <- function(pr = price, ch = ch , mode=”m”) {
require(TTR)
if(ch > 1) ch <- ch/(10 ^ (Dig – 1))
if(mode == “m”){pr <- pr[ ,’Med’]}
if(mode == “hl”) {pr <- pr[ ,c(“High”, “Low”)]}
if(mode == “cl”) {pr <- pr[ ,c(“Close”)]}
zz <- ZigZag(pr, change = ch, percent = F, retrace = F, lastExtreme = T)
n <- 1:length(zz)
for(i in n) { if(is.na(zz[i])) zz[i] = zz[i-1]}
dz <- zz %>% diff %>% c(0,.)
sig <- sign(dz)
return(cbind(zz, sig))
}
zigzag指标下载,zigzag指标的用法与技巧函数参数:
- pr = price — OHLCMed 报价的矩阵;
- ch — zigzag折线的最小长度,以点数计(4 signs);
- mode — 应用的价格(m — 均价,hl — 最高最低价,cl — 收盘价)。默认使用均价。
二.计算方式
1对计算位置进行初期化
1.1判断是否是第一次进行高低点计算,如果是,则设定计算位置为除去ExtDepth个图形最初的部分。
1.2如果之前已经计算过,找到最近已知的三个拐点(高点或低点),将计算位置设置为倒数第三个拐点之后,重新计算最后的拐点。
2.从步骤1已经设置好的计算位置开始,将对用于存储高低点的变量进行初始化,准备计算高低点
2.1计算ExtDepth区间内的低点,如果该低点是当前低点,则进行2.1.1的计算,并将其记录成一个低点。
2.1.1如果当前低点比上一个低点值小于相对点差(ExtDeviation);并且之前ExtBackstep个Bars的记录的中,高于当前低点的值清空。
2.2高点的计算如同2.1以及分支处理2.1.1。
3.从步骤1已经设置好的计算位置开始,定义指标高点和低点
3.1如果开始位置为高点,则接下来寻找低点,在找到低点之后,将下一个寻找目标定义为高点
3.2如果开始位置为低点,则与3.1反之。以上可能比较难以理解,我们这边举个例子说明:假设上次计算的结果如下:倒数第14个Bar出现了一个高点(3.1),倒数第4个是低点(1.5),倒数第1个是新的高点(2.1)——因为距离倒数第14已经大于ExtDepth(14-1>12)。
Bar-14 Bar-4 Bar-1 Bar-Current
高(3.1) 低(1.5) 高(2.1) X
对于Bar-Current,即当前的价格X,
CaseI.
如果X>=2.1ExtDeviation,则根据Zigzag的定义,这将是一个新的高点。假设这里X=2.3,那么我们绘制指标的时候应该成为:
Bar-14 Bar-4 Bar-Current
高(3.1) 低(1.5) 高(2.3)
CaseII.
指标参数:
指标用法:
基于ZigZag趋势线,自动画出黄金分割回调线,黄金分割线是一种主观性指标,仅作辅助判断,ZigZag是趋势性指标,可以学习使用。
本指标的好处就是不需要人工判断位置,指标根据ZigZag自动画出黄金分割.
指标效果:
本文内容仅代表作者观点,不代表本站立场,如若转载,请注明出处:https://www.fx220.com/redian/2257.html