来函数检测结果如下:
该公式没有未来函数


DIFF:=(EMA(CLOSE,12) - EMA(CLOSE,26));

 DEA:=EMA(DIFF,9);

 MACD2:=(2 * (DIFF - DEA));

 DU0:=CROSS(DIFF,0);

 UD0:=CROSS(0,DIFF);

 TDU0:=BARSLAST(DU0);

 TUD0:=BARSLAST(UD0);

 DU3:=REF(DU0,1);

 UD3:=REF(UD0,1);

 TDU3:=BARSLAST(DU3);

 TUD3:=BARSLAST(UD3);

 UDGLINE:=IF((TDU3 < TUD3),REF(HHV(HIGH,2),TDU3),REF(LLV(LOW,2),TUD3));

 JDU0:=(((REF(CLOSE,1) <= REF(UDGLINE,1)) AND (CLOSE > UDGLINE)) AND (TDU0 < TUD0));

 JUD0:=(((REF(CLOSE,1) >= REF(UDGLINE,1)) AND (CLOSE < UDGLINE)) AND (TUD0 < TDU0));

 JDU1:=(JDU0 AND (COUNT(JDU0,TDU0) = 1));

 JUD1:=(JUD0 AND (COUNT(JUD0,TUD0) = 1));

 JDU2:=(JDU1 AND (REF(BARSLAST(JUD1),1) < REF(BARSLAST(JDU1),1)));

 JUD2:=(JUD1 AND (REF(BARSLAST(JUD1),1) > REF(BARSLAST(JDU1),1)));

 JDU3:=(JDU1 AND (REF(BARSLAST(JUD1),1) > REF(BARSLAST(JDU1),1)));

 JUD3:=(JUD1 AND (REF(BARSLAST(JUD1),1) < REF(BARSLAST(JDU1),1)));

 BSLINE:=IF((BARSLAST(JDU2) < BARSLAST(JUD2)),IF(REF(CROSS(0,MACD2),1),LLV(LOW,2),REF(LLV(LOW,2),BARSLAST(REF(CROSS(0,MACD2),1)))),IF(REF(CROSS(MACD2,0),1),HHV(HIGH,2),REF(HHV(HIGH,2),BARSLAST(REF(CROSS(MACD2,0),1)))));

 DRAWICON((JDU1 OR (BARSLAST(JDU1) < BARSLAST(JUD1))),0, 0)  ;

 DRAWICON((JUD1 OR (BARSLAST(JDU1) > BARSLAST(JUD1))),0,0) ;

 STICKLINE((MACD2 >= 0),0,MACD2,2,1),COLORRED ;

 STICKLINE(((MACD2 >= 0) AND (MACD2 < REF(MACD2,1))),0,MACD2,2,0),COLORRED;

 STICKLINE((MACD2 < 0),0,MACD2,2,0),COLORFFFF00;

 STICKLINE(((MACD2 < 0) AND (MACD2 > REF(MACD2,1))),0,MACD2,2,1),COLORFFFF00;

 DIF:DIFF,LINETHICK2,COLORYELLOW  ;

 DEF:DEA ,COLORLIMAGENTA ;

 MACD:MACD2,LINETHICK0,COLORFFFF00 ;

 STICKLINE((CLOSE > 0),0,0,0 ,0) ;

 DEFUT:=BARSLAST(CROSS(MACD2,0));

 DEFDT:=BARSLAST(CROSS(0,MACD2));

 DEFUL:=IF((MACD2 >= 0),HHV(MACD2,(DEFUT + 1)),REF(HHV(MACD2,(DEFUT + 1)),(DEFDT + 1)));

 DEFDL:=IF((MACD2 < 0),LLV(MACD2,(DEFDT + 1)),REF(LLV(MACD2,(DEFDT + 1)),(DEFUT + 1)));

 DEFU2L:=REF(DEFUL,(DEFUT + 1));

 DEFD2L:=REF(DEFDL,(DEFDT + 1));

 DRAWICON(((((LLV(MACD2,4) > 0) AND (MACD2 < REF(MACD2,1))) AND (REF(MACD2,1) > REF(MACD2,2))) AND (REF(MACD2,2) > REF(MACD2,3))),MACD2,2) ;

 DRAWICON(((((HHV(MACD2,4) < 0) AND (MACD2 > REF(MACD2,1))) AND (REF(MACD2,1) < REF(MACD2,2))) AND (REF(MACD2,2) < REF(MACD2,3))),MACD2,1);

 DRAWICON(((((JUD1 OR (BARSLAST(JDU1) > BARSLAST(JUD1))) AND (MACD2 >= 0)) AND (REF(MACD2,1) < REF(DEFU2L,1))) AND (MACD2 > DEFU2L)),MACD2,12) ;

 DRAWICON(((((JDU1 OR (BARSLAST(JDU1) < BARSLAST(JUD1))) AND (MACD2 < 0)) AND (REF(MACD2,1) > REF(DEFD2L,1))) AND (MACD2 < DEFD2L)),MACD2,12);


