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.
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);
}
//-------------------------------------------------------+