[PEL] 复制代码
input:n1(5,1,20,1),n2(20,5,60,1),n3(40,20,250,5),m(20,6,80,2);
VARIABLE:该笔盈亏:=0,模拟持仓:=0,模拟开仓价:=0,模拟平仓价:=0,真实系统下单开关:=0,盈亏记录:=0,MP:=0,多头止损:=0,空头止损:=0;
MA5:=ma(c,N1);
MA20:=ma(c,N2);
MA60:=ma(c,n3);
ATR:=MA(TR,20);
开多条件:MA5>MA20 AND MA20>MA60 and C>REF(HHV(MAX(O,C),m),1);
开空条件:MA5<MA20 AND MA20<MA60 and C<REF(LLV(MIN(O,C),m),1);
//模拟交易
IF 开多条件 and 模拟持仓=0 and 真实系统下单开关<>1 then
BEGIN
模拟开仓价:=c;
模拟持仓:=1;
多头止损:=c-0.8*atr;
END
if c<多头止损 and 模拟持仓=1 then
BEGIN
模拟平仓价:=c;
该笔盈亏:=模拟平仓价-模拟开仓价;
模拟持仓:=0;
多头止损:=0;
if 该笔盈亏>0 then
BEGIN
盈亏记录:=0;
真实系统下单开关:=0;
模拟开仓价:=0;
模拟平仓价:=0;
end
if 该笔盈亏<=0 then BEGIN
IF 盈亏记录=3 then 真实系统下单开关:=1;
IF 盈亏记录>=2 then 盈亏记录:=3;
IF 盈亏记录=1 then 盈亏记录:=2;
IF 盈亏记录=0 then 盈亏记录:=1;
模拟开仓价:=0;
模拟平仓价:=0;
END
END
if 开空条件 and 模拟持仓=0 and 真实系统下单开关<>1 then BEGIN
模拟开仓价:=c;
模拟持仓:=-1;
空头止损:=c+0.8*atr;
END
if c>空头止损 and 模拟持仓=-1 then BEGIN
模拟平仓价:=c;
该笔盈亏:=模拟开仓价-模拟平仓价;
模拟持仓:=0;
空头止损:=0;
if 该笔盈亏>0 then BEGIN
盈亏记录:=0;
真实系统下单开关:=0;
模拟开仓价:=0;
模拟平仓价:=0;
end
if 该笔盈亏<=0 then BEGIN
IF 盈亏记录=3 then 真实系统下单开关:=1;
IF 盈亏记录>=2 then 盈亏记录:=3;
IF 盈亏记录=1 then 盈亏记录:=2;
IF 盈亏记录=0 then 盈亏记录:=1;
模拟开仓价:=0;
模拟平仓价:=0;
END
END
//真实交易
IF 开多条件 and 真实系统下单开关=1 THEN BEGIN;
MP:=0;
BUY(1,50%,NEXTOPEN),PERTRADER;
多头止损:=c-0.8*atr;
END
IF 开空条件 and 真实系统下单开关=1 THEN BEGIN
MP:=0;
BUYSHORT(1,50%,NEXTOPEN),PERTRADER;
空头止损:=c+0.8*atr;
END
IF HOLDING>0 AND c<多头止损 THEN 多止损:SELL(1,ABS(HOLDING),NEXTOPEN);
IF HOLDING<0 AND c>空头止损 THEN 空止损:SELLSHORT(1,ABS(HOLDING),NEXTOPEN);
IF OPENPROFIT>MP THEN MP:=OPENPROFIT;
IF (MP/ABS(HOLDING))>=(C*MULTIPLIER*0.1*0.5) THEN BEGIN
IF ((MP-OPENPROFIT)/MP)>=(30*0.01) THEN BEGIN
多止盈1:SELL(HOLDING>0,ABS(HOLDING),NEXTOPEN);
空止盈1:SELLSHORT(HOLDING<0,ABS(HOLDING),NEXTOPEN);
END
END
IF (MP/ABS(HOLDING))>=(C*MULTIPLIER*0.1*1.2) THEN BEGIN
IF ((MP-OPENPROFIT)/MP)>=(50*0.01) THEN BEGIN
多止盈2:SELL(HOLDING>0,ABS(HOLDING),NEXTOPEN);
空止盈2:SELLSHORT(HOLDING<0,ABS(HOLDING),NEXTOPEN);
END
END
资金:ASSET,NOAXIS;