clusterfilter.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «clusterfilter.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный индикатор рассчитывает и отображает на графике MetaTrader 5 три аналитические линии: простую скользящую среднюю (SMA), экспоненциальную скользящую среднюю (EMA) и кластерный фильтр (CF). Кластерный фильтр сравнивает значения двух скользящих средних и на основе условий направления выбирает подходящее значение, формируя сглаженную выходную линию.
Индикатор использует три буфера и отрисовывает их как линии в окне графика. Период обеих скользящих средних настраивается через единственный входной параметр. Индикатор предназначен для визуального анализа динамики цен.
Настройки программы
| Настройка | Описание |
|---|---|
| ext_period_MA | Период скользящей средней, используемой для расчёта SMA, EMA и кластерного фильтра. |
Поиск по коду файла
#property version "1.00"
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_plots 3
double ExtBuffer_MA[];
double ExtBuffer_EMA[];
double ExtBuffer_CF[];
input int ext_period_MA=2;//Period MA
int OnInit()
{
// код доступен только после оплаты
}
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
// код доступен только после оплаты
}
void CalculateSimpleMA(int rates_total,int prev_calculated,int begin,const double &price[])
{
int i,limit;
if(prev_calculated==0)// first calculation
{
limit=ext_period_MA+begin;
for(i=0;i<limit-1;i++){ ExtBuffer_MA[i]=0.0; }
double firstValue=0;
for(i=begin;i<limit;i++)
{
firstValue+=price[i];
}
firstValue/=ext_period_MA;
ExtBuffer_MA[limit-1]=firstValue;
}else{ limit=prev_calculated-1;
}
for(i=limit;i<rates_total && !IsStopped();i++)
ExtBuffer_MA[i]=ExtBuffer_MA[i-1]+(price[i]-price[i-ext_period_MA])/ext_period_MA;
}
void CalculateEMA(int rates_total,int prev_calculated,int begin,const double &price[])
{
int i,limit;
double SmoПоказано первые 50% кода (символов: 3223)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.