以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  测试通不过,麻烦老师帮我修改一下,谢谢!  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=161470)

--  作者:关树源
--  发布时间:2018/2/4 22:20:11
--  测试通不过,麻烦老师帮我修改一下,谢谢!
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个周期内的简单移动平均


--  作者:关树源
--  发布时间:2018/2/4 22:26:51
--  
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的交叉情况以及背离情况。
比例止损和回撤趋势反转止损


麻烦老师帮我改成程序化交易模型

--  作者:wenarm
--  发布时间:2018/2/5 0:15:50
--  
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);



--  作者:关树源
--  发布时间:2018/2/5 9:06:32
--  
收到,谢谢帮忙