VARIABLE:COUNTT:=0;
IRECTION:=0;
LENGTH:=16;
OFFSET:=1;
TRAILSTARTPCT:=0.8;
PARAM:=1.05;
N:=1;
PCNT:=1;
Direction:=0;
FUND:=30000;
Lots:=max(1,INTPART(Fund/(O*MULTIPLIER*VOLUNIT*0.1)));
count1:=REF(COUNTT,1);
IF DATE<>REF(DATE,1) THEN //控制单日最大亏损次数为2次
COUNTT:=0;
ELSE
COUNTT:=count1;
MIDLINE:=MA(CLOSE,LENGTH);
BAND:=STD(CLOSE,LENGTH);
UPLINE:=MIDLINE+OFFSET*BAND;
DOWNLINE:=MIDLINE-OFFSET*BAND;
RRANGE:=2*OFFSET*BAND/MIDLINE;
AVGRANGE:=MA(RRANGE,LENGTH);
AVGVOL:=MA(V,LENGTH);
SKLow:=llv(l,enterbars);
BKHigh:=hhV(H,enterbars);
if enterprice>0 then
BEGIN
PP:=MIN((enterprice-SKLow)/enterprice,0.1);
TT:=MIN((BKHigh-enterprice)/enterprice,0.1);
end
PROFITPCNT1:=PP*10;
PROFITPCNT2:=TT*10;
//-----------------------------进仓--------------------------------------
BuyK:=BARPOS>LENGTH AND holding=0 AND COUNTT<=N AND RRANGE>PARAM*AVGRANGE AND V>PARAM*AVGVOL AND H>UPLINE AND REF(H,1)>REF(UPLINE,1) AND H>=ref(h,1) and Direction>=0;
SellK:=BARPOS>LENGTH AND holding=0 and COUNTT<=N AND RRANGE>PARAM*AVGRANGE AND V>PARAM*AVGVOL AND L<DOWNLINE AND REF(L,1)<REF(DOWNLINE,1) AND L<=ref(l,1) and Direction<=0;
//入场
买开:Buy(BuyK,Lots,market); //买开
卖开:buyShort(SellK,Lots,MARKET);//卖开
//-------------------------------止损指令-----------------------------//
IF holding>0 and enterbars>1 THEN
BEGIN
PRICESP:=MIN(O,enterprice*(1-PCNT/100));
多单止损:sell(L<PRICESP,0,limit,PRICESP); //多单卖平止损
COUNTT:=COUNTT+1;
END
IF holding<0 and enterbars>1 THEN
BEGIN
PRICEBP:=MAX(O,enterprice*(1+PCNT/100));
空单止损:sellshort(H>PRICEBP,0,limit,PRICEBP); //空单买平止损
COUNTT:=COUNTT+1;
END
//---------------------------止盈--------------------------------//
IF holding<0 and enterbars>1 AND SKLOW<=enterprice*(1-TRAILSTARTPCT/100) THEN
BEGIN
PRICEBY:=MAX(O,enterprice-(enterprice-SKLOW)*PROFITPCNT1);
空单止盈:sellshort(H>PRICEBY,0,limit,PRICEBY); //空单买平止盈
END
IF holding>0 and enterbars>1 AND BKHIGH>= enterprice*(1+TRAILSTARTPCT/100) THEN
BEGIN
PRICESY:=MIN(O,enterprice+(BKHIGH-enterprice)*PROFITPCNT2);
多单止盈:sell(L<PRICESY,0,limit,PRICESY); //多单卖平止盈
END