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

LWMA_with_Bands.v2.0

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

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

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

О программе

LWMA_with_Bands.v2.0 — пользовательский индикатор для MetaTrader 4, построенный на основе линейно-взвешенного скользящего среднего (LWMA). Индикатор отображает основную линию LWMA на графике цены и рассчитывает до четырёх пар верхних и нижних границ, позволяя визуально оценивать отклонение цены от среднего значения.

Индикатор поддерживает два взаимоисключающих режима формирования границ: на основе ATR (Average True Range) и на основе стандартного отклонения (Standard Deviation). В режиме ATR границы рассчитываются как сумма и разность значения LWMA с произведением ATR на заданный множитель. В режиме Standard Deviation границы формируются на основе рассчитанного стандартного отклонения цен за заданный период с четырьмя уровнями отклонения.

Дополнительно индикатор может отображать текстовые объекты на графике с расстоянием от текущей цены Bid до центральной линии LWMA и до первых верхней и нижней границ, переведённым в пункты. Цвет линии LWMA меняется в зависимости от направления движения: при росте и при снижении используются разные цвета.

Индикатор работает на любом таймфрейме и для любых валютных пар, доступных в MetaTrader 4. Расчёт выполняется на каждом тике с использованием стандартных ценовых данных (Open, High, Low, Close).

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

НастройкаОписание
LWMAperiod Период LWMA — Период расчёта линейно-взвешенного скользящего среднего (LWMA)
atrBands Банды ATR — Переключатель режима формирования границ на основе ATR (Average True Range)
stdDevBands Банды стандартного отклонения — Переключатель режима формирования границ на основе стандартного отклонения
DisplayOffsets Отображение расстояний — Переключатель отображения текстовых объектов с расстоянием от цены Bid до линии LWMA и границ в пунктах
atrPeriod Период ATR — Период расчёта ATR (Average True Range)
stdPeriod Период стандартного отклонения — Период расчёта стандартного отклонения
Multiplier1 Множитель ATR 1 — Множитель ATR для первого уровня верхней и нижней границ (при активном режиме ATR)
Multiplier2 Множитель ATR 2 — Множитель ATR для второго уровня верхней и нижней границ
Multiplier3 Множитель ATR 3 — Множитель ATR для третьего уровня верхней и нижней границ
Multiplier4 Множитель ATR 4 — Множитель ATR для четвёртого уровня верхней и нижней границ
Standard Deviation 1 (BandDev1) Стандартное отклонение 1 — Множитель стандартного отклонения для первого уровня верхней и нижней границ (при активном режиме Standard Deviation)
Standard Deviation 2 (BandDev2) Стандартное отклонение 2 — Множитель стандартного отклонения для второго уровня верхней и нижней границ
Standard Deviation 3 (BandDev3) Стандартное отклонение 3 — Множитель стандартного отклонения для третьего уровня верхней и нижней границ
Standard Deviation 4 (BandDev4) Стандартное отклонение 4 — Множитель стандартного отклонения для четвёртого уровня верхней и нижней границ
maxBarsBack Максимум баров назад — Максимальное количество баров для расчёта индикатора
Получить полный код

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

???//+------------------------------------------------------------------+

#property indicator_chart_window

#property indicator_buffers 15
#property indicator_color1 clrWhite
#property indicator_color2 clrDodgerBlue
#property indicator_color3 clrOrange
#property indicator_color4 clrSpringGreen
#property indicator_color5 clrRed
#property indicator_color6 clrSpringGreen
#property indicator_color7 clrRed
#property indicator_color8 clrSpringGreen
#property indicator_color9 clrRed
#property indicator_color10 clrSpringGreen
#property indicator_color11 clrRed

#property indicator_style4 STYLE_DOT
#property indicator_style5 STYLE_DOT
#property indicator_style6 STYLE_SOLID
#property indicator_style7 STYLE_SOLID
#property indicator_style8 STYLE_DOT
#property indicator_style9 STYLE_DOT
#property indicator_style10 STYLE_SOLID
#property indicator_style11 STYLE_SOLID

extern int    LWMAperiod      = 55;
extern bool   atrBands        = false;
extern bool   stdDevBands     = false;
extern bool   DisplayOffsets  = false;
extern int    atrPeriod       = 89;
extern int    stdPeriod       = 21;
extern double Multiplier1     = 3.0;
extern double Multiplier2     = 6.0;
extern double Multiplier3     = 9.0;
extern double Multiplier4     = 12.0;
extern double BandDev1        = 0.5;        // Standard Deviation 1
extern double BandDev2        = 1.0;        // Standard Deviation 2
extern double BandDev3        = 1.5;        // Standard Deviation 3
extern double BandDev4        = 2.0;        // Standard Deviation 4
extern int    maxBarsBack     = 3000;

string shortName;
color textclr = White;
double lwma[], lwma_Up1[], lwma_Dn1[], lwma_Up2[], lwma_Dn2[], lwma_Up3[], lwma_Dn3[], lwma_Up4[], lwma_Dn4[];
double Upper1[], Lower1[], Upper2[], Lower2[], Upper3[], Lower3[], Upper4[], Lower4[];
double PriceBuffer[], StdDevBuffer[];

int pipsDecimal, MaxBarsBack;

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

int deinit()
  {

  ObjectDelete(0);

   return(0);
  }

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

    if (Bars <= 1) return (0);
    int limit = rates_total - prev_calculated;
    if (limit > MaxBarsBack) limit = MaxBarsBack;
    if(prev_calculated > 0) limit++;

    double range;
    datetime lastTime = 0;

    for (int i=limit; i>=0; i--)
    {
      lwma[i] = EMPTY_VALUE;
      lwma_Up1[i] = EMPTY_VALUE;
      lwma_Dn1[i] = EMPTY_VALUE;
      lwma_Up2[i] = EMPTY_VALUE;
      lwma_Dn2[i] = EMPTY_VALUE;
      lwma_Up3[i] = EMPTY_VALUE;
      lwma_Dn3[i] = EMPTY_VALUE;
      lwma_Up4[i] = EMPTY_VALUE;
      lwma_Dn4[i] = EMPTY_VALUE;

      lwma[i] = iMA(NULL,0,LWMAperiod,0,MODE_LWMA,PRICE_CLOSE,i);
      if (

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

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

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

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

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

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

Стоимость полного кода
828₽ ≈ $10.12