[PEL] 复制代码
INPUT:N1(5,1,200,1),N2(10,1,200,1),N3(20,1,200,1),ss(1,1,200,1),N(20,1,300,1),M(40,1,300,1);//SS是手数,N是止盈的点数,
ma5:ma(c,N1);
ma10:ma(c,N2);
ma20:ma(c,N3);
多止损:l<ref(l,1)-1*mindiff and TORDERPRICE(1,1)>0;//最新价小于前一个k最低价-1跳 止损;且前面有开仓信号
空止损:h>ref(h,1)+1*mindiff and TORDERPRICE(1,3)>0;//最新价大于前一个k最高价+1跳 止损
//完善止盈止损的判断。1.判断上次信号到底是什么信号 2.判断当前后台程序化前面有无开仓
多止盈:TTYPE(1)=1 and c-TORDERPRICE(1,1) >=N*MINDIFF and TORDERPRICE(1,1)>0;//盈利20跳 止盈
空止盈:TTYPE(1)=3 and TORDERPRICE(3,1)-c>=N*MINDIFF and TORDERPRICE(1,3)>0;
tsell(多止损 and tbuyholdingex('','',1)>0,tbuyholdingex('','',1),mkt);
tsellshort(空止损 and tsellholdingex('','',1)>0,tsellholdingex('','',1),mkt);
tsell(多止盈 and tbuyholdingex('','',1)>0,tbuyholdingex('','',1),mkt);
tsellshort(空止盈 and tsellholdingex('','',1)>0,tsellholdingex('','',1),mkt);
cond1:=c>ma20 and cross(ma5,ma10) AND (h-l)<=M*MINDIFF and c>max(ref(c,1),ref(o,1)) and o>ref(o,1);//条件1: 收盘价在20均线上,5日上穿20日均线,最高最低价差值小于等于M 个最小变动价位;收盘价大于昨日开盘价和收盘价;开盘价大于昨日开盘价
cond2:=c<ma20 and cross(ma10,ma5) AND (h-l)<=M*MINDIFF and c<min(ref(c,1),ref(o,1)) and o<ref(o,1);
//开多,开空条件
kd:ref(cond1,1) and c>ref(h,1);//前一个k满足cond1 且当前k最新价格大于前一个k的最高价
kk:ref(cond2,1) and c<ref(l,1);//前一个k满足cond2 且当前k最新价格大于前一个k的最高价
t:time0-timetot0(dynainfo(207));//距离最K结束的时间(秒) 仅在最后一个K正常输出。
tbuy(kd,ss,lmt,ref(h,1)+1*mindiff);//开多
tbuyshort(kk,ss,lmt,ref(l,1)-1*mindiff);//开空
if c<ref(h,1) and TISPRVREMAIN(1) and t<=2 then TCANCELEX(1,1,'',STKLABEL);// 不满足突破条件了,在K线结束前2秒进行撤单操作。
if c>ref(l,1) and TISPRVREMAIN(3) and t<=2 then TCANCELEX(1,3,'',STKLABEL);
if TENTERBARS(1)=1 and TISPRVREMAIN(1) then TCANCELEX(1,1,'',STKLABEL);
if TENTERBARS(1)=1 and TISPRVREMAIN(3) then TCANCELEX(1,3,'',STKLABEL);