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

Адаптивная скользящая средняя, ​​которая упоминалась в интервью Перри Кауфмана в журнале 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;

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