[PEL] 复制代码
INPUT:M(14,1,100,10),N(33,1,100,10),ss(1,1,100,10);
//全局变量
VARIABLE:flag=0;
//中间变量
A:=DMA(CLOSE,N/100);
B:=DMA(CLOSE,M/100);
J:=WMA(CLOSE,55);
//划线部分
STICKLINE(A >= B,A,B,6,0,65535),STICK; //在图表中画出粉红色的柱状线
STICKLINE(A <= B,A,B,6,0,16711935),STICK; //在图表中画出黄色的柱状线
舵手:J,LINETHICK2,COLORGREEN; //在图表中画出绿色的趋势线,作用于交易系统的参考线
PARTLINE(J>REF(J,5),J,255,2,0),LINETHICK2; //在图表中画出分段的趋势线,作用于交易系统的参考线
A,LINEDOT,COLORGRAY;//在图表中画出N(33)周期收盘价的虚线
B,LINEDOT,COLORGRAY;//在图表中画出M(14)周期收盘价的虚线
//交易条件
手数:=ss;
开多平空条件:=CROSS(J,REF(J,5));//开多平空条件
开空平多条件:=CROSS(REF(J,5),J);//开空平多条件
//交易系统
if 开多平空条件 and holding<0 then
begin
平空:SELLSHORT(开多平空条件,0,MARKET);
flag:=0;//平仓后重置全局变量。
end
if 开空平多条件 and holding>0 then
begin
平多:SELL(开空平多条件,0,MARKET);
flag:=0;//平仓后重置全局变量。
end
Len1:=BARSLAST(开多平空条件);
Len2:=BARSLAST(开空平多条件);
//需要注意的是这里最高最低价 判断的是收盘价 也可以改成最高,最低价
H1:=hhv(c,Len1);//开仓以来最高价,不包含开仓K在内
L1:=llv(c,Len2);//开仓以来最低价
if H1-c>=30*MINDIFF and holding>0 then 多回撤平仓:sell(1,holding,market);
if C-L1>=30*MINDIFF and holding<0 then 空回撤平仓:sellshort(1,holding,market);
开多:BUY(开多平空条件 and holding=0,手数,MARKET);
开空:BUYSHORT(开空平多条件 and holding=0,手数,MARKET);
//多头加仓
if C-AVGENTERPRICE>10*MINDIFF and holding>0 and flag=0 then
begin
多加仓:buy(1,1,MARKET);
flag:=1;
end
//空头加仓
if AVGENTERPRICE-C>10*MINDIFF and holding<0 and flag=0 then
begin
空加仓:BUYSHORT(1,1,MARKET);
flag:=1;
end