通达信股票公式:改飞狐macd实战

  我改飞狐MACD实战公式为通达信公式(我用的是中银国际标准版):

  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 ;

  MACD:DEA ,COLORLIMAGENTA ;

  DEF: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);