SHORT:=12;LONG:=26;MID:=9;
DIF:=100*(EMA(CLOSE,SHORT)-EMA(CLOSE,LONG));
DEA:=EMA(DIF,MID);
MACD:=(DIF-DEA)*2;
{底部结构预警}
死叉:=CROSS(DEA,DIF);
N1:=BARSLAST(死叉);{最近一次死叉的位置}
N2:=REF(BARSLAST(死叉),N1+1);{倒数第二次死叉与倒数第一次死叉的区间}
N3:=REF(BARSLAST(死叉),N2+N1+2);{倒数第三次死叉与倒数第二次死叉的区间}
CL1:=LLV(C,N1+1);{最近一次死叉后,最低收盘价}
DIFL1:=LLV(DIF,N1+1);
CL2:=REF(CL1,N1+1);{倒数第二次死叉与倒数第一次死叉之间的最低收盘价}
DIFL2:=REF(DIFL1,N1+1);
CL3:=REF(CL2,N1+1);{倒数第三次死叉与倒数第二次死叉之间的最低收盘价}
DIFL3:=REF(DIFL2,N1+1);
PDIFL2:=IF(DIFL2>0,INTPART(LOG(DIFL2))-1,INTPART(LOG(-DIFL2))-1);
MDIFL2:=INTPART(DIFL2/POW(10,PDIFL2));
PDIFL3:=IF(DIFL3>0,INTPART(LOG(DIFL3))-1,INTPART(LOG(-DIFL3))-1);
MDIFL3:=INTPART(DIFL3/POW(10,PDIFL3));
MDIFB2:=INTPART(DIF/POW(10,PDIFL2));
MDIFB3:=INTPART(DIF/POW(10,PDIFL3));
直接底背离:=(CL1<CL2 ) AND (MDIFB2>MDIFL2) AND (macd<0 AND REF(MACD,1)<0) AND MDIFB2<=REF(MDIFB2,1);
隔峰底背离:=(CL1<CL3 AND CL3<CL2 ) AND (MDIFB3>MDIFL3) AND (MACD<0 AND REF(MACD,1)<0) AND MDIFB3<=REF(MDIFB3,1);
B:=直接底背离 OR 隔峰底背离;
BG:=((MDIFB2>REF(MDIFB2,1))*REF(直接底背离,1)) OR ((MDIFB3>REF(MDIFB3,1))*REF(隔峰底背离,1));
TFILTER(BG,MACD>0,1)&&BARSLAST(B);
九毛八公式解读
SHORT赋值:12 LONG赋值:26 MID赋值:9 DIF赋值:100*(收盘价的SHORT日指数移动平均-收盘价的LONG日指数移动平均) DEA赋值:DIF的MID日指数移动平均 MACD赋值:(DIF-DEA)*2 死叉赋值:DEA上穿DIF N1赋值:上次死叉距今天数 N2赋值:N1+1日前的上次死叉距今天数 N3赋值:N2+N1+2日前的上次死叉距今天数 CL1赋值:N1+1日内收盘价的最低值 DIFL1赋值:N1+1日内DIF的最低值 CL2赋值:N1+1日前的CL1 DIFL2赋值:N1+1日前的DIFL1 CL3赋值:N1+1日前的CL2 DIFL3赋值:N1+1日前的DIFL2 PDIFL2赋值:如果DIFL2>0,返回DIFL2的对数的整数部分-1,否则返回-DIFL2的对数的整数部分-1 MDIFL2赋值:DIFL2/10的PDIFL2乘幂的整数部分 PDIFL3赋值:如果DIFL3>0,返回DIFL3的对数的整数部分-1,否则返回-DIFL3的对数的整数部分-1 MDIFL3赋值:DIFL3/10的PDIFL3乘幂的整数部分 MDIFB2赋值:DIF/10的PDIFL2乘幂的整数部分 MDIFB3赋值:DIF/10的PDIFL3乘幂的整数部分 直接底背离赋值:(CL1MDIFL2) AND (MACD<0 AND 1日前的MACD<0) AND MDIFB2<=1日前的MDIFB2 隔峰底背离赋值:(CL1 MDIFL3) AND (MACD<0 AND 1日前的MACD<0) AND MDIFB3<=1日前的MDIFB3 B赋值:直接底背离 OR 隔峰底背离 BG赋值:((MDIFB2>1日前的MDIFB2)*1日前的直接底背离) OR ((MDIFB3>1日前的MDIFB3)*1日前的隔峰底背离) 信号过滤(多头)并且上次B距今天数