[PEL] 复制代码 //全局变量定义
VARIABLE:KCH=0,KCL=0;
M1:EMA(CLOSE,50);
KD:= CROSS(C,M1) ; //开多条件
KK:= CROSS(M1,C) ; //开空条件
if KD=1 then BEGIN
SELLSHORT(holding<0,1,THISCLOSE);
BUY(HOLDING=0,1,THISCLOSE);
//金死叉是交替的,所以直接记录开仓时的最高最低价,如果条件存在多次进入的情况下,还要做更细致的控制。
KCH:=HIGH;
KCL:=LOW;
END
if KK=1 then BEGIN
SELL(holding>0,1,THISCLOSE);
BUYSHORT(HOLDING=0,1,THISCLOSE);
//金死叉是交替的,所以直接记录开仓时的最高最低价,如果条件存在多次进入的情况下,还要做更细致的控制。
KCH:=HIGH;
KCL:=LOW;
END
//其他平仓条件
PD1:= C<KCL;
PK1:= C>KCH;
if PD1=1 AND HOLDING>0 then BEGIN
平多1:SELL(holding>0,1,THISCLOSE);
END
if PK1=1 AND HOLDING<0 then BEGIN
平空1:SELLSHORT(holding<0,1,THISCLOSE);
END
KCQH:= ref(hhv(high,10),enterbars);
KCQL:= ref(LLv(LOW,10),enterbars);
DZY:= ENTERPRICE+(ENTERPRICE-KCQL)*2;
KZY:= ENTERPRICE-(KCQH-ENTERPRICE)*2;
PD3:= C>= DZY; //收盘大于等于2:1盈亏比平多
PK3:= C<= KZY; //平空条件
平空3:SELLSHORT(PK3,1,THISCLOSE);//平空信号
平多3:SELL(PD3,1,THISCLOSE);//平多信号
//下面部分无效条件,因为开仓当根k的最高价作为止盈价格小于等于KCQH,所以KCH相关的条件会优先触发。
PD2:= C<KCQL ;
PK2:= C>KCQH ; //平空条件
平多:SELL(PD2,1,THISCLOSE);
平空:SELLSHORT(PK2,1,THISCLOSE);//平空信号
//********************************结束*******************************
|