参考:
DIFF :EMA(CLOSE,3) - EMA(CLOSE,5),NODRAW;//短周期与长周期的收盘价的指数平滑移动平均值做差。
DEA :=EMA(DIFF,66);//DIFF的M个周期指数平滑移动平均
SC:=CROSS(DEA,0),NODRAW;
XC:=CROSSDOWN(DEA,0),NODRAW;
ED1:=VALUEWHEN(DEA<0,BARSLAST(XC)),NODRAW;
EC1:=VALUEWHEN(DEA<0,BARSLAST(SC)),NODRAW;
EB1:=VALUEWHEN(DEA<0,REF(BARSLAST(XC),EC1+1))+EC1+1,NODRAW;
EA1:=VALUEWHEN(DEA<0,REF(BARSLAST(SC),EC1+1))+EC1+1,NODRAW;
ED2:=VALUEWHEN(DEA>0,BARSLAST(SC)),NODRAW;
EC2:=VALUEWHEN(DEA>0,BARSLAST(XC)),NODRAW;
EB2:=VALUEWHEN(DEA>0,REF(BARSLAST(SC),EC2+1))+EC2+1,NODRAW;
EA2:=VALUEWHEN(DEA>0,REF(BARSLAST(XC),EC2+1))+EC2+1,NODRAW;
ED11:=IF(DEA<0,ED1,0),NODRAW;
EC11:=IF(DEA<0,EC1,0),NODRAW;
EB11:=IF(DEA<0,EB1,0),NODRAW;
EA11:=IF(DEA<0,EA1,0),NODRAW;
ED22:=IF(DEA>0,ED2,0),NODRAW;
EC22:=IF(DEA>0,EC2,0),NODRAW;
EB22:=IF(DEA>0,EB2,0),NODRAW;
EA22:=IF(DEA>0,EA2,0),NODRAW;
E1:=IF(DEA<0,DIFF,0),NODRAW;
E2:=IF(DEA>0,DIFF,0),NODRAW;
HD1:REF(DIFF,EC11)+REF(DIFF,EC22)+REF(DIFF,EB11)+REF(DIFF,EB22);
HD2:REF(DIFF,EC11)+REF(DIFF,EC22)+REF(DIFF,ED11)+REF(DIFF,ED22);
HD:E1+E2+REF(DIFF,ED11)+REF(DIFF,ED22);
这样改一下:
DIFF :=EMA(CLOSE,3) - EMA(CLOSE,5),NODRAW;//短周期与长周期的收盘价的指数平滑移动平均值做差。
DEA :=EMA(DIFF,66);//DIFF的M个周期指数平滑移动平均
SC:=CROSS(DEA,0),NODRAW;
XC:=CROSSDOWN(DEA,0),NODRAW;
ED1:=VALUEWHEN(DEA<0,BARSLAST(XC)),NODRAW;
EC1:=VALUEWHEN(DEA<0,BARSLAST(SC)),NODRAW;
EB1:=VALUEWHEN(DEA<0,REF(BARSLAST(XC),EC1+1))+EC1+1,NODRAW;
EA1:=VALUEWHEN(DEA<0,REF(BARSLAST(SC),EC1+1))+EC1+1,NODRAW;
ED2:=VALUEWHEN(DEA>0,BARSLAST(SC)),NODRAW;
EC2:=VALUEWHEN(DEA>0,BARSLAST(XC)),NODRAW;
EB2:=VALUEWHEN(DEA>0,REF(BARSLAST(SC),EC2+1))+EC2+1,NODRAW;
EA2:=VALUEWHEN(DEA>0,REF(BARSLAST(XC),EC2+1))+EC2+1,NODRAW;
ED11:=IF(DEA<0,ED1,NULL),NODRAW;
EC11:=IF(DEA<0,EC1,NULL),NODRAW;
EB11:=IF(DEA<0,EB1,NULL),NODRAW;
EA11:=IF(DEA<0,EA1,NULL),NODRAW;
ED22:=IF(DEA>0,ED2,NULL),NODRAW;
EC22:=IF(DEA>0,EC2,NULL),NODRAW;
EB22:=IF(DEA>0,EB2,NULL),NODRAW;
EA22:=IF(DEA>0,EA2,NULL),NODRAW;
ED111:=REF(HHV(DIFF,BARSLAST(SC)+1),ED11);
EC111:=REF(LLV(DIFF,BARSLAST(XC)+1),EC11);
EB111:=REF(HHV(DIFF,BARSLAST(SC)+1),EB11);
ED1111:=IF(ISNULL(ED111),0,ED111);
EC1111:=IF(ISNULL(EC111),0,EC111);
EB1111:=IF(ISNULL(EB111),0,EB111);
ED222:=REF(LLV(DIFF,BARSLAST(XC)+1),ED22);
EC222:=REF(HHV(DIFF,BARSLAST(SC)+1),EC22);
EB222:=REF(LLV(DIFF,BARSLAST(XC)+1),EB22);
ED2222:=IF(ISNULL(ED222),0,ED222);
EC2222:=IF(ISNULL(EC222),0,EC222);
EB2222:=IF(ISNULL(EB222),0,EB222);
E1:=IF(DEA<0,DIFF,0),NODRAW;
E2:=IF(DEA>0,DIFF,0),NODRAW;
HD1:EC1111+EC2222+EB1111+EB2222;
HD2:EC1111+EC2222+ED1111+ED2222;
HD:E1+E2+ED1111+ED2222;
