3 MA Cross w_Alert v2 Indicator For MT4

3 MA Cross w_Alert v2 Indicator For MT4

The 3 MA Cross w_Alert v2 Indicator For MT4 generates alarm when the 3 MA crosses each other. It also paints a red arrow at the bottom of the candle when the bears lose their strength. On the contrary, you will spot the green arrow at the top of the candle when the buyers lose the momentum.

FREE 3 MA Cross w_Alert v2 Indicator

Download the FREE 3 MA Cross w_Alert v2 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 3 MA Cross w_Alert v2 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 3_MA_Cross_w_Alert_v2.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 3 MA Cross w_Alert v2 Indicator For MT4

The 3 MA Cross w_Alert v2 Indicator For MT4 has 10 parameters to configure.

extern int FasterMA    =    5;
extern int FasterShift =   -5;
extern int FasterMode=1; // 0 = sma, 1 = ema, 2 = smma, 3 = lwma
extern int MediumMA    =   20;
extern int MediumShift =   -5;
extern int MediumMode=1; // 0 = sma, 1 = ema, 2 = smma, 3 = lwma
extern int SlowerMA    =   34;
extern int SlowerShift =    0;
extern int SlowerMode=    1; // 0 = sma, 1 = ema, 2 = smma, 3 = lwma
extern int SoundAlert=    1; // 0 = disabled

Buffers of the 3 MA Cross w_Alert v2 Indicator For MT4

The 3 MA Cross w_Alert v2 Indicator For MT4 provides 2 buffers.

SetIndexBuffer(0,CrossUp);
SetIndexBuffer(1,CrossDown);

Main Parts Of The Code

int start()
  {
   int i,counter;
   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+9;
//----   
   for(i=0; i lt =limit; i++)
     {
      counter=i;
      Range=0;
      AvgRange=0;
      for(counter=i;counter lt =i+9;counter++)
        {
         AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);
        }
      Range=AvgRange/10;
      //----       
      fasterMAnow      = iMA(NULL, 0, FasterMA, FasterShift, FasterMode, PRICE_CLOSE, i+1);
      fasterMAprevious = iMA(NULL, 0, FasterMA, FasterShift, FasterMode, PRICE_CLOSE, i+2);
      fasterMAafter    = iMA(NULL, 0, FasterMA, FasterShift, FasterMode, PRICE_CLOSE, i-1);
      //----      
      mediumMAnow      = iMA(NULL, 0, MediumMA, MediumShift, MediumMode, PRICE_CLOSE, i+1);
      mediumMAprevious = iMA(NULL, 0, MediumMA, MediumShift, MediumMode, PRICE_CLOSE, i+2);
      mediumMAafter    = iMA(NULL, 0, MediumMA, MediumShift, MediumMode, PRICE_CLOSE, i-1);
      //----      
      slowerMAnow      = iMA(NULL, 0, SlowerMA, SlowerShift, SlowerMode, PRICE_CLOSE, i+1);
      slowerMAprevious = iMA(NULL, 0, SlowerMA, SlowerShift, SlowerMode, PRICE_CLOSE, i+2);
      slowerMAafter    = iMA(NULL, 0, SlowerMA, SlowerShift, SlowerMode, PRICE_CLOSE, i-1);
      //----      
      if((fasterMAnow gt slowerMAnow && 
         fasterMAprevious lt =slowerMAprevious && 
         fasterMAafter gt slowerMAafter && 
         mediumMAnow gt slowerMAnow)
         || 
         (fasterMAnow gt slowerMAnow && 
         mediumMAnow gt slowerMAnow && 
         mediumMAprevious lt =slowerMAprevious && 
         mediumMAafter gt slowerMAafter))
        {
         CrossUp[i]=Low[i]-Range*0.5;
        }
      if((fasterMAnow lt slowerMAnow && 
         fasterMAprevious gt =slowerMAprevious && 
         fasterMAafter lt slowerMAafter && 
         mediumMAnow lt slowerMAnow)
         || 
         (fasterMAnow lt slowerMAnow && 
         mediumMAnow lt slowerMAnow && 
         mediumMAprevious gt =slowerMAprevious && 
         mediumMAafter lt slowerMAafter))
        {
         CrossDown[i]=High[i]+Range*0.5;
        }
     }
   if((CrossUp[0] gt 2000) && (CrossDown[0] gt 2000)) { prevtime=0; }
   if((CrossUp[0]==Low[0]-Range*0.5) && (prevtime!=Time[0]) && (SoundAlert!=0))
     {
      prevtime=Time[0];
      Alert(Symbol()," 3 MA Cross Up @  Hour ",Hour(),"  Minute ",Minute());
     }
   if((CrossDown[0]==High[0]+Range*0.5) && (prevtime!=Time[0]) && (SoundAlert!=0))
     {
      prevtime=Time[0];
      Alert(Symbol()," 3 MA Cross Down @  Hour ",Hour(),"  Minute ",Minute());
     }
//Comment("  CrossUp[0]  ",CrossUp[0]," ,  CrossDown[0]  ",CrossDown[0]," ,  prevtime  ",prevtime);
//Comment("");   
   return(0);
  }
//-------------------------------------------------------+

 

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:  

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.

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