DIFF := EMA(CLOSE,5) - EMA(CLOSE,34);//短周期与长周期的收盘价的指数平滑移动平均值做差。
DEA :=EMA(DIFF,5);//DIFF的M个周期指数平滑移动平均
MACD:=2*(DIFF-DEA),COLORSTICK;//DIFF减DEA的2倍画柱状线=
MID:=MA(CLOSE,60);//求N个周期的收盘价均线,称为布林通道中轨
TMP2:=STD(CLOSE,60);//求M个周期内的收盘价的标准差
TOP:MID+2*TMP2;//布林通道上轨
BOTTOM:=MID-2*TMP2;//布林通道下轨
MA1:MA(C,13);
MA2:MA(C,60);
MA3:MA(C,120);
RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);
LC :=REF(CLOSE,1);
RSI:=SMA(MAX(CLOSE-LC,0),7,1)/SMA(ABS(CLOSE-LC),7,1)*100;
J:=CROSS(DIFF,DEA);
S:=CROSSDOWN(DIFF,DEA);
///////////////////////////A策略空
N:=BARSLAST(CROSS(H,TOP))+1;
XXC:=S&&SUM(S,N)=1&&EXIST(H>TOP,BARSLAST(J)),NODRAW;
B1:=DIFF>0&&DEA>0&&S;
DB:REF(BARSLAST(B1),1)+1,NODRAW;//金叉B//
DC:DB+REF(REF(BARSLAST(XXC),1),DB)+1,NODRAW;//金叉C//
DD:BARSLAST(J),NODRAW;//金叉D//
DE:REF(BARSLAST(J),DB)+DB,NODRAW;//死叉E//
DF:REF(BARSLAST(J),DC)+DC,NODRAW;//死叉F
A:=S&&DEA>0&&MA1>MA2&&MA1>MA3
&&NOT(REF(EXIST(MA2<MA3,REF(BARSLAST(XXC),1))+1,DB))&&DEA<REF(DEA,DB)
&&REF(DEA,DB)<REF(DEA,DC)&&((EXIST(D>=80,DE)&&EXIST(RSI>80,DE))||EXIST(H>TOP,DE)&&EXIST(K>80,DE));
A,SPK;
REF(BARSLAST(XXC),1)+1,NODRAW;
VERTLINE(B1,COLORGREEN);
VERTLINE(XXC,COLORRED);
XB:=COUNT(MA1<MA2&&MA2<MA3,BARSLAST(A&&SKVOL=0))=1,NODRAW;
EXIST(RSI<20||MA1>MA2,BARSLAST(XB))&&BARSLAST(XB)<BARSSK&&J,BP;
ISUP&&C>TOP&&C>REF(HHV(H,DF),BARSSK),BP;
/////////////////////////A策略多
N1:=BARSLAST(CROSSDOWN(L,BOTTOM))+1;
XXC1:=J&&SUM(J,N1)=1&&EXIST(L<BOTTOM,BARSLAST(S)),NODRAW;
B11:=DIFF<0&&DEA<0&&J,NODRAW;
DB1:=REF(BARSLAST(B11),1)+1,NODRAW;//金叉B//
DC1:=DB1+REF(REF(BARSLAST(XXC1),1),DB1)+1,NODRAW;//金叉C//
DD1:=BARSLAST(S),NODRAW;//金叉D//
DE1:=REF(BARSLAST(S),DB1)+DB1,NODRAW;//死叉E//
DF1:=REF(BARSLAST(S),DC1)+DC1,NODRAW;//死叉F//
A1:=J&&DEA<0&&MA1<MA2&&MA1<MA3
&&NOT(REF(EXIST(MA2>MA3,REF(BARSLAST(XXC1)+1,1)),DB1))&&DEA>REF(DEA,DB1)
&&REF(DEA,DB1)>REF(DEA,DC1)&&((EXIST(D<=20,DE1)&&EXIST(RSI<20,DE1))||EXIST(L<BOTTOM,DE1)&&EXIST(K<20,DE1));
A1,BPK;
XB1:=COUNT(MA1>MA2&&MA2>MA3,BARSLAST(A1&&BKVOL=0))=1,NODRAW;
EXIST(RSI>80||MA1<MA2,BARSLAST(XB1))&&BARSLAST(XB1)<BARSBK&&S,SP;
ISDOWN&&C<BOTTOM&&C<REF(LLV(L,DF1),BARSBK),SP;
///////////////B策略空
BBK:=SUMBARS(S,2),NODRAW;//B
CBK:=BARSLAST(J),NODRAW;//C
DBK:=SUMBARS(J,2),NODRAW;//D
XXX:IF(BKVOL>0,IF(REF(A1,BARSBK)=1,0,1),1),NODRAW;
ABK:=XXX&&EXIST(MA2<MA3,BBK)&&EXIST(RSI>80,DBK)&&(EXIST(K>80,CBK)||EXIST(H>TOP,CBK))&&DEA>0&&DEA<REF(DEA,BBK);
ABK,SPK;
EXIST(MA2>MA3,BARSSK)&&REF(ABK,BARSSK)&&((EXIST(RSI<20,BARSSK)&&EXIST(D<20,BARSSK))||EXIST(L<BOTTOM,BARSSK))&&DIFF<0&&DEA<0&&J,BP;
NOT(EXIST(MA2>MA3,BARSSK))&&DEA<0&&DIFF<0&&J&&DEA>REF(J,SUMBARS(J,2))&&REF(ABK,BARSSK),BP;
REF(ABK,BARSSK)&&ISUP&&C>REF(HHV(H,DBK),BARSSK)&&C>TOP,BP;
/////////////////B策略多
BBD:=SUMBARS(J,2),NODRAW;//B
CBD:=BARSLAST(S),NODRAW;//C
DBD:=SUMBARS(S,2),NODRAW;//D
YYY:IF(SKVOL>0,IF(REF(A,BARSSK)=1,0,1),1),NODRAW;
ABD:=YYY&&EXIST(MA2>MA3,BBD)&&EXIST(RSI<20,DBD)&&(EXIST(K<20,CBD)||EXIST(L<BOTTOM,CBD))&&DEA<0&&DEA>REF(DEA,BBD);
ABD,BPK;
EXIST(MA2<MA3,BARSBK)&&REF(ABD,BARSBK)&&((EXIST(RSI>80,BARSBK)&&EXIST(D>80,BARSBK))||EXIST(H>TOP,BARSBK))&&DIFF>0&&DEA>0&&S,SP;
NOT(EXIST(MA2<MA3,BARSBK))&&DEA>0&&DIFF>0&&S&&DEA<REF(S,SUMBARS(S,2))&&REF(ABD,BARSBK),SP;
REF(ABD,BARSBK)&&ISDOWN&&C<REF(LLV(L,DBD),BARSBK)&&C<BOTTOM,SP;
AUTOFILTER;