TR:=MAX(ABS(HIGH-REF(HIGH,1)),ABS(L0W-REF(L0W,1)));
//(最高价-前一周期最高价)的绝对值与(最低价-前一周期最低价)的绝对值两者之间较大者定义为TR
DMZ:=IFELSE((HIGH+LOW)<=(REF(HIGH,1)+REF(L0W,1)),O,MAX(ABS(HIGH-REF(HIGH,1)),ABS(L0W-REF(L0W,1))));
//如果(最高价+最低价)《= (前一周期最高价+前一周期最低价),DMZ返回0,否则返回TR
DHF:=IFELSE((HIGH+LOW)>=(REF(HIGH,1)+REF(L0W,1)),0,MAX(ABS(HIGH-REF(HIGH,1)),ABS(LOW-REF(LOW,1))));
//如果(最高价+最低价)>= (前一周期最高价+前一周期最低价),DMF返回0,否则返回TR
DIZ:=SUM(DMZ,N)/(SUM(DMZ,N)+SUM(DNF,N));//N个周期DNZ之和与(N个周期DMZ的和+N个周期DMF的和)作比值
DIF:=SUM(DNF,N)/(SUM(DMF,N)+SUM(DNZ,N));//N个周期DNF之和与(N个周期DMF的和+N个周期DMZ的和)作比值
DDI:=DIZ-DIF;//DIZ与DIF的差值定义为DDI
DDI,COLORSTICK;
ADDI:SMA(DD1,N1,M);//DDI在N1个周期内权重为M的加权平均
AD:MA(ADDI,M1);//ADD1在M1个周期内的简单移动平均
TR:=MAX(ABS(HIGH-REF(HIGH,1)),ABS(L0W-REF(L0W,1)));
//(最高价-前一周期最高价)的绝对值与(最低价-前一周期最低价)的绝对值两者之间较大者定义为TR
DMZ:=IFELSE((HIGH+LOW)<=(REF(HIGH,1)+REF(L0W,1)),O,MAX(ABS(HIGH-REF(HIGH,1)),ABS(L0W-REF(L0W,1))));
//如果(最高价+最低价)《= (前一周期最高价+前一周期最低价),DMZ返回0,否则返回TR
DHF:=IFELSE((HIGH+LOW)>=(REF(HIGH,1)+REF(L0W,1)),0,MAX(ABS(HIGH-REF(HIGH,1)),ABS(LOW-REF(LOW,1))));
//如果(最高价+最低价)>= (前一周期最高价+前一周期最低价),DMF返回0,否则返回TR
DIZ:=SUM(DMZ,N)/(SUM(DMZ,N)+SUM(DNF,N));//N个周期DNZ之和与(N个周期DMZ的和+N个周期DMF的和)作比值
DIF:=SUM(DNF,N)/(SUM(DMF,N)+SUM(DNZ,N));//N个周期DNF之和与(N个周期DMF的和+N个周期DMZ的和)作比值
DDI:=DIZ-DIF;//DIZ与DIF的差值定义为DDI
DDI,COLORSTICK;
ADDI:SMA(DD1,N1,M);//DDI在N1个周期内权重为M的加权平均
AD:MA(ADDI,M1);//ADD1在M1个周期内的简单移动平均
DDI指标一交易策略
双均线确定方向
DDI指标用法:
(1) 分析DDI柱状线,由红变绿(正变负),卖出信号; 由
绿变红,买入信号。
(2) ADDI与AD的交叉情况以及背离情况。
比例止损和回撤趋势反转止损
麻烦老师帮我改成程序化交易模型
1.你上面的代码错误连篇,low=>l0w,请区分o和0,
2,多处变量未定义使用,N,M,M1
3.定义的变量后面使用中书写错误。DDI-->DD1(区分清楚I和1),DHF-->DNF
第二点描述不清楚,无法实现。根据你上述代码书写情况,建议你先从基础学习,对于背离等情况的代码编写最好等你对金字塔的pel语言有一定基础后在在考虑
n:=13;
n1:=30;
m:=10;
m1:=5;
DMZ:=IF((H+L)<=(REF(H,1)+REF(L,1)),0,MAX(ABS(H-REF(H,1)),ABS(L-REF(L,1))));
DMF:=IF((H+L)>=(REF(H,1)+REF(L,1)),0,MAX(ABS(H-REF(H,1)),ABS(L-REF(L,1))));
DIZ:=SUM(DMZ,N)/(SUM(DMZ,N)+SUM(DMF,N));
DIF:=SUM(DMF,N)/(SUM(DMF,N)+SUM(DMZ,N));
DDI:DIZ-DIF,COLORSTICK;
ADDI:SMA(DDI,N1,M);
AD:MA(ADDI,M1);
手数:=1;
开多平空条件:CROSS(DDI,0);//开多平空条件
开空平多条件:CROSS(0,DDI);//开空平多条件
//交易系统
平空:SELLSHORT(开多平空条件 and holding<0,手数,MARKET);
平多:SELL(开空平多条件 and holding>0,手数,MARKET);
开多:BUY(开多平空条件 and holding=0,手数,MARKET);
开空:BUYSHORT(开空平多条件 and holding=0,手数,MARKET);