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

filtered wpr.mq5

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

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

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

О программе

Данный индикатор рассчитывает значение Williams Percent Range (WPR) с применением собственной фильтрации, которая сглаживает резкие изменения при малых колебаниях цены. Результирующая линия отображается в отдельном подокне графика и раскрашивается в три цвета в зависимости от направления изменения: зелёный — рост, розовый — падение, серый — без изменений. Для работы используется стандартный индикатор WPR, получаемый через функцию iWPR.

Фильтрация основана на анализе изменений значений за скользящее окно заданного периода. Если текущее изменение меньше порогового значения, определяемого параметром фильтра, то значение заменяется предыдущим, что обеспечивает сглаживание. Это позволяет выделять значимые отклонения и игнорировать незначительные колебания.

Индикатор предназначен для визуального анализа ценовых отклонений на графике. Он не выполняет торговых операций и не отправляет уведомления, несмотря на заявленную возможность в мета-описании. Все расчёты выполняются на основе ценовых данных текущего символа.

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

НастройкаОписание
WPR and filter period (inpPeriod) Период расчёта WPR и фильтра — определяет количество баров, используемых для вычисления Williams Percent Range и для скользящего окна фильтрации изменений.
Filter size (inpFilter) Размер фильтра — пороговое значение, определяющее минимальное изменение для применения фильтрации. Если текущее изменение значения меньше произведения этого параметра на корень из средней мощности изменений за период, значение заменяется предыдущим.
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers 3
#property indicator_plots   1
#property indicator_label1  "Deviation filtered WPR"
#property indicator_type1   DRAW_COLOR_LINE
#property indicator_color1  clrDarkGray,clrDeepPink,clrMediumSeaGreen
#property indicator_width1  2

input int     inpPeriod = 32;   // WPR and filter period
input double  inpFilter = 2.5;  // Filter size

double val[],valc[],wpr[]; 
int  ª_wprHandle,ª_wprPeriod; 

int OnInit()
{
      // код доступен только после оплаты
   }
void OnDeinit(const int reason) {}

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[])
{
      // код доступен только после оплаты
   }

double iFilter(double value, double filter, int period, int i, int bars, int instance=0)
{
   #define ¤ instance
   #define _functionInstances 1
      struct sFilterArrayStruct
         {
            double value;
            double change;
            double power;

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

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

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

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

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

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

Стоимость полного кода
311,80₽ ≈ $3.81