← К каталогу
Исходный код · ID 1476

Kaufman Adaptive Moving Average

kama.mq5
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Индикатор Kaufman Adaptive Moving Average (KAMA) рассчитывает адаптивную скользящую среднюю, которая подстраивается под скорость изменения цены. В основе лежит коэффициент эффективности (Efficiency Ratio), определяющий соотношение сигнала к шуму, на основе которого вычисляется коэффициент сглаживания между быстрой и медленными скользящими средними.

Индикатор отображает рассчитанную линию в окне графика MetaTrader 5. Дополнительно доступен динамический фильтр на основе стандартного отклонения изменений, который при превышении заданного порога оставляет значение индикатора без изменений, что позволяет сглаживать колебания в боковых движениях.

Поддерживается выбор различных типов цен (открытия, максимума, минимума, медианы, типичной, взвешенной и закрытия) для расчёта. Параметры периодов быстрой и медленной скользящих средних задаются отдельно, что позволяет настраивать адаптивность индикатора.

Настройки программы

НастройкаОписание
periodAMA Период расчёта адаптивной скользящей средней, используемый для определения коэффициента эффективности.
PriceType Тип цены для расчёта индикатора: 0 — закрытие, 1 — открытие, 2 — максимум, 3 — минимум, 4 — медиана, 5 — типичная, 6 — взвешенная.
nfast Период быстрой скользящей средней, определяющий верхнюю границу адаптивного коэффициента сглаживания.
nslow Период медленной скользящей средней, определяющий нижнюю границу адаптивного коэффициента сглаживания.
PctFilter Динамический фильтр в десятичном виде. При значении больше нуля фильтрует изменения индикатора на основе стандартного отклонения, оставляя значение без изменений при малых колебаниях.
Получить полный код

Поиск по коду файла

#property indicator_chart_window
#property indicator_buffers 1 
#property indicator_color1 LightSeaGreen 

extern int periodAMA=20; 
extern int PriceType=4;
extern int nfast=2; 
extern int nslow=30; 
extern double  PctFilter         = 0;  //Dynamic filter in decimal

double kAMAbuffer[]; 
double     Del[];

double dSC,slowSC,fastSC; 
double noise,signal,ER; 
double ERSC,SSC,Price; 
bool fc;

int init() {
      // код доступен только после оплаты
   } 

int deinit() { 
   return(0); 
} 

int start() {
      // код доступен только после оплаты
   } 
   int i, limit, pos=1, countedbars=IndicatorCounted();

   if (Bars<=periodAMA+2) return(0); 
   if(countedbars<0) return(-1);
   if (countedbars>0) countedbars--;
   if (fc==true) {
      limit=(Bars-periodAMA-countedbars);
      kAMAbuffer[limit+1]=(High[limit+1]+Low[limit+1])/2;
   }
   else limit=Bars-countedbars;

   for (pos=limit; pos>=0; pos--){ 
      signal=MathAbs(((High[pos]+Low[pos])/2)-((High[pos+periodAMA]+Low[pos+periodAMA])/2)); 
      noise=0; 
      for(i=0;i<periodAMA;i++) { 
         noise=noise+MathAbs(((High[pos+i]+Low[pos+i]

Показано первые 50% кода (символов: 2119)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
211,90₽ ≈ $2.59