//+------------------------------------------------------------------+
//| SI.mq4 |
//| Raff |
//| raff1410@o2.pl |
//+------------------------------------------------------------------+
#property copyright "Raff"
#property link "just_raff1410@yahoo.com"
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red
//---- input parameters
extern double T = 1;
extern int CountBars = 10000;
//---- buffers
double ASI[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
IndicatorBuffers(1);
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ASI);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int i, counted_bars=IndicatorCounted();
//----
double pHigh, pLow, pOpen, pClose;
double pHigh_1, pLow_1, pOpen_1, pClose_1;
double K, R, R_1, R_2, R_3, R_4, X, SI ;
if (CountBars>Bars) CountBars=Bars-10;
i=CountBars-10;
ASI[i+1]=0;
while(i>=0)
{
pHigh = High[i];
pLow = Low[i];
pOpen = Open[i];
pClose = Close[i];
pHigh_1 = High[i+1];
pLow_1 = Low[i+1];
pOpen_1 = Open[i+1];
pClose_1 = Close[i+1];
R_1 = MathAbs(pHigh-pClose_1);
R_2 = MathAbs(pLow-pClose_1);
R_3 = MathAbs(pHigh-pLow);
R_4 = MathAbs(pClose_1-pOpen_1);
K = MathMax(R_1,R_2);
if (R_1>=MathMax(R_2,R_3))
{
R = R_1 - R_2/2 + R_4/4;
}
else
if (R_2>=MathMax(R_1,R_3))
{
R = R_2 - R_1/2 + R_4/4;
}
else
{
R = R_3 + R_4/4;
}
if (R==0) SI=0;
else
{
X = (pClose_1-pClose)+(pClose_1-pOpen_1)/2+(pClose-pOpen)/4;
SI = 50 * (X/R) * (K/T);
}
ASI[i] = ASI[i+1]-SI;
i--;
}
//----
return(0);
}
//+------------------------------------------------------------------+
Comments