Адаптивные скользящие средние > AMA (Adaptive Moving Average) – адаптивная скользящая средняя

Аватара пользователя
evge
Администратор
Сообщения: 1812
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 83 раза
Поблагодарили: 367 раз
Контактная информация:

AMA (Adaptive Moving Average) – адаптивная скользящая средняя

Непрочитанное сообщение evge » 07 фев 2016, 10:28

Адаптивная скользящая средняя – это экспоненциальная скользящая средняя с изменяемым периодом сглаживания. Данный индикатор часто встречается под именем KAMA.

Автор: Перри Кауфман (Perry J. Kaufman).
Первоисточник: «Trading Systems and Methods»

Типовые параметры

Обычно используются следующие значение периода усреднения для дневного тайм-фрейма Pfast = 4, Pslow = 30, P = 10 .

Сигналы

Трендовый вариант
• Если цена пересекает вверх линию АМА, то покупать.
• Если цена пересекает вниз линию АМА, то продавать.
Вариант дополнительного открытия позиции
• Если Low < АМА и Close > Open, то покупать.
• Если High > АМА и Close < Open, то продавать.

Пример:

AMA-00.png
AMA-00.png (25.6 КБ) 37834 просмотра


Исходный текст:

Код: Выделить всё

function Initialize()
{
  IndicatorName = "AMA";                        
   AddInput("Input", Inputs.Price);         
   PriceStudy = true;                              
   AddSeries("AMA", DrawAs.Line, Color.Red);   
    AddParameter("PSlow", 30.0, 1);               
   AddParameter("PFast", 4.0);                     
    AddParameter("Period", 10.0);                  
}

function Evaluate()
{
// AlfaDirect. 2014. OX
// Индикатора KAMA. Адаптивная скользящая средняя П.Кауфмана (Perry J. Kaufman).
   if (CurrentIndex <= Period)
         AMA = Input[0]; 
   else
   {
     double Sig = Math.Abs(Input[0] - Input[-Period]);
     double Noise = 0.0;
      for (int j = 0; j < Period; j++)
              Noise = Noise + Math.Abs( Input[-j] - Input[-j-1] );
     
     double SSC = 0.0;
      if (Noise > 0.0)
        SSC = (Sig / Noise) * ( 2.0/(PFast + 1.0) - 2.0/(PSlow + 1.0) ) + 2.0/(PSlow + 1.0);
     else
        SSC = 0.0;
      AMA = AMA[-1] + SSC*SSC*( Input[0] - AMA[-1] );
   }
}
никогда такого не было и вот опять

Вернуться в «Адаптивные скользящие средние»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей