[PEL] 复制代码
MON:=50000;
TRx:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR:MA(TRX,26),NODRAW;
TTC:=INTPART((MON*0.1/(MULTIPLIER*ATR))),NODRAW;
TC:IF(TTC<1,1,TTC);
MTC:=3*TC;
SKYYZS:REF(C,1)+1.5*ATR,NODRAW;
BKYYZS:REF(C,1)-1.5*ATR,NODRAW;
BKZS:IF(holding>0,LLV(C,10)+5/100*ATR*ENTERBARS,0),NODRAW;
SKZS:IF(holding<0,HHV(C,10)-5/100*ATR*ENTERBARS,0),NODRAW;
HLCMA:MA((HIGH+LOW+CLOSE)/3,20),NODRAW;
TRUEHIGH1:=IF(HIGH>REF(C,1),HIGH,REF(C,1));
TRUELOW1:=IF(LOW<=REF(C,1),LOW,REF(C,1));
TRUERANGE1:=IF(ISLASTBAR,H-L,TRUEHIGH1-TRUELOW1);
UPBAND:HLCMA+MA(TRUERANGE1,3);
DNBAND:HLCMA-MA(TRUERANGE1,3);
LIQUIDPOINT:HLCMA;
if CROSS(HLCMA>REF(HLCMA,1)&&C>UPBAND,0.5) then buy(holding=0,tc,market);
if C<LIQUIDPOINT then sell(1,holding,market);
if CROSS(HLCMA<REF(HLCMA,1)&&C<DNBAND,0.5) then buyshort(holding=0,tc,market);
if C>LIQUIDPOINT then sellshort(1,holding,market);
BKJC:IF(holding>0&&holding<MTC,ENTERPRICE+0.5*ATR,0),NODRAW;
SKJC:IF(holding<0&&abs(holding)<MTC,ENTERPRICE-0.5*ATR,0),NODRAW;
if C>=ENTERPRICE+0.5*ATR&&holding<MTC then buy(1,TC,market);
if C<=ENTERPRICE-0.5*ATR&&abs(holding)<MTC then buyshort(1,TC,market);
if CLOSE<=BKYYZS or C<=BKZS then sell(1,holding,market);
if (CLOSE>=SKYYZS or C>=SKZS) and (SKYYZS<>0 and SKZS<>0) then sellshort(1,holding,market);
hd:holding;
这样应该不会在一个K上 同方向即可又平了。