Absolute Strength_v1 Indicator For MT4
The Absolute Strength_v1 Indicator For MT4 is mostly used by the pro trader who wants to trade with the major trend. Red consecutive bars in the histogram show the sellers are in control and the blue elongated bars show the buyers are in control. Based on the condition of the market you need to look for potential trade setups.
Installing the Absolute Strength_v1 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 AbsoluteStrenghtHisto_v1.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 Absolute Strength_v1 Indicator For MT4
The Absolute Strength_v1 Indicator For MT4 has 7 parameters to configure.
extern int Mode =0; // 0-RSI method; 1-Stoch method
extern int Length= 9; // Period
extern int Smooth= 1; // Period of smoothing
extern int Signal= 4; // Period of Signal Line
extern int Price=0; // Price mode : 0-Close,1-Open,2-High,3-Low,4-Median,5-Typical,6-Weighted
extern int ModeMA= 3; // Mode of Moving Average
extern int Mode_Histo =3;
Buffers of the Absolute Strength_v1 Indicator For MT4
The Absolute Strength_v1 Indicator For MT4 provides 8 buffers.
SetIndexBuffer(0,SmthBulls);
SetIndexBuffer(1,SmthBears);
SetIndexBuffer(2,SigBulls);
SetIndexBuffer(3,SigBears);
SetIndexBuffer(4,Bulls);
SetIndexBuffer(5,Bears);
SetIndexBuffer(6,AvgBulls);
SetIndexBuffer(7,AvgBears);
Main Parts Of The Code
int start()
{
int shift, limit, counted_bars=IndicatorCounted();
double Price1, Price2, smax, smin;
//----
if(counted_bars lt 0)return(-1);
if(counted_bars ==0)limit=Bars-Length+Smooth+Signal-1;
if(counted_bars lt 1)
for(int i=1;i lt Length+Smooth+Signal;i++)
{
Bulls[Bars-i]=0;
Bears[Bars-i]=0;
AvgBulls[Bars-i]=0;
AvgBears[Bars-i]=0;
SmthBulls[Bars-i]=0;
SmthBears[Bars-i]=0;
SigBulls[Bars-i]=0;
SigBears[Bars-i]=0;
}
if(counted_bars gt 0) limit=Bars-counted_bars;
limit--;
//----
for( shift=limit; shift gt =0; shift--)
{
Price1=iMA(NULL,0,1,0,0,Price,shift);
Price2=iMA(NULL,0,1,0,0,Price,shift+1);
//----
if (Mode==0)
{
Bulls[shift]=0.5*(MathAbs(Price1-Price2)+(Price1-Price2));
Bears[shift]=0.5*(MathAbs(Price1-Price2)-(Price1-Price2));
}
if (Mode==1)
{
smax=High[Highest(NULL,0,MODE_HIGH,Length,shift)];
smin=Low[Lowest(NULL,0,MODE_LOW,Length,shift)];
Bulls[shift]=Price1 - smin;
Bears[shift]=smax - Price1;
}
}
for( shift=limit; shift gt =0; shift--)
{
AvgBulls[shift]=iMAOnArray(Bulls,0,Length,0,ModeMA,shift);
AvgBears[shift]=iMAOnArray(Bears,0,Length,0,ModeMA,shift);
}
for( shift=limit; shift gt =0; shift--)
{
SmthBulls[shift]=iMAOnArray(AvgBulls,0,Smooth,0,ModeMA,shift);
SmthBears[shift]=iMAOnArray(AvgBears,0,Smooth,0,ModeMA,shift);
}
if(Mode_Histo==1)
{
for( shift=limit; shift gt =0; shift--)
{
if(SmthBulls[shift]-SmthBears[shift] gt 0)
{
SetIndexStyle(0,DRAW_HISTOGRAM,EMPTY,5);
SetIndexStyle(1,DRAW_LINE,EMPTY,2);
SmthBears[shift]= SmthBears[shift]/Point;
SmthBulls[shift]= SmthBulls[shift]/Point;
}
else
{
SetIndexStyle(1,DRAW_HISTOGRAM,EMPTY,5);
SetIndexStyle(0,DRAW_LINE,EMPTY,2);
SmthBears[shift]= SmthBears[shift]/Point;
SmthBulls[shift]= SmthBulls[shift]/Point;
}
} //end for( shift=limit; shift gt =0; shift--)
} // end if(Mode_Histo == 1)
else
if(Mode_Histo==2)
{
for( shift=limit; shift gt =0; shift--)
{
if(SmthBulls[shift]-SmthBears[shift] gt 0)
{
SmthBears[shift]=-SmthBears[shift]/Point;
SmthBulls[shift]= SmthBulls[shift]/Point;
}
else
{
SmthBulls[shift]=-SmthBulls[shift]/Point;
SmthBears[shift]= SmthBears[shift]/Point;
}
} //end for( shift=limit; shift gt =0; shift--)
} //end if(Mode_Histo == 2)
else
if(Mode_Histo==3)
{
for( shift=limit; shift gt =0; shift--)
{
SigBulls[shift]= SmthBulls[shift];
SigBears[shift]= SmthBears[shift];
if(SmthBulls[shift]-SmthBears[shift] gt 0)
SmthBears[shift]=0;
else
SmthBulls[shift]=0;
} //end for( shift=limit; shift gt =0; shift--)
} //end if(Mode_Histo == 3)
else
if(Mode_Histo==4)
{
for( shift=limit; shift gt =0; shift--)
{
if(SmthBulls[shift]-SmthBears[shift] gt 0)
{
SigBears[shift]= SmthBears[shift];
SmthBears[shift]=0;
}
else
{
SigBulls[shift]= SmthBulls[shift];
SmthBulls[shift]=0;
}
} //end for( shift=limit; shift gt =0; shift--)
} //end if(Mode_Histo == 4)
//----
return(0);
}
//+------------------------------------------------------------------+