Код: Выделить всё
function Initialize()
{
IndicatorName = "pFractal";
AddInput("Input", Inputs.Price);
AddParameter("Period", 5); // требуемое число точек слева и справа от экстремума
PriceStudy=true;
AddSeries("H", DrawAs.Custom, Color.Coral);
AddSeries("L", DrawAs.Custom, Color.LightGreen);
}
function Evaluate()
{
int period=(int)Period;
if(CurrentIndex>2*period)
{
double v=Input[-period];
int xH=0, xL=0;
double v1, v2;
for (int i=1; i<=period; i++)
{
v1=Input[-period-i];
v2=Input[-period+i];
if(v>=v1 && v>=v2) ++xH;
if(v<=v1 && v<=v2) ++xL;
}
if(xH==period) H[period]=v;
if(xL==period) L[period]=v;
H.DrawArrowDown();
L.DrawArrowUp();
}
}