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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.