//---- input parameters extern int FastEMA=3; extern int SlowEMA=34; extern int SlowEMA2=89; extern int SlowEMA3=144; double FASTEMACURRENT,FASTEMAPREVIOUS,SLOWEMACURRENT,SLOWEMAPREVIOUS; double SLOWEMACURRENT2,SLOWEMAPREVIOUS2,SLOWEMACURRENT3,SLOWEMAPREVIOUS3; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } int start() { FASTEMACURRENT=iMA(NULL,0,3,0,MODE_EMA,PRICE_CLOSE,0); FASTEMAPREVIOUS=iMA(NULL,0,3,0,MODE_EMA,PRICE_CLOSE,1); SLOWEMACURRENT=iMA(NULL,0,34,0,MODE_EMA,PRICE_CLOSE,0); SLOWEMAPREVIOUS=iMA(NULL,0,34,0,MODE_EMA,PRICE_CLOSE,1); SLOWEMACURRENT2=iMA(NULL,0,89,0,MODE_EMA,PRICE_CLOSE,0); SLOWEMAPREVIOUS2=iMA(NULL,0,89,0,MODE_EMA,PRICE_CLOSE,1); SLOWEMACURRENT3=iMA(NULL,0,144,0,MODE_EMA,PRICE_CLOSE,0); SLOWEMAPREVIOUS3=iMA(NULL,0,144,0,MODE_EMA,PRICE_CLOSE,1); // EMA34 Crossover if (FASTEMACURRENT > SLOWEMACURRENT && FASTEMAPREVIOUS < SLOWEMAPREVIOUS) { if (NewBar()) SendMail(Symbol()+" 34EMA Bullish test22",Symbol()+" 34EMA Cross Up test2"); } if (FASTEMACURRENT < SLOWEMACURRENT && FASTEMAPREVIOUS > SLOWEMAPREVIOUS) { if (NewBar())SendMail(Symbol()+" 34EMA Bearish test22",Symbol()+" 34EMA Cross Down test2"); } // EMA89 Crossover if (FASTEMACURRENT > SLOWEMACURRENT2 && FASTEMAPREVIOUS < SLOWEMAPREVIOUS2) { if (NewBar()) SendMail(Symbol()+" 89EMA Bullish test22",Symbol()+" 89EMA Cross Up test2"); } if (FASTEMACURRENT < SLOWEMACURRENT2 && FASTEMAPREVIOUS > SLOWEMAPREVIOUS2) { if (NewBar()) SendMail(Symbol()+" 89EMA Bearish test22",Symbol()+" 89EMA Cross Down test2"); } // EMA144 Crossover if (FASTEMACURRENT > SLOWEMACURRENT3 && FASTEMAPREVIOUS < SLOWEMAPREVIOUS3) { if (NewBar()) SendMail(Symbol()+" 144EMA Bullish test22",Symbol()+" 144EMA Cross Up test2"); } if (FASTEMACURRENT < SLOWEMACURRENT3 && FASTEMAPREVIOUS > SLOWEMAPREVIOUS3) { if (NewBar()) SendMail(Symbol()+" 144EMA Bearish test22",Symbol()+" 144EMA Cross Down test2"); } } return (0); bool NewBar() { static datetime dt = 0; if (dt != Time[0]) { dt = Time[0]; Sleep(100); // wait for tick return(true); } return(false); }