//+------------------------------------------------------------------+ //| Alert.mq4 | //| Copyright © 2004, MetaQuotes Software Corp. | //| http://www.metaquotes.net/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2004, MetaQuotes Software Corp." #property link "http://www.metaquotes.net/" #property indicator_chart_window #define up " UP TREND " #define down " DOWN TREND " extern bool condittion_all = 0; extern int shift_bar = 0; extern bool one_alert = 0; extern bool macd = 0; extern int macdFastLWMA=12; extern int macdSlowLWMA=26; extern int macdSignalLWMA=9; extern bool ma_cross = 0; extern int FastLWMA_HLCC=5; extern int SlowLWMA_OPEN=7; extern bool stoch = 0; extern int stochKperiod=5; extern int stochDperiod=3; extern int stochSlowing=3; extern bool rsi = 0; extern int rsiPeriod=14; extern bool cci = 0; extern int cciPeriod=14; extern bool wpr = 0; extern int wprPeriod=14; extern bool rvi = 0; extern int rviPeriod=10; static int alert=-1; int all_alert; string signal; double macdMacd, macdSignal, crossMA, stochSignal, rsiSignal, cciSignal, wprSignal, rviSignal; bool up_1, up_2, up_3, up_4, up_5, up_6, up_7, down_1, down_2, down_3, down_4, down_5, down_6, down_7; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { all_alert = (macd == 1) + (ma_cross == 1) + (stoch == 1) + (rsi == 1) + (cci == 1) + (wpr == 1) + (rvi == 1); //---- initialization done return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { //---- if(macd == 1) { macdMacd = iMA(NULL,0,macdFastLWMA,0,MODE_LWMA,PRICE_CLOSE,shift_bar) - iMA(NULL,0,macdSlowLWMA,0,MODE_LWMA,PRICE_CLOSE,shift_bar); macdSignal = iMAOnArray(macdMacd,macdSlowLWMA,macdSignalLWMA,0,MODE_LWMA,shift_bar); up_1 = macdMacd-macdSignal > 0.0; down_1 = macdMacd-macdSignal < 0.0;} //---- if(ma_cross == 1) { crossMA = iMA(NULL,0,FastLWMA_HLCC,0,MODE_LWMA,PRICE_WEIGHTED,shift_bar) - iMA(NULL,0,SlowLWMA_OPEN,0,MODE_LWMA,PRICE_OPEN,shift_bar); up_2 = crossMA > 0.0; down_2 = crossMA < 0.0;} //---- if(stoch == 1) { stochSignal = iStochastic(NULL,0,stochKperiod,stochDperiod,stochSlowing, MODE_SMA,0,MODE_MAIN,shift_bar) - iStochastic(NULL,0,stochKperiod,stochDperiod,stochSlowing, MODE_SMA,0,MODE_SIGNAL,shift_bar); up_3 = stochSignal > 0.0; down_3 = stochSignal < 0.0;} //---- if(rsi == 1) { rsiSignal = iRSI(NULL,0,rsiPeriod,PRICE_CLOSE,shift_bar) - iRSI(NULL,0,rsiPeriod,PRICE_CLOSE,shift_bar+1); up_4 = rsiSignal > 0.0; down_4 = rsiSignal < 0.0;} //---- if(cci == 1) { cciSignal = iCCI(NULL,0,cciPeriod,PRICE_TYPICAL,shift_bar) - iCCI(NULL,0,cciPeriod,PRICE_TYPICAL,shift_bar+1); up_5 = cciSignal > 0.0; down_5 = cciSignal < 0.0;} //---- if(wpr == 1) { wprSignal = iWPR(NULL,0,wprPeriod,shift_bar) - iWPR(NULL,0,wprPeriod,shift_bar+1); up_6 = wprSignal > 0.0; down_6 = wprSignal < 0.0;} //---- if(rvi == 1) { rviSignal = iRVI(NULL, 0, rviPeriod,MODE_MAIN,shift_bar) - iRVI(NULL, 0, rviPeriod,MODE_SIGNAL,shift_bar); up_7 = wprSignal > 0.0; down_7 = wprSignal < 0.0;} //---- if(condittion_all == 1 && all_alert > 0) { if( ((macd == 1 && up_1 == 1) || macd == 0) && ((ma_cross == 1 && up_2 == 1) || ma_cross == 0) && ((stoch == 1 && up_3 == 1) || stoch == 0) && ((rsi == 1 && up_4 == 1) || rsi == 0) && ((cci == 1 && up_5 == 1) || cci == 0) && ((wpr == 1 && up_6 == 1) || wpr == 0) && ((rvi == 1 && up_7 == 1) || rvi == 0) ) signal = up; if( ((macd == 1 && down_1 == 1) || macd == 0) && ((ma_cross == 1 && down_2 == 1) || ma_cross == 0) && ((stoch == 1 && down_3 == 1) || stoch == 0) && ((rsi == 1 && down_4 == 1) || rsi == 0) && ((cci == 1 && down_5 == 1) || cci == 0) && ((wpr == 1 && down_6 == 1) || wpr == 0) && ((rvi == 1 && down_7 == 1) || rvi == 0) ) signal = down; } //---- if(condittion_all == 0 && all_alert > 0) { if(up_1 == 1 || up_2 == 1 || up_3 == 1 || up_4 == 1 || up_5 == 1 || up_6 == 1 || up_7 == 1) signal = up; if(down_1 == 1 || down_2 == 1 || down_3 == 1 || down_4 == 1 || down_5 == 1 || down_6 == 1 || down_7 == 1) signal = down; } //---- if(one_alert == 1) { if(alert != 0 && signal == up) { alert = 0; Alert( signal, Symbol() ); } if(alert != 1 && signal == down) { alert = 1; Alert( signal, Symbol() ); } } else { if(signal == up) Alert( signal, Symbol() ); if(signal == down) Alert( signal, Symbol() ); } //---- return(0); } //+------------------------------------------------------------------+
Sample
Analysis
Market Information Used:
Indicator Curves created:
Indicators Used:
Moving average indicator
Stochastic oscillator
Relative strength index
Commodity channel index
Larry William percent range indicator
Relative Vigor index
Custom Indicators Used:
Order Management characteristics:
Other Features:
It issuies visual alerts to the screen