只提供思路,不保证盈利的
refc:=ref(close,1);
refo:=ref(open,2);
refh:=ref(h,1);
refl:=ref(l,1);
hmxa2:=max(ref(h,1),ref(h,2));
lmin2:=min(ref(l,1),ref(l,2));
//2阳
mx1:=if((refc>=refo and close>=open and close>=refc),1,0);
//创3日新高
mx2:=if(h>=hmxa2,1,0);
dtmx:=if(mx1=1 or mx2=1,1,0),LINETHICK0;
//2阴
mx3:=if((refc<=refo and close<=open and close<=refc),1,0);
//创3日新低
mx4:=if(l<=lmin2,1,0);
ktmx:=if(mx3=1 or mx4=1,1,0),LINETHICK0;
mxccc:=dtmx-ktmx,LINETHICK0;
//多开
dk:=if(mxccc>0 and (ref(mxccc,1)=0 or ref(mxccc,1)<0),1,0),LINETHICK0;
dp:=if((mxccc=0 or mxccc<0) and ref(mxccc,1)>0,1,0),LINETHICK0;
kk:=if(mxccc<0 and (ref(mxccc,1)=0 or ref(mxccc,1)>0),1,0),LINETHICK0;
kp:=if((mxccc=0 or mxccc>0) and ref(mxccc,1)<0,1,0),LINETHICK0;
//获取拐点价位
mxhh1:=VALUEWHEN(dk=1,h) ;
mxhh2:=VALUEWHEN(kk=1,h) ;
mxll1:=VALUEWHEN(dk=1,l) ;
mxll2:=VALUEWHEN(kk=1,l) ;
//当前账户信息
资产万:TACCOUNT( 6)/10000,LINETHICK0;
浮动盈亏:TACCOUNT( 4),LINETHICK0;
平仓盈亏:TACCOUNT(30),LINETHICK0;
当日盈亏:浮动盈亏+平仓盈亏,LINETHICK0;
手续费:TACCOUNT(31),LINETHICK0;
//可开手数
bzj:=close*MULTIPLIER*VOLUNIT*0.25;
ss:=INTPART((资产万*10000)/bzj);
//方向处理
mxdttt:=if((cross(close,mxhh1) or cross(close,mxhh2) or cross(close,mxll1) or cross(close,mxll2)),1,0),LINETHICK0;
mxkttt:=if((cross(mxhh1,close) or cross(mxhh2,close) or cross(mxll1,close) or cross(mxll2,close)),1,0),LINETHICK0;
mxjc:=mxdttt-mxkttt,LINETHICK0;
m1:=bARSLAST(mxjc=1);
m2:=bARSLAST(mxjc=-1);
m3:=m1-m2;
//开平仓手数处理
jc:=if(m3<0,ss,-ss),LINETHICK0;
净持仓:jc,LINETHICK0,COLORWHITE;
ccfx:=if(jc>0,1,IF(jc<0,-1,0)),LINETHICK0;{判断多空方向}
{取得账户多头持仓和空头持仓}
dtc:=TBUYHOLDING(1),LINETHICK0;
ktc:=TSELLHOLDING(1),LINETHICK0;
多头:dtc,LINETHICK0,COLORWHITE;
空头:ktc,LINETHICK0,COLORWHITE;
{获取盘面持仓和账户持仓差额}
dtcc:=jc-dtc,LINETHICK0;
ktcc:=abs(jc)-ktc,LINETHICK0;
多头仓差:dtcc,LINETHICK0,COLORWHITE;
空头仓差:ktcc,LINETHICK0,COLORWHITE;
//获取时间
t:=TIME();
tt:=if((t>091800 and t<=145400),1,0);
if tt=1 then{时间段内交易}
begin
if ccfx<>0 then
BEGIN
if ccfx=1 then{多头处理}
BEGIN
TSELLSHORT(ktc>0,ktc,LMT,close);
TSELL(dtcc<0,abs(dtcc),LMT,close);
TBUY(dtcc>0,dtcc,LMT,close);
END
else {空头处理}
BEGIN
TSELL(dtc>0,dtc,LMT,close);
TSELLSHORT(ktcc<0,abs(ktcc),LMT,close);
TBUYSHORT(ktcc>0,ktcc,LMT,close);
END
END
else {0持仓处理}
BEGIN
TSELLSHORT(ktc>0,ktc,LMT,close);
TSELL(dtc>0,dtc,LMT,close);
END
end
else{时间段外不交易}
bEGIN
TSELLSHORT(ktc>0,ktc,LMT,close);
TSELL(dtc>0,dtc,LMT,close);
END
很清晰 学习了