Input : 固定手数(1,1,100,1),p(8,1,15,1),p1(25,5,30,1);
//声明变量
A00:= 0 ;
VARIABLE : A01=0 ;
VARIABLE : A02=0 ;
VARIABLE : A03=0 ;
VARIABLE : A04=0 ;
VARIABLE : A05=1;
VARIABLE : A06=0;
VARIABLE : A07=0;
VARIABLE : A08=0;
VARIABLE : A09=0;
VARIABLE : A10=0;
VARIABLE : A11=0;
VARIABLE : A12=0;
VARIABLE : A13=0;
VARIABLE : A14=0;
VARIABLE : A15=0;
VARIABLE : A16:=0;
VARIABLE : A17:=0;
VARIABLE : A18:=0;
VARIABLE : A19:=0;
VARIABLE : A20:=0;
VARIABLE : A21:=0;
VARIABLE : A22=0;
VARIABLE : A23=0;
VARIABLE : A24=0;
VARIABLE : A25=0;
VARIABLE : A26=0;
VARIABLE : A27=0;
VARIABLE : A28=0;
VARIABLE : A29=0;
VARIABLE : A30=0;
VARIABLE : A31=0;
VARIABLE : A32=0;
VARIABLE : A33=0;
VARIABLE : A34=0;
VARIABLE : A35=0;
VARIABLE : A37=0;
VARIABLE : A38=0;
VARIABLE : A39=0;
VARIABLE : A40=0;
VARIABLE : A41=0;
VARIABLE : A42=0 ;
VARIABLE : A43=0 ;
VARIABLE : A44=high ;
VARIABLE : A45=low ;
VARIABLE : jz=open ;
//当日开盘价
VARIABLE : zxjz=0 ;
//转换条件
VARIABLE : nn=0; //开仓历时
VARIABLE : fdxs=1; //放大系数
kxs:=todaybar,linethick0;
dayopen:=valuewhen(date<>ref(date,1),open);
jz:=ref(dayopen,kxs-1),linethick0;
gd:=ma(high,1);
dd:=ma(low,1);
zxtj0:=count(gd-jz>4 or jz-dd>=14,3)>=3,linethick0;
zxtj:=count(zxtj0,kxs)>=1,linethick0;
参数转换:=zxtj,linethick0;
tzzq:=2;
B03 := ref(ma(tr,18),1);
C01 :=date;
B04 :=固定手数;
A16 :=10*10*10*5;
A03:=8;
A04:=1;
B09:=60;
A21:=0;
C02:=if(zxtj,1.55,1.95); //信号参数
A19:=0.6;
C03:=if(zxtj,11.95,9.95); //止损系数
A17:=6;
A28:=4000;
A29:=3300;
A30:=19000;
A31:=10000; //当日最大亏损
A34:=12000;
A35:=10000;
A37:=3300;
//限制模块
//周期绑定
nn:=enterbars;
fdyk:=ref(openprofit,1);
fdds:=intpart(fdyk/300)/B04;
Otime:=Opentime(1)+A21*100;
Ctime:=Closetime(0)-A03*100;
C05:=Time>=Otime and Time<=Ctime;
C06:=Time>=Closetime(0)-A04*100 and Time<=Closetime(0)-(A04+1)*100+A16;
Zhkx:=if(islastbar,dynainfo(207),time);
Tqxd:=time0-timetot0(Zhkx);
kxsj:=B09-Tqxd;
D02:=EMA(H,11)-EMA(H,24);
D03:=EMA(D02,8);
D04:=2*(D02-D03);
D07:=EMA(L,11)-EMA(L,24);
D08:=EMA(D07,8);
D09:=2*(D07-D08);
D10:=Ma(D04*2+D02,1);
D11:=Ma(D10,2);
D12:=Ma(D09*2+D07,1);
D13:=Ma(D12,2);
E01:=slope(high,2)*5;
E02:=slope(low,2)*5;
jycs:=totaldaytrade,linethick0;
E12:=asset-ref(asset,barslast(date<>ref(date,1))+1);
E14:=ref(E12,1);
if E12=0 then begin
A14:=0;
end
if zxtj=0 then begin
drawtextex(1,1,120,940,''),colorwhite;
end
if zxtj=1 then begin
drawtextex(1,1,120,940,'' ),colorwhite;
end
if E12<=-A31*B04 then begin
A14:=-1;
C06l:=1;
drawtextex(1,1,120,990,'' ),colorwhite;
end
if E12>=A35*B04 then begin
C02:=C02*0.75;
drawtextex(1,1,120,900,'' ),colorwhite;
end
倒计时:=tqxd,linethick0;
xdsj:=B09;
A46 :=(ma(high,3)+(ref(high,1)+(1.4/C02+A19)))/2;
A47 :=(ma(low,3)+(ref(low,1)-(1.4/C02+A19)))/2;
fdxs:=if(nn<=tzzq,2,1+(fdds*0.015));
F01:=(D10-D11)*C02;
F02:=(D12-D13)*C02;
B01:D10>D11 and F01>=fdxs,linethick0;
B02:D12<D13 and F02<=-fdxs,linethick0;
B011:IF(B01,O,0),linethick0;
B022:IF(B02,O,0),linethick0;
If Barpos=1 Then Begin
A43 := 0 ;
End
A07:=if(islastbar,0,1);
A08:=if(islastbar,0,1);
en:=enterbars; //开仓历来的周期数
enlv:=LLv(l,en+1); //开仓以来的最低值
enhv:=hhv(h,en+1); //开仓以来的最高值
//设变量 持仓状态下的最大盈利
win:=0; //最大获利
win2:=0; //最大获利幅度
win3:=0; //最大获利后的最大回调幅度
if holding > 0 and enterbars > 0 then begin
win:=(enhv-enterprice);
win2:=(enhv-enterprice)/enterprice*100;
win3:=(enhv-c)/win*100;
end
if holding < 0 and enterbars > 0 then begin
win1:=(enterprice- enlv),linethick0;
win21:=(enterprice-enlv)/enterprice*100;
win31:=(c-enlv)/win*100,linethick0;
end
If A43=0 and Barpos>1 and h>l Then Begin
Jgk:=A47;
Short :=low<=jgk+0.2;
Jgd:=A46;
Long :=high>=jgd-0.2 ;
Longzs :=A17*B03;
if Long AND Short=0 And A14>=0 and C05 and holding=0 and (A15>=0 or exitbars>=3) then begin
A01 := IF(Open>Jgd,Open+A07*Mindiff ,Jgd+A07*Mindiff);
buy(1,B04,limitr,A01),ignorecheckprice;
Playsound(1,'D:\Weisoft Stock\WAV\开多1.wav' );
DRAWICON( 1,A01,8);
A43 := 1 ;
N := B03 ;
A00:= 1;
A09:=enterprice;
A06:=A09-Longzs;
end //if
Jgk:=A47;
Short :=low<=jgk+0.2;
Shortzs :=A17*B03{+A07*Mindiff};
if Short and A14>=0 and C05 and A43=0 and holding=0 and (A15<=0 or exitbars>=3) then begin
A01:= If(Open<jgk,Open-A07*Mindiff ,jgk-A07*Mindiff);
buyshort(1,B04,limitr,A01),ignorecheckprice;
Playsound(1,'D:\Weisoft Stock\WAV\开空1.wav' );
DRAWICON( 1,A01,9);
A43 := -1 ;
N := B03 ;
A00:= 1;
A09:=enterprice;
A06:=A09+Shortzs;
end
goto ContinueLine;
End //If
If A43=1 and Barpos>1 and h>l Then Begin
Drlc:=MIN(A47,B022);
LongX1 :=low<Drlc+0 ;
if LongX1 and A00=0 and B02 then begin
A02 := IF(Open<drlc,Open-A07*Mindiff ,drlc-A07*Mindiff) ;
sell(1,B04,limitr,A02),orderqueue,ignorecheckprice;
Playsound(1,'D:\Weisoft Stock\WAV\做空.wav' );
DRAWICON( 1,A02,9);
A43 := 0 ;
A15:=0;
Jgk:=MIN(A47,B022);
Short1:=low<Jgk ;
if Short1 and A15<=0 and A14>=0 and C05 and A43=0 and holding>=0 and A15<=0 then begin
A01 := If(Open<if(A15=0,drlc,A06),Open-A07*Mindiff,if(A15=0,drlc,A06)-A07*Mindiff);
buyshort(1,B04,limitr,A01),orderqueue,ignorecheckprice;
DRAWICON( 1,A02,9);
A43 := -1 ;
A00:= 1 ;
N := B03 ;
A09:=enterprice;
A06:=A09+A17*N;
end
end
LongX2 :=low<A06;
if LongX2 and holding>=0 and A00=0 then begin
A02 :=min(open,A06)-A08*Mindiff;
平多S:sell(1 ,B04,limitr,A02),ignorecheckprice;
Playsound(1,'D:\Weisoft Stock\WAV\平多Y.wav' );
A43 := 0 ;
A15:=-1;
Jgk:=A47;
Short1:=low<=Jgk ;
if Short1 and A15<=0 and A14>=0 and C05 and A43=0 and holding>=0 and A15<=0 then begin
A01 := If(Open<if(A15=0,drlc,A06),Open-A07*Mindiff,if(A15=0,drlc,A06)-A07*Mindiff);
buyshort(1,B04,limitr,A01),orderqueue,ignorecheckprice;
DRAWICON( 1,A01,9);
A43 := -1 ;
A00:= 1 ;
N := B03 ;
A09:=enterprice;
A06:=A09+A17*N;
end
end
if C06l and holding>=0 and A14<0 Then begin
平多z:SELL(1,B04,marketr);
Playsound(1 ,'D:\Weisoft Stock\WAV\停盘.wav' );
A43 := 0 ;
A14 :=-1;
end
if C06 and tqxd<=xdsj Then begin
平多t:SELL(1,B04,marketr);
Playsound(1 ,'D:\Weisoft Stock\WAV\平多t.wav' );
A43 := 0 ;
A14:=0;
A15:=0;
end
if A43=1 and high>A09 then begin
A09:=high;
A06:=A09-C03*N;
end
End //If
If A43 = -1 and Barpos>1 and h>l Then Begin
Ktlc:=MAX(A46,B011);
ShortX1 :=high>Ktlc-0;
if ShortX1 and A00=0 and B01 then begin
A02 := If(Open>ktlc,Open+A07*Mindiff ,ktlc+A07*Mindiff) ;
sellshort(1,B04,limitr,A02),orderqueue,ignorecheckprice;
Playsound(1,'D:\Weisoft Stock\WAV\做多.wav' );
DRAWICON( 1,A02,8);
A43 := 0;
A15:=0;
Jgd:=MAX(A46,B011);
Long1:=high>Jgd ;
if Long1 and A15>=0 and A14>=0 and C05 and holding<=0 and A15>=0 and A43=0 then begin
A01 := IF(Open>if(A15=0,ktlc,A06),Open+A07*Mindiff,if(A15=0,ktlc,A06)+A07*Mindiff);
buy(1,B04,limitr,A01),orderqueue,ignorecheckprice;
DRAWICON( 1,A01,8);
A43 := 1 ;
A00:= 1 ;
N := B03 ;
A09:=enterprice;
A06:=A09-A17*N;
end //if
end
ShortX2 := high>A06 ;
if ShortX2 and holding<=0 and A00=0 then begin
A02 :=max(open,A06)+A08*Mindiff;
平空S:sellshort(1,B04,limitr,A02),ignorecheckprice;
Playsound(1,'D:\Weisoft Stock\WAV\平空Y.wav' );
A43 := 0 ;
A15:=1;
Jgd:=A46;
Long1:=high>=Jgd ;
if Long1 and A15>=0 and A14>=0 and C05 and holding<=0 and A15>=0 and A43=0 then begin
A01 := IF(Open>if(A15=0,ktlc,A06),Open+A07*Mindiff,if(A15=0,ktlc,A06)+A07*Mindiff);
buy(1,B04,limitr,A01),orderqueue,ignorecheckprice;
A43 := 1 ;
A00:= 1 ;
N := B03 ;
A09:=enterprice;
A06:=A09-A17*N;
end //if
end
if C06l and holding<=0 and A14<0 Then begin
平空z:sellshort(1 ,B04,marketr);
Playsound(1,'D:\Weisoft Stock\WAV\停盘.wav' );
A43 := 0 ;
A14 :=-1;
end
if C06 and tqxd<=xdsj Then begin
平空t:sellshort(1 ,B04,marketr);
Playsound(1,'D:\Weisoft Stock\WAV\平空t.wav' );
A43 := 0 ;
A14:=0;
A15:=0;
end
if A43=-1 and low<A09 then begin
A09:=low;
A06:=A09+C03*N;
end
End //If
ContinueLine@ 资产:=asset,noaxis,COLORGREEN;
持仓:holding,linethick0;
交易次数:totaldaytrade,linethick0;
正确率:percentwin,linethick0;
STICKLINE((HOLDING>0),LOW,HIGH,0.1,1,COLORYELLOW);
STICKLINE(((HOLDING>0) and (CLOSE>OPEN)),CLOSE,OPEN,8,1,COLORYELLOW);
STICKLINE(((HOLDING>0) and (CLOSE<=OPEN)),CLOSE,OPEN,8,0,COLORYELLOW);
STICKLINE((HOLDING<0),LOW,HIGH,0.1,1,COLORCYAN);
STICKLINE(((HOLDING<0) and (CLOSE>OPEN)),CLOSE,OPEN,8,1,COLORCYAN);
STICKLINE(((HOLDING<0) and (CLOSE<=OPEN)),CLOSE,OPEN,8,0,COLORCYAN);