QQE with Alerts Indicator For MT4

QQE with Alerts Indicator For MT4

Table Of Contents:

  1. QQE with Alerts Indicator For MT4
  2. Installing the QQE with Alerts Indicator For MT4
  3. Parameters of the QQE with Alerts Indicator For MT4
  4. Buffers of the QQE with Alerts Indicator For MT4
  5. Main Parts Of The Code

The QQE with Alerts Indicator For MT4 is a customized version of the Qualitative Quantitative Estimation (QQE) indicator. It is based on the Relative Strength Index (RSI), and provides a gauge of the trend direction and strength.

FREE QQE with Alerts Indicator

Download the FREE QQE with Alerts Indicator for MT4.

To receive my email 100% sure: 
Put my email on your whitelist!


Partially Automated Trading Besides Your Day Job

Alerts In Real-Time When Divergences Occur

My Recommended MT4/MT5 Broker


Installing the QQE with Alerts Indicator For MT4

After you downloaded the indicator via the form above you need to unzip the zip-file. Then you need to copy the file QQE_with_Alerts.mq4 into the folder MQL4\Indicators of your MT4 installation. After that please restart MT4 and then you will be able to see the indicator in the list of indicators.

Parameters of the QQE with Alerts Indicator For MT4

The QQE with Alerts Indicator For MT4 has 8 parameters to configure.

extern string NOTESETTINGS=" --- INDICATOR SETTINGS ---"; extern int SF=5; extern string NOTEALERTS=" --- Alerts ---"; extern int AlertLevel=50; extern bool MsgAlerts=true; extern bool SoundAlerts=true; extern string SoundAlertFile="alert.wav"; extern bool eMailAlerts=false; 

Buffers of the QQE with Alerts Indicator For MT4

The QQE with Alerts Indicator For MT4 provides 5 buffers.

SetIndexBuffer(0,RsiMa); SetIndexBuffer(1,TrLevelSlow); SetIndexBuffer(2,AtrRsi); SetIndexBuffer(3,MaAtrRsi); SetIndexBuffer(4,Rsi); 

Main Parts Of The Code

int start()   {    int counted,i;    double rsi0,rsi1,dar,tr,dv; //----    if(Bars lt =StartBar) return(0); //----             int counted_bars=IndicatorCounted();    if(counted_bars lt 0) return(-1);    if(counted_bars gt 0) counted_bars--;    int limit=Bars-counted_bars;    if(counted_bars==0) limit-=1+1; //----    for(i=limit; i gt =0; i--)       Rsi[i]=iRSI(NULL,0,RSI_Period,PRICE_CLOSE,i);    for(i=limit; i gt =0; i--)      {       RsiMa[i]=iMAOnArray(Rsi,0,SF,0,MODE_EMA,i);       AtrRsi[i]=MathAbs(RsiMa[i+1]-RsiMa[i]);      }    for(i=limit; i gt =0; i--)       MaAtrRsi[i]=iMAOnArray(AtrRsi,0,Wilders_Period,0,MODE_EMA,i); //----    i=limit-1;    tr=TrLevelSlow[i];    rsi1=iMAOnArray(Rsi,0,SF,0,MODE_EMA,i);    while(i gt 0)      {       i--;       rsi0=iMAOnArray(Rsi,0,SF,0,MODE_EMA,i);       dar=iMAOnArray(MaAtrRsi,0,Wilders_Period,0,MODE_EMA,i)*4.236;       dv=tr;       if(rsi0 lt tr)         {          tr=rsi0+dar;          if(rsi1 lt dv)             if(tr gt dv)                tr=dv;         }       else if(rsi0 gt tr)         {          tr=rsi0-dar;          if(rsi1 gt dv)             if(tr lt dv)                tr=dv;         }       TrLevelSlow[i]=tr;       rsi1=rsi0;      }    if((RsiMa[i+1] lt AlertLevel && RsiMa[i] gt AlertLevel) || (RsiMa[i+1] gt AlertLevel && RsiMa[i] lt AlertLevel))      {       string base=Symbol()+ ", TF: " + TF2Str(Period());       string Subj=base + ", " + AlertLevel + " level Cross Up";       if(RsiMa[i+1] gt AlertLevel && RsiMa[i] lt AlertLevel) Subj=base+" "+AlertLevel+" level Cross Down";       string Msg=Subj+" @ "+TimeToStr(TimeLocal(),TIME_SECONDS);       if(Bars gt LastAlertBar)         {          LastAlertBar=Bars;          DoAlerts(Msg,Subj);         }      } //----    return(0);   } //+------------------------------------------------------------------+ //|                                                                  | //+------------------------------------------------------------------+ void DoAlerts(string msgText,string eMailSub)   {    if(MsgAlerts) Alert(msgText);    if(SoundAlerts) PlaySound(SoundAlertFile);    if(eMailAlerts) SendMail(eMailSub,msgText);   } //+------------------------------------------------------------------+ //|                                                                  | //+------------------------------------------------------------------+ string TF2Str(int period)   {    switch(period)      {       case PERIOD_M1: return("M1");       case PERIOD_M5: return("M5");       case PERIOD_M15: return("M15");       case PERIOD_M30: return("M30");       case PERIOD_H1: return("H1");       case PERIOD_H4: return("H4");       case PERIOD_D1: return("D1");       case PERIOD_W1: return("W1");       case PERIOD_MN1: return("MN");      }    return(Period());   } //+------------------------------------------------------------------+ 


About Me

I'm Mike Semlitsch the owner of PerfectTrendSystem.com. My trading career started in 2007. Since 2013 I have helped thousands of traders to take their trading to the next level. Many of them are now constantly profitable traders. 

The following performance was achieved by me while trading live in front of hundreds of my clients:

Connect With Me:  

Results From 5 Months!
This service starts soon! Be the first who get's notified when it begins!

This FREE Indicator Can Transform
Your Trading!

FREE Indicator + Telegram Group

Request the Ultimate Double Top/Bottom Indicator which is used by 10,000+ traders.