[PEL] 复制代码
INPUT:N1(3,1,100,1);
INPUT:N2(11,1,100,1);
INPUT:N3(66,1,200,1);
INPUT:BL(22,1,100,1);
MA1:=MA(C,N1);
MA2:=MA(C,N2);
MA3:=MA(C,N3);
//布林
MID:MA(C,BL); //布林
UPPER:=MID + 2*STD(CLOSE,BL); //上轨
LOWER:=MID - 2*STD(CLOSE,BL); //下轨
MID上涨:=MID>REF(MID,1) OR MID>REF(MID,2);
MA3上涨:=MA3>REF(MA3,1) OR MA3>REF(MA3,2);
MID下跌:=MID<REF(MID,1) OR MID<REF(MID,2);///+
MA3下跌:=MA3<REF(MA3,1) OR MA3<REF(MA3,2);///+
突破:=C>UPPER;
开多1:=C>MA2 ;
开多2:=MA2>MID AND MID上涨 AND MA3上涨;
开多条件:= 开多1 AND 开多2 AND 突破;
//止损价设置:求开仓那个K线的最低价
A10:=开多条件 ; //定义开仓条件
A17:barslast(A10); //取得开仓到现在的周期数
A18:=LLV(L,A17); //求得开仓到现在的最低价
A19:=C<A18+MINDIFF*2; //现价小于开仓以来最低价一跳时,止损
///空止损价设置:求开空仓那个K线的最高价
下突破:=C<LOWER; ///+空
开空1:=C<MA2 ;
开空2:=MA2<MID AND MID下跌 AND MA3下跌;
开空条件:= 开空1 AND 开空2 AND 下突破;
B10:=开空条件 ; //定义开仓条件
B17:barslast(B10); //取得开仓到现在的周期数
B18:=HHV(H,B17); //求得开仓到现在的最低价
B19:=C>B18-MINDIFF*2; //小于开仓最低价2跳止损
//平多
平多1:=C<MID;
平多2:=A19; //止损 (可以学习这个表达ENTERPRICE??)
平多3:=C<MA2 AND MA2<MA3;
平多条件:=平多2 OR 平多1 OR 平多3;
//平空
平空1:=C>MID;
平空2:B19;
平空3:=C>MA2 AND MA2>MA3;
平空条件:= 平空1 OR 平空3 ;
手数:=CEILING((7*(100000))/(C*MULTIPLIER)),LINETHICK0;//多品种测试的最初额手数
//交易系统
//止损的语句单独拎出来,方便你区分到底是谁触发的平仓。
空止损:SELLSHORT(平空2, holding,MARKET);
多止损:SELL(平多2, holding,MARKET);
平空:SELLSHORT(平空条件, holding,MARKET);
开多:BUY(开多条件 and HOLDING=0 ,手数,MARKET);
平多:SELL(平多条件, holding,MARKET);
开空:BUYSHORT(开空条件 and holding=0 ,手数,MARKET);