АДАПТИВНАЯ СКОЛЬЗЯЩАЯ СРЕДНЯЯ ПЕРРИ КАУФМАН

Адаптивная скользящая средняя, ​​которая упоминалась в интервью Перри Кауфмана в журнале Stocks&Commodities 1998, является отличной альтернативой общеизвестных скользящих средних.

Для расчета Адаптивной скользящей средней сначала програмируются  функции называемые «АМА» и «AMAF». Функции должны быть созданы до начала програмирования индикатора.

Type: Function, Name: AMA

Inputs: Period(Numeric);
Vars: Noise(0), Signal(0), Diff(0), efRatio(0), Smooth(1), Fastest(.6667), Slowest(.0645), AdaptMA(0);
Diff = AbsValue(Close — Close[1]);
IF CurrentBar <= Period Then AdaptMA = Close;
IF CurrentBar > Period Then Begin
Signal = AbsValue(Close — Close[Period]);
Noise = Summation(Diff, Period);
efRatio = Signal / Noise;
Smooth = Power(efRatio * (Fastest — Slowest) + Slowest, 2);
AdaptMA = AdaptMA[1] + Smooth * (Close — AdaptMA[1]);
End;
AMA = AdaptMA;

 

Type: Function, Name: AMAF

Inputs: Period(Numeric), Pcnt(Numeric);
Vars: Noise(0), Signal(0), Diff(0), efRatio(0), Smooth(1), Fastest(.6667), Slowest(.0645), AdaptMA(0), AMAFltr(0);
Diff = AbsValue(Close — Close[1]);
IF CurrentBar <= Period Then AdaptMA = Close;
IF CurrentBar > Period Then Begin
Signal = AbsValue(Close — Close[Period]);
Noise = Summation(Diff, Period);
efRatio = Signal / Noise;
Smooth = Power(efRatio * (Fastest — Slowest) + Slowest, 2);
AdaptMA = AdaptMA[1] + Smooth * (Close — AdaptMA[1]);
AMAFltr = StdDev(AdaptMA-AdaptMA[1], Period) * Pcnt;
End;
AMAF = AMAFltr;

После того как вы успешно создали обе функции, вы на их основе можете создать два индикатора. Первый индикатор отображает в виде линии Адаптивную скользящую среднию. Фишка в том, что линия АСС может быть сглажена при помощью линейной регрессии.

Type: Indicator, Name: Adaptive Moving Average

Inputs: Period(10), Smooth(«Y»);
IF UpperStr(Smooth) = «Y» Then
Plot1(LinearRegValue(AMA(Period), Period, 0), «Smooth AMA»)
Else
Plot2(AMA(Period), «Adaptive MA»);

АДАПТИВНАЯ СКОЛЬЗЯЩАЯ СРЕДНЯЯ ПЕРРИ КАУФМАН

Второй индикатор «АМА Fltr», использует концепцию фильтрации. На основе отфильтрованных параметров адаптивной скользящей средней (AMAF) мы имеим индикатор, который в виде вертикальных синих или красных линий показывает расположение цены относительно АМА.

Plot1 Покупка Синия линия

Plot2 Продажа Красная линия

Plot3 AMAFILTER

АДАПТИВНАЯ СКОЛЬЗЯЩАЯ СРЕДНЯЯ ПЕРРИ КАУФМАН

Type: Indicator, Name: Adaptive Moving Average Fltr

Inputs: Period(10), Pcnt(.15);
Vars: AMAVal(0), AMAFVal(0), AMALs(0), AMAHs(0);
AMAVal = AMA(Period);
AMAFVAl = AMAF(Period, Pcnt);
IF CurrentBar = 1 Then Begin
AMALs = AMAVal;
AMAHs = AMAVal;
End Else Begin
IF AMAVal < AMAVal[1] Then
AMALs = AMAVal;
IF AMAVal > AMAVal[1] Then
AMAHs = AMAVal;
IF AMAVal — AMALs > AMAFVal Then Begin
Plot1(AMAFVal, «Buy»);
IF Plot1[1] = 0 Then
Alert = True;
End Else
IF AMAHs — AMAVal > AMAFVal Then Begin
Plot2(AMAFVal, «Sell»);
IF Plot2[1] = 0 Then
Alert = True;
End;
Plot3(AMAFVal, «AMAFilter»);
End;

Николай Солабуто
Оцените автора
Николай Солабуто
Добавить комментарий