这个图标策略我写的,有点问题,多次出现空转多时候刚转了多,同一时间再次翻空,甚至我已经在策略中限制了开仓次数,为什么会这样呢?
代码如下,同时附图表信号,和回测交易明细,如果方便您可以 本地测试一下,谢谢
n:=270;n1:=0.2;n2:=1;n3:=0.2;n4:=1080;n5:=0;n6:=270;n7:=0;
P:="T00$CLOSE",COLORCYAN;
p0:=(hhv(p,n)+llv(p,n)+2*p)/4,COLORMAGENTA;
p00:=(hhv(p0,n)+llv(p0,n)+2*p0)/4,COLORwhite;
p01:(hhv(p00,n)+llv(p00,n)+2*p00)/4,colormagenta;
//p01:(hhv(p001,n)+llv(p001,n)+p001)/3,COLORwhite;
p14:ma(p01,810),coloryellow;
t1:ref(BARSLAST(p01>p14),enterbars)+enterbars,linethick0;
t2:ref(barslast(p01<p14),enterbars)+enterbars,linethick0;
p33:=ref(p01,t1);
p34:=ref(p01,t2);
t3:enterbars,linethick0;
p16:p01-p14,linethick0;
p28:=ref(p01,enterbars);
p24:p01-p28,linethick0;
p25:=p01-(p28+p33)/2;
p35:=p01-(p28+p34)/2;
p26:=hhv(p01,t2)-(p28+p34)/2;
p27:=llv(p01,t1)-(p28+p33)/2;
p29:p35/p26,linethick0;
p30:=p24>=0.3 and p24<=n2 and p16<-n7 and p29<0.7;
p36:=p24>n2 and p16<-n7;
p37:=p24<0.3 and p24>0.1 and p16<-n7;
p31:p25/p27,linethick0;
p38:=p24>=-n2 and p24<=-0.3 and p16>n7 and p31<0.7;
p39:=p24<-n2 and p16>n7;
p40:=p24>-0.3 and p24<-0.1 and p16>n7;
P4:=CALLSTOCK('T00',VTCLOSE,6,-1);
b:=0;s:=0;X:=10;
IF STRCMP(STKLABEL,'T00') = 0 THEN BEGIN
IF p38 AND HOLDING<0 AND OPENMINUTES(TIME)>=3 AND TOTALDAYTRADE<=1 THEN s:=2;
IF p39 AND HOLDING<0 AND OPENMINUTES(TIME)>=3 AND TOTALDAYTRADE<=1 THEN s:=2;
IF p40 AND HOLDING<0 AND OPENMINUTES(TIME)>=3 AND TOTALDAYTRADE<=1 THEN s:=2;
IF p24>n1 AND HOLDING<0 AND OPENMINUTES(TIME)>=3 AND TOTALDAYTRADE<=1 THEN s:=2;
SELLSHORT(s=2,X,THISCLOSE);
IF p38 AND HOLDING=0 AND OPENMINUTES(TIME)>=3 THEN b:=1;
IF p39 AND HOLDING=0 AND OPENMINUTES(TIME)>=3 THEN b:=1;
IF p40 AND HOLDING=0 AND OPENMINUTES(TIME)>=3 THEN b:=1;
IF p24>n1 AND HOLDING=0 AND OPENMINUTES(TIME)>=3 THEN b:=1;
BUY(b=1,X,THISCLOSE);
IF p30 and HOLDING>0 AND OPENMINUTES(TIME)>=3 AND TOTALDAYTRADE<=1 THEN S:=1;
IF p36 and HOLDING>0 AND OPENMINUTES(TIME)>=3 AND TOTALDAYTRADE<=1 THEN S:=1;
IF p37 and HOLDING>0 AND OPENMINUTES(TIME)>=3 AND TOTALDAYTRADE<=1 THEN S:=1;
IF p24<-n1 and HOLDING>0 AND OPENMINUTES(TIME)>=3 AND TOTALDAYTRADE<=1 THEN S:=1;
SELL(s=1,X,THISCLOSE);
IF p30 and HOLDING=0 AND OPENMINUTES(TIME)>=3 THEN b:=2;
IF p36 and HOLDING=0 AND OPENMINUTES(TIME)>=3 THEN b:=2;
IF p37 and HOLDING=0 AND OPENMINUTES(TIME)>=3 THEN b:=2;
IF p24<-n1 and HOLDING=0 AND OPENMINUTES(TIME)>=3 THEN b:=2;
IF p16<0 and type(1)=0 and HOLDING=0 AND OPENMINUTES(TIME)>=3 THEN b:=2;
BUYSHORT(b=2,X,THISCLOSE);
END
DI:round(netprofit),noaxis,COLORyellow;