原理解析:
DIFF赋值:(收盘价的12日指数移动平均 - 收盘价的26日指数移动平均)


 DEA赋值:DIFF的9日指数移动平均


 MACD2赋值:(2 * (DIFF - DEA))
 DU0赋值:DIFF上穿0


 UD0赋值:0上穿DIFF


 TDU0赋值:上次DU0距今天数


 TUD0赋值:上次UD0距今天数


 DU3赋值:1日前的DU0


 UD3赋值:1日前的UD0


 TDU3赋值:上次DU3距今天数


 TUD3赋值:上次UD3距今天数


 UDGLINE赋值:IF((TDU3 < TUD3),REF(2日内最高价最高值,TDU3),REF(2日内最低价最低值,TUD3))


 JDU0赋值:(((1日前的收盘价 <= 1日前的UDGLINE) AND (收盘价 > UDGLINE)) AND (TDU0 < TUD0))


 JUD0赋值:(((1日前的收盘价 >= 1日前的UDGLINE) AND (收盘价 < UDGLINE)) AND (TUD0 < TDU0))


 JDU1赋值:(JDU0 AND (统计TDU0日满足JDU0的天数 = 1))


 JUD1赋值:(JUD0 AND (统计TUD0日满足JUD0的天数 = 1))


 JDU2赋值:(JDU1 AND (REF(上次JUD1距今天数,1) < REF(BARSLAST(JDU1),1)))


 JUD2赋值:(JUD1 AND (REF(上次JUD1距今天数,1) > REF(BARSLAST(JDU1),1)))


 JDU3赋值:(JDU1 AND (REF(上次JUD1距今天数,1) > REF(BARSLAST(JDU1),1)))


 JUD3赋值:(JUD1 AND (REF(上次JUD1距今天数,1) < REF(BARSLAST(JDU1),1)))


 BSLINE赋值:IF((上次JDU2距今天数 < BARSLAST(JUD2)),IF(1日前的0上穿MACD2,2日内最低价最低值,REF(2日内最低价最低值,BARSLAST(1日前的0上穿MACD2))),IF(REF(MACD2上穿0,1),2日内最高价最高值,REF(2日内最高价最高值,BARSLAST(REF(MACD2上穿0,1)))))


 DRAWICON((JDU1 OR (上次JDU1距今天数 < BARSLAST(JUD1))),0, 0) 


 DRAWICON((JUD1 OR (上次JDU1距今天数 > BARSLAST(JUD1))),0,0)


 STICKLINE((MACD2 >= 0),0,MACD2,2,1),画红色


 STICKLINE(((MACD2 >= 0) AND (MACD2 < 1日前的MACD2)),0,MACD2,2,0),画红色


 STICKLINE((MACD2 < 0),0,MACD2,2,0),COLORFFFF00


 STICKLINE(((MACD2 < 0) AND (MACD2 > 1日前的MACD2)),0,MACD2,2,1),COLORFFFF00
输出

 DIF:DIFF, 线宽为2,画黄色 
输出

 DEF:DEA ,COLORLIMAGENTA
输出

 MACD:MACD2,LINETHICK0,COLORFFFF00


 STICKLINE((收盘价 > 0),0,0,0 ,0)


 DEFUT:=上次MACD2上穿0距今天数


 DEFDT:=上次0上穿MACD2距今天数


 DEFUL:=IF((MACD2 >= 0),HHV(MACD2,(DEFUT + 1)),REF(HHV(MACD2,(DEFUT + 1)),(DEFDT + 1)))


 DEFDL:=IF((MACD2 < 0),LLV(MACD2,(DEFDT + 1)),REF(LLV(MACD2,(DEFDT + 1)),(DEFUT + 1)))


 DEFU2L:=REF(DEFUL,(DEFUT + 1))


 DEFD2L:=REF(DEFDL,(DEFDT + 1))


 DRAWICON(((((4日内MACD2最低值 > 0) AND (MACD2 < 1日前的MACD2)) AND (1日前的MACD2 > 2日前的MACD2)) AND (2日前的MACD2 > 3日前的MACD2)),MACD2,2)


 DRAWICON(((((4日内MACD2最高值 < 0) AND (MACD2 > 1日前的MACD2)) AND (1日前的MACD2 < 2日前的MACD2)) AND (2日前的MACD2 < 3日前的MACD2)),MACD2,1)


 DRAWICON(((((JUD1 OR (上次JDU1距今天数 > BARSLAST(JUD1))) AND (MACD2 >= 0)) AND (1日前的MACD2 < 1日前的DEFU2L)) AND (MACD2 > DEFU2L)),MACD2,12)


 DRAWICON(((((JDU1 OR (上次JDU1距今天数 < BARSLAST(JUD1))) AND (MACD2 < 0)) AND (1日前的MACD2 > 1日前的DEFD2L)) AND (MACD2 < DEFD2L)),MACD2,12)

声明:本站所有资源,均为用户自主上传,仅作为学习交流之用,其版权归原作者或原出版社所有,本站不对所涉及的版权问题负法律责任。如有侵权,请联系我们删除!