[PEL] 复制代码
INPUT:M(50,5,300,30),N(1.25,0.1,10,0.1),D(30,1,100,1),SS(1,1,10000,1);
VARIABLE:X:=50;
MID : MA(CLOSE,M);//布林中轨
UPPER:MID + N*STD(CLOSE,M);//布林上轨
LOWER:MID - N*STD(CLOSE,M);//布林下轨
CYC:=ENTERBARS+1,NOAXIS;//开仓至今的周期数
HC30:=REF(HHV(C,D),1);//30周期收盘价高点
LC30:=REF(LLV(C,D),1);//30周期收盘价低点
ss1:ASSET*0.01/(UPPER-MID);
ss2:ASSET*0.01/(MID-LOWER);
出场MA:MA(CLOSE,IF(HOLDING<>0,IF(CYC>=40,10,51-CYC),50));
//交易条件
开多平空条件:=C>HC30 AND H>REF(UPPER,1);//收盘价大于30周期收盘价最高值,且最高价上穿上轨
开空平多条件:=C<LC30 AND L<REF(LOWER,1);//收盘价小于30周期收盘价最高值,且最低价下穿下轨
多头出场条件:=C<出场MA AND 出场MA<UPPER;
空头出场条件:=C>出场MA AND 出场MA>LOWER;
//交易系统
多头出场:SELL(多头出场条件 AND HOLDING>0,HOLDING,LIMITR,C);
空头出场:SELLSHORT(空头出场条件 AND HOLDING<0,HOLDING,LIMITR,C);
平空:SELLSHORT(开多平空条件 AND HOLDING<0,HOLDING,LIMITR,C);
平多:SELL(开空平多条件 AND HOLDING>0,HOLDING,LIMITR,C);
开空:BUYSHORT(开空平多条件 AND HOLDING>=0,ss1,LIMITR,C);
开多:BUY(开多平空条件 AND HOLDING<=0,ss2,LIMITR,C);