[PEL] 复制代码 variable:JC=0;//
C1:=C;
MA5:ma(c1,5);
MA10:ma(c1,10);
KD:=MA5>MA10; //开多条件
KK:=MA5<MA10; //平多条件
PD:=MA5<MA10;
PK:=MA5>MA10;
//加仓
IF JC=-1 AND HOLDING<0 AND L<=ENTERPRICE-10 THEN BEGIN //平多信号
加空:BUYSHORT( 1,1,LIMITR,ENTERPRICE-10);
JC:=-2;
END
IF JC=1 AND HOLDING>0 AND H>=ENTERPRICE+10 THEN BEGIN
加多:BUY(1,1,LIMITR,ENTERPRICE+10); //开多信号
JC:=2;//此处你应该是存在笔误
END
//减仓动作,应该是在加仓动作之后,所以,需要使用jc=2或者-2作为条件之一。
IF HOLDING<0 AND L<=ENTERPRICE-12 and JC=-2 THEN BEGIN
减空:SELLSHORT(1,1,LIMITR,ENTERPRICE-12);
if holding=0 then jc:=0;//由于减仓每次是一手,所以需要判断持仓来重置全局变量
END
//DRAWICON(HOLDING>0 AND H>=ENTERPRICE+12 and JC=2,H,1);
IF HOLDING>0 AND H>=ENTERPRICE+12 and JC=2 THEN BEGIN
减多:SELL(1,1,LIMITR,ENTERPRICE+12);
if holding=0 then jc:=0;
END
IF PD AND HOLDING>0 THEN BEGIN
平多:SELL(PD,0,LIMITR,C);
JC:=0;
END
IF PK AND HOLDING<0 THEN BEGIN
平空:SELLSHORT(PK,0,LIMITR,C);
JC:=0;
END
//开仓处使用全局变量作为条件锁,只有空仓变开仓时,才执行。
IF JC=0 AND KK and HOLDING=0 and JC=0 THEN BEGIN //平多信号
开空:BUYSHORT( 1,1,LIMITR,C);
JC:=-1;
END
//开仓处使用全局变量作为条件锁,只有空仓变开仓时,才执行。
IF JC=0 AND KD and HOLDING=0 and JC=0 THEN BEGIN
开多:BUY(1,1,LIMITR,C); //开多信号
JC:=1;
END
HD:HOLDING; |