variable:position=0,maxc=asset,N=0,myentryprice=0,myexitprice=0;
input:tupo(10,2,100,1),zhis(15,5,100,1),zhiying(3,1,10,1);
hi20:ref(hhv(h,tupo),1);
lo20:ref(llv(l,tupo),1);
ATR:=ma(tr,20);
zhisun:=zhis/10;
kd:=cross(h,hi20);
kk:=cross(lo20,l);
//如果没有持仓,开多仓
IF POSITION=0 AND barpos>20 THEN BEGIN
if maxc<asset then maxc:=asset;
N:=atr;
if CASH(0)<MAXC*0.9 and CASH(0)>MAXC*0.8 THEN PosNum:=cash(0)*0.015/n/MULTIPLIER ;
else if
CASH(0)<MAXC*0.8 and CASH(0)>MAXC*0.7 THEN PosNum:=cash(0)*0.0075/N/MULTIPLIER;
else if
CASH(0)<MAXC*0.7 and CASH(0)>MAXC*0.6 THEN PosNum:=cash(0)*0.004/N/MULTIPLIER;
else if
else PosNum:=cash(0)*0.03/N/MULTIPLIER;
posnum:=floor(posnum);
if kd THEN BEGIN
MYENTRYPRICE := IF(OPEN>hi20+MINDIFF ,OPEN ,hi20+MINDIFF ) ;
//posnum:=intpart (asset*0.02/N/MULTIPLIER);
BUY(cash(0)>(posnum*myentryprice+posnum*zhisun*N*MULTIPLIER),POSNUM,LIMITR,MYENTRYPRICE);
POSITION := 1 ;
end
if kk then BEGIN
MYENTRYPRICE := IF(OPEN<lo20+MINDIFF ,OPEN ,lo20-MINDIFF ) ;
BUYshort(cash(0)>(posnum*myentryprice+posnum*zhisun*N*MULTIPLIER),POSNUM,LIMITR,MYENTRYPRICE);
POSITION := -1 ;
end
end
//如果已经开仓,加多仓;
if position>0 and h>myentryprice+zhiying*N and (cash(0)-posnum*h-(holding+posnum)*zhisun*N*MULTIPLIER)>0 THEN
begin
myentryprice:=if(open>enterprice+zhiying*N+mindiff,open,enterprice+zhiying*N+mindiff);
buy(1,posnum,limitr,myentryprice);
position:=position+1;
myentryprice:=myentryprice+zhiying*N;
end
//如果已经开空仓,加仓;
if position<0 and l<myentryprice-zhiying*N and (cash(1)-posnum*h-(abs(holding)+posnum)*zhisun*N*MULTIPLIER)>0 THEN
begin
myentryprice:=if(open<enterprice-zhiying*N+mindiff,open,enterprice-zhiying*N+mindiff);
buyshort(1,posnum,limitr,myentryprice);
position:=position-1;
myentryprice:=myentryprice-zhiying*N;
end
//多仓出局
if position>0 and low<enterprice-zhisun*N then
begin
MYEXITPRICE := IF(OPEN<MYENTRYPRICE-zhisun*N ,OPEN ,MYENTRYPRICE-zhisun*N ) ;
MYEXITPRICE := FLOOR(MYEXITPRICE/MINDIFF)*MINDIFF ;
SELL( 1,0,LIMITR,MYEXITPRICE);
POSITION := 0 ;
//if maxc<cash(0) then maxc:=cash(0);
END
//空仓止损
if position<0 and high>enterprice+zhisun*N then
begin
MYEXITPRICE := IF(OPEN>MYENTRYPRICE+zhisun*N ,OPEN ,MYENTRYPRICE+zhisun*N ) ;
MYEXITPRICE := ceiling(MYEXITPRICE/MINDIFF)*MINDIFF ;
SELLshort( 1,0,LIMITR,MYEXITPRICE);
POSITION := 0 ;
//if maxc<cash(0) then maxc:=cash(0);
END
持仓:holding,linethick0;
maxasset:maxc,noaxis;
资产:asset,noaxis;
可用现金:cash(0),linethick0;
DEBUGFILE2('d:\DEBUGFILE.TXT','maxc=%.0F' ,maxc,0) ;
DEBUGFILE2('d:\DEBUGFILE.TXT','asset=%.0F' ,asset ,0) ;