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

Trend direction & force

trend direction & force index.mq5
Вы автор или правообладатель?

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

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

О программе

Индикатор «Trend direction & force» отображает аналитический осциллятор в отдельном окне с диапазоном от -1.0 до 1.0. Он построен на основе скользящих средних экспоненциального типа и позволяет оценивать направление и силу тренда на ценовых данных.

Основная линия индикатора рассчитывается через двойное сглаживание цены закрытия и нормализуется по максимальному абсолютному значению за заданный период. Дополнительно отображаются постоянные уровни верхней и нижней границы на отметках 0.05 и -0.05.

При выборе таймфрейма, отличного от текущего, индикатор автоматически переключается на расчёт данных соответствующего старшего таймфрейма, используя собственные пользовательские обработчики. Два параметра настройки определяют период скользящей средней и рабочий таймфрейм.

Индикатор предназначен для использования в платформе MetaTrader 5 в качестве стандартного пользовательского индикатора с отдельным окном отображения.

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

НастройкаОписание
trendPeriod Период скользящей средней экспоненциального типа, используемый для расчёта основного значения индикатора.
timeFrame Таймфрейм, на котором выполняется расчёт индикатора. Если значение отличается от текущего таймфрейма графика, индикатор использует данные старшего периода.
Получить полный код

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

#property indicator_separate_window
#property indicator_minimum -1.0
#property indicator_maximum 1.0
#property indicator_buffers 3
#property indicator_color1 DimGray
#property indicator_color2 DimGray
#property indicator_color3 Red

extern int trendPeriod = 20;
extern string timeFrame = "Current time frame";
double g_ibuf_88[];
double g_ibuf_92[];
double g_ibuf_96[];
double g_ibuf_100[];
double g_ibuf_104[];
double g_ibuf_108[];
int gia_112[];
int g_timeframe_116;
string gs_120;

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

int deinit() {
   return (0);
}

int start() {
      // код доступен только после оплаты
   }
   double ld_0;
   double ld_8;
   double ld_16;
   double ld_24;
   double ld_32;
   int li_48;
   int l_index_52;
   int li_40 = IndicatorCounted();
   if (li_40 < 0) return (-1);
   if (li_40 > 0) li_40--;
   int li_44 = Bars - li_40;
   if (g_timeframe_116 != Period()) {
      li_44 = MathMax(li_44, g_timeframe_116 / Period());
      ArrayCopySeries(gia_112, 5, NULL, g_timeframe_116);
      li_48 = 0;
      l_index_52 = 0;
      while (li_48 < li_44) {
         if (Time[li_48] < gia_112[l_index_52]) l_index_52++;
         g_ibuf_88[li_48] = iCustom(NULL, g_timeframe_116, gs_120, trendPeriod, 2, l_index_52);
         g_ibuf_92[li_48] = 0.05;
         g_ibuf_96[li_48] = -0.05;
         li_48++;
      }
      return (0);
   }
   for (li_48 = li_44; li_48 >= 0; li_48--) g_ibuf_100[li_48] = iMA(NULL, 0, trendPeriod, 0, MODE_EMA, PRICE_CLOSE, li_48);
   for (li_48 = li_44; li_48 >= 0; li_48--) {
      g_ibuf_104[li_48] = iMAOnArray(g_ibuf_100, 0, trendPeriod, 0, MODE_EMA, li_48);
      ld_0 = g_ibuf_100[li_48] - (g_ibuf_100[li_48 + 1]);
      ld_8 = g_ibuf_104[li_48] - (g_ibuf_104[li_48 + 1]);
      ld_16 = MathAbs(g_ibuf_100[li_48] - g_ibuf_104[li_48]) / Point;
      ld_24 = (ld_0 + ld_8) / (2.0 * Point);
      g_ibuf_108[li_48] = ld_16 * MathPow(ld_24, 3);
      ld_32 = absHighest(g_ibuf_108, 3 * trendPeriod, li_48);
 

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

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

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

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

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

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

Стоимость полного кода
366,70₽ ≈ $4.48