//////////////////////////////////////////////////////////////////////////////// // Дивергенция по MACD // //////////////////////////////////////////////////////////////////////////////// double MACDdiverg(int timeframe,int fema,int sema,int sma){ double macd,macdp,macdpp,macdr,macdl; int macdrbar,macdlbar; for (int i=1; i<50; i++){ macd=iMACD(0,timeframe,fema,sema,sma,0,0,i); macdp=iMACD(0,timeframe,fema,sema,sma,0,0,i+1); macdpp=iMACD(0,timeframe,fema,sema,sma,0,0,i+2); if ((macdmacdpp&&macd>0&&macdpp>0)||(macd>macdp&&macdp0)||(macd>0&&macdr<0)) break; if ((macdr>0&&macdmacdl)||(macdr<0&&macd>macdp&&macdp0&&macdr!=0){ if ((macdr>0&&macdr>macdl&&mar0&&macdrmal)) { ObjectDelete("MACD up div"); ObjectCreate("MACD up div",OBJ_TREND,0,Time[macdrbar],iHigh(0,0,macdrbar),Time[macdlbar],iHigh(0,0,macdlbar)); ObjectSet("MACD up div",OBJPROP_RAY,0); ObjectSet("MACD up div",OBJPROP_COLOR,PaleGoldenrod); } if ((macdr<0&&macdr>macdl&&marmal)) { ObjectDelete("MACD down div"); ObjectCreate("MACD down div",OBJ_TREND,0,Time[macdrbar],iLow(0,0,macdrbar),Time[macdlbar],iLow(0,0,macdlbar)); ObjectSet("MACD down div",OBJPROP_RAY,0); ObjectSet("MACD down div",OBJPROP_COLOR,PaleGoldenrod); } } return(0); }