… Слегка подзаби(ы)тая тема, мож кому и будет полезно.
Представляю старый добрый ADX, кстати версия КВИКа.
period:=Input(«ADX Period :»,1,100,14);
PlusDM:= If(HIGH>Ref(HIGH,-1),Abs(HIGH-Ref(HIGH,-1)), 0);
MinusDM:= If(LOW<Ref(LOW,-1), Abs(Ref(LOW,-1)-LOW), 0);
tr:=Max(Max(Abs(HIGH-LOW), Abs(HIGH-Ref(CLOSE,-1))),Abs(LOW-Ref(CLOSE,-1)));
SDIPlus:= If(tr<>0,(100 * PlusDM/TR),0);
SDIMinus:= If(tr<>0,(100 * MinusDM/TR),0);
DIPlus:= Mov(SDIPlus,period,E);
DIMinus:= Mov(SDIMinus,period,E);
DXX:=Abs(DIPlus-DIMinus)/(DIPlus+DIMinus);
{Rule}
100*Mov(DXX,period,E);
DIPlus;
DIMinus;
можно слегка поиграть и переменной tr присваиваем, или чистый ATR, или только tr:=Abs(HIGH-ref(LOW,-1) и пробуем считать ADX исходя из хаёв, аналог по лоям. (моя версия, без претензии на правоту). Зачем?? все просто, можно получить цену, при которой, например DIPlus пересечет DIMinus и тд.
Увидели ошибку — пишите.
Всем удачи.