多次加仓可以开仓语句需要多写几行
源码中止损语句SP平的是BKVOL修改参考:
EMA5:EMA(CLOSE,5); //定义5周期EMA
EMA10:EMA(CLOSE,10);//定义10周期EMA
#IMPORT[DAY,1,ATR] AS VAR
ATRK:VAR.ATR; //周K线上调用日K线ATR,记为ATRK
K:=MONEY*0.02/(1.5*ATRK*UNIT);//开仓手数,可用资金2%风险暴露
KZ:=MONEYTOT/(1.5*ATRK*UNIT);//100%时总仓位
ZC:=BKVOL<KZ*0.7 || SKVOL<KZ*0.7;//仓位<70%
IF EMA5<=EMA10 THEN
BEGIN
IF EMA10-EMA5<=0.5*ATRK&&CLOSE-EMA10>=0.2*ATRK THEN //预判金叉,多开条件
A:=1;
ELSE
A:=0;
END
ELSE
BEGIN
IF EMA5-EMA10<=0.5*ATRK&&EMA10-CLOSE>=0.2*ATRK THEN //预判死叉,空开条件
A:=2;
ELSE
A:=0;
END
A=1,BPK(K); //如果返回1,多开
A=2,SPK(K); //如果返回2,空开
CLOSE>=BKPRICE+REF(ATRK,BARSBK)*1.5&&ZC,BK(K);//上涨1.5ATRK,多加仓
CLOSE<=SKPRICE-REF(ATRK,BARSSK)*1.5&&ZC,SK(K);//下跌1.5ATRK,空加仓
CLOSE>=BKPRICE+REF(ATRK,BARSBK)*1.5&&ZC,BK(K);//上涨1.5ATRK,多加仓
CLOSE<=SKPRICE-REF(ATRK,BARSSK)*1.5&&ZC,SK(K);//下跌1.5ATRK,空加仓
CLOSE>=BKPRICE+REF(ATRK,BARSBK)*1.5&&ZC,BK(K);//上涨1.5ATRK,多加仓
CLOSE<=SKPRICE-REF(ATRK,BARSSK)*1.5&&ZC,SK(K);//下跌1.5ATRK,空加仓
KB1:=REF(BKVOL,ENTRYSIG_PLACE(1)-1);
KS1:=REF(SKVOL,ENTRYSIG_PLACE(1)-1);
CLOSE<=BKPRICE-REF(ATRK,BARSBK)*1.5&&BKVOL>0,SP(BKVOL-KB1);//多开后下跌1.5ATRK,止损
CLOSE>=SKPRICE+REF(ATRK,BARSSK)*1.5&&SKVOL>0,BP(SKVOL-KS1);//空开后上涨1.5ATRK,止损
(INITMONEY-MONEYTOT)/INITMONEY>0.2,CLOSEOUT;//总回测>20%,全部平仓
MULTSIG(0,0,60,10);