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

ATR_Momentum_Color

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

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

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

О программе

ATR_Momentum_Color — это пользовательский индикатор для MetaTrader 5, который рассчитывает осциллятор, объединяющий анализ моментума и среднего истинного диапазона (ATR). Линия индикатора отображается в отдельном окне с изменением цвета в зависимости от направления движения.

Индикатор нормализует моментум, дел его на произведение ATR на заданный множитель, и масштабирует результат, ограничивая его диапазон значениями от -100 до 100. Дополнительно доступна экспоненциальная фильтрация сглаженного значения.

Цвет линии меняется в зависимости от положения относительно нуля и направления изменения: зелёные оттенки — при положительных значениях, оранжевый и красный — при отрицательных. На графике установлены три горизонтальных уровня: 70, 0 и -70.

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

НастройкаОписание
Momentum & ATR period (InpPeriod) Период — Период расчёта моментума и ATR
ATR multiplier (InpDeviation) Отклонение — Множитель ATR, используемый для нормализации осциллятора
Optional smoothing (used internally) (InpSignalPeriod) Период сглаживания — Период экспоненциального сглаживания, применяемый внутренне
Получить полный код

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

#property version   "1.00"
#property description "ATR_Momentum_Color"
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_plots   2

#property indicator_label1  "ATR_Momentum_Color"
#property indicator_type1   DRAW_COLOR_LINE
#property indicator_color1  clrLimeGreen, clrGreen, clrOrange, clrRed
#property indicator_width1  2

input int    InpPeriod       = 14;    // Momentum & ATR period
input double InpDeviation    = 1.5;   // ATR multiplier
input int    InpSignalPeriod = 1;     // Optional smoothing (used internally)

double ExtOscBuffer[];   // Main oscillator values
double ExtColorIndex[];  // Color index buffer

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[])
{
      // код доступен только после оплаты
   }
   int start = (prev_calculated == 0) ? InpPeriod + 2 : prev_calculated - 1;
   if (start >= rates_total) return(rates_total);

   double atr[], momentum[], smoothed[];
   ArrayResize(atr, rates_total);
   ArrayResize(momentum, rates_total);
   ArrayResize(smoothed, rates_total);

   for (int i = start; i < rates_total; i++)
   {
      if (i < InpPeriod)
   

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

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

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

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

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

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

Стоимость полного кода
259,50₽ ≈ $3.17