参考:
VARIABLE:SMAX:=0,SMIN:=0,BSMAX:=0,BSMIN:=0;
MA5:MA(C,5);
MA7:MA(C,7);
MA10:MA(C,10);
MA14:MA(C,14);
MA27:MA(C,27);
MA60:MA(C,60);
AA:=MA7<REF(MA7,1) AND MA14<REF(MA14,1) AND MA27<REF(MA27,1) AND MA60<REF(MA60,1);
BB:=MA7>REF(MA7,1) AND MA14>REF(MA14,1) AND MA27>REF(MA27,1) AND MA60>REF(MA60,1);
DRAWICON(AA,H,5);
DRAWICON(BB,L,4);
N:=26;
KV:=1;
MR:=2;
TR : =MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));//求最高价减去最低价,一个周期前的收盘价减去最高价的绝对值,一个周期前的收盘价减去最低价的绝对值,这三个值中的最大值
ATR : =MA(TR,N),COLORYELLOW;//求N个周期内的TR的简单移动平均
SMAX:=CLOSE+KV*ATR;
SMIN:=CLOSE-KV*ATR;
TTREND:IFELSE(CLOSE>REF(SMAX,1),1,IFELSE(CLOSE<REF(SMIN,1),-1,REF(TTREND,1))),NODRAW;
IF (TTREND>0 AND SMIN<REF(SMIN,1)) THEN
BEGIN
SMIN:= REF(SMIN,1);
END
IF(TTREND<0 AND SMAX>REF(SMAX,1)) THEN
BEGIN
SMAX:= REF(SMAX,1);
END
BSMAX:=SMAX+(MR-1)*ATR;
BSMIN:=SMIN-(MR-1)*ATR;
IF(TTREND>0 AND BSMIN<REF(BSMIN,1)) THEN BSMIN:=REF(BSMIN,1);
IF(TTREND<0 AND BSMAX>REF(BSMAX,1)) THEN BSMAX:=REF(BSMAX,1);
PARTLINE1(TTREND>0,BSMIN),COLORRED;
PARTLINE1(TTREND<0,BSMAX),COLORGREEN;
DRAWICON(TTREND>REF(TTREND,1),BSMIN,'ICO10'),VALIGN1;
DRAWICON(TTREND<REF(TTREND,1),BSMAX,'ICO11'),VALIGN1;
BB&&C>REF(C,4)&&TTREND>REF(TTREND,1),BK;
AA&&C<REF(C,4)&&TTREND<REF(TTREND,1),SK;
TTREND<REF(TTREND,1),BP;
TTREND>REF(TTREND,1),SP;
AUTOFILTER;
最后5行替换一下:
BB&&C>REF(C,4),BK;
AA&&C<REF(C,4),SK;
TTREND<REF(TTREND,1),BP;
TTREND>REF(TTREND,1),SP;
AUTOFILTER;
平仓两句修改一下:
TTREND<REF(TTREND,1),SP;
TTREND>REF(TTREND,1),BP;