Функция позволяет определить, на каком баре сформировалась сильная фигура технического анализа — Поглощение.
//minSizeCandle - Минимальный размер свечи;
//tf - Таймферйм для поиска Поглощения
//percent - На сколько процентов тело Поглощающей свечи должно быть больше размера тела Поглощаемой;
//livSignalCandle - сколько свечей после поглощения "жив" сигнал
int engulfing(int minSizeCandle, ENUM_TIMEFRAMES tf, double percent)
{
double body1=0, body2 = 0;
for(int i = 1; i <= livSignalCandle; i++)
{
body1 = MathAbs(iOpen(Symbol(),tf,i) - iClose(Symbol(),tf,i));//Разме (тело) первой свечи свечи
if(body1 < minSizeCandle * _Point)
continue;
body2 = MathAbs(iOpen(Symbol(),tf,i+1) - iClose(Symbol(),tf,i+1));
if(body1 <= 0 || body2 <= 0)
continue;
if((body1/body2*100)-100 >= percent)
{
if(iOpen(Symbol(),tf,i) < iClose(Symbol(),tf,i) && iOpen(Symbol(),tf,i+1) > iClose(Symbol(),tf,i+1) &&
iOpen(Symbol(),tf,i) <= iClose(Symbol(),tf,i+1) && iClose(Symbol(),tf,i) > iOpen(Symbol(),tf,i+1))
{
return(i);
}
if(iOpen(Symbol(),tf,i) > iClose(Symbol(),tf,i) && iOpen(Symbol(),tf,i+1) < iClose(Symbol(),tf,i+1) &&
iOpen(Symbol(),tf,i) >= iClose(Symbol(),tf,i+1) && iClose(Symbol(),tf,i) < iOpen(Symbol(),tf,i+1))
{
return(0-i);
}
}
}
return(0);
}