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

auto-trend-lines-channels-indicator@lifeindreamsworld.mq5

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

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

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

О программе

Данный индикатор представляет собой многофреймный инструмент анализа ZigZag для платформы MetaTrader 5. Он обрабатывает данные ценовых баров по 9 настраиваемым уровням, каждое из которых может использовать отдельный таймфрейм. Основная задача — определение точек разворота цены ( swing high и swing low ) с заданной глубиной, отклонением и шагом возврата.

Индикатор отрисовывает линии ZigZag на графике через 8 буферов (4 пары «низ/верх» для разных уровней анализа). Пользователь может выбирать режим отображения: линии-зигзаг или стрелки-маркеры. Цвета и видимость каждого уровня настраиваются индивидуально.

Помимо ZigZag, индикатор может создавать на графике объекты Fibonacci Fan и Fibonacci Channel между найденными ключевыми точками. Параметры этих объектов (уровни, цвета, стили, ширина) настраиваются через соответствующие параметры. Дополнительно имеется параметр сортировки уровней анализа.

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

НастройкаОписание
ExtDepth Глубина поиска разворотов для каждого из 9 уровней (задаётся через запятую).
ExtDeviation Допустимое отклонение при построении ZigZag для каждого уровня (задаётся через запятую).
ExtBackstep Количество баров для возврата при поиске разворотов каждого уровня (задаётся через запятую).
ExtMaxBar Максимальное количество баров для анализа каждого уровня (задаётся через запятую).
GrossPeriod Таймфреймы для каждого из 9 уровней анализа (задаётся через запятую в минутах: 1,5,15,30,60,240,1440,10080,43200).
zzVisible Флаг видимости ZigZag для каждого из 9 уровней (1 — видим, 0 — скрыт).
zzColor Цвета ZigZag-линий для каждого из 9 уровней (задаются через запятую).
extColor Цвета для дополнительных элементов (3 значения через запятую).
fibofan Переключатель отрисовки Fibonacci Fan на графике (TRUE — включено, FALSE — выключено).
fanVisible Флаг видимости веера для каждого из 9 уровней (1 — видим, 0 — скрыт).
fanStyle Стиль линий веера для каждого из 9 уровней (задаётся через запятую).
fanWidth Ширина линий веера для каждого из 9 уровней (задаётся через запятую).
FiboFreeFan Список уровней Фибоначчи для веера (задаётся через запятую, например: 0.382,0.618,0.786).
fiboChannel Переключатель отрисовки Fibonacci Channel на графике (TRUE — включено, FALSE — выключено).
ChannelVisible Флаг видимости каналов для каждого из 9 уровней (1 — видим, 0 — скрыт).
ChannelWidth Ширина линий канала для каждого из 9 уровней (задаётся через запятую).
ChannelStyleLevel Стиль линий уровней канала для каждого из 9 уровней (задаётся через запятую).
ChannelWidthLevel Уровни ширины канала для каждого из 9 уровней (задаётся через запятую).
FiboFreeChannel Список уровней Фибоначчи для канала (задаётся через запятую, например: -2,-1.1,-0.9,-0.1,0.1,1).
ExtProcedureOfPayments Переключатель порядка сортировки уровней анализа: TRUE — по возрастанию, FALSE — по убыванию.
showZigZag Режим отображения ZigZag: 0 — линии-зигзаг, 1 — стрелки (символ 116), 2 — стрелки (символ 159).
ExtReCalculate Параметр пересчёта, определяющий количество дополнительных баров для пересчёта ZigZag.
ExtComplect Целочисленный идентификатор сложности, используемый как префикс для именования объектов на графике.
Получить полный код

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

#property indicator_chart_window
#property indicator_buffers 8
#property indicator_color1 Black
#property indicator_color2 Black
#property indicator_color3 Black
#property indicator_color4 Black
#property indicator_color5 Black
#property indicator_color6 Black
#property indicator_color7 Black
#property indicator_color8 Black

extern string ExtDepth = "12,12,12,0,12,12,12,12,12";
extern string ExtDeviation = "5,5,5,0,5,5,5,5,5";
extern string ExtBackstep = "3,3,3,0,3,3,3,3,3";
extern string ExtMaxBar = "5000,1000,350,350,350,350,350,350,350,350";
extern string GrossPeriod = "1,5,15,30,60,240,1440,10080,43200";
extern string zzVisible = "1,1,1,1,1,1,1,1,1";
extern string zzColor = "Tan,RoyalBlue,Brown,Blue,Red,GreenYellow,Magenta,IndianRed,MediumGreen";
extern string extColor = "Indigo,Olive,Teal";
extern bool fibofan = FALSE;
extern string fanVisible = "1,1,1,1,1,1,1,1,1";
extern string fanStyle = "2,2,2,2,2,2,2,2,2";
extern string fanWidth = "0,0,0,0,0,0,0,0,0";
extern string FiboFreeFan = "0.382,0.618,0.786";
extern bool fiboChannel = TRUE;
extern string ChannelVisible = "1,1,1,1,1,1,1,1,1";
extern string ChannelWidth = "2,2,2,2,2,2,2,2,2";
extern string ChannelStyleLevel = "2,2,2,2,2,2,2,2,2";
extern string ChannelWidthLevel = "0,0,0,0,0,0,0,0,0";
extern string FiboFreeChannel = "-2,-1.1,-0.9,-0.1,0.1,1";
extern bool ExtProcedureOfPayments = FALSE;
extern int showZigZag = 1;
extern int ExtReCalculate = 3;
extern int ExtComplect = 0;
int gia_236[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
int gia_240[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
int gia_244[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
int gia_248[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
int gia_252[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
int gia_256[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
int gia_260[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
int gia_264[] = {0, 0, 0};
int gia_268[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
int gia_272[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
int gia_276[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
int gia_280[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
int gia_284[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
int gia_288[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
int gia_292[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
int gia_296[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
double g_ibuf_300[];
double g_ibuf_304[];
double g_ibuf_308[];
double g_ibuf_312[];
double g_ibuf_316[];
double g_ibuf_320[];
double g_ibuf_324[];
double g_ibuf_328[];
double gda_332[];
double gda_336[];
double gda_340[];
double gda_344[];
double gda_348[];
double gda_352[];
double gda_356[];
double gda_360[];
double gda_364[];
double gda_368[];
double gda_372[];
double gda_376[];
double gda_380[];
double gda_384[];
double gda_388[];
double gda_392[];
double gda_396[];
double gda_400[];
bool gba_404[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
bool gba_408[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
int gia_412[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
int gia_416[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
double gda_420[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
double gda_424[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
int gia_428[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
int gia_432[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
int g_bars_436;
int gia_440[9][3];
int gi_444;
double gda_448[9][4];
int gia_452[9][4];
int gia_456[9][4];
int gi_460;
int gi_464;

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

int deinit() {
   _delete_fibo();
   return (0);
}

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

int _Gross(double ada_0[], double ada_4[], int ai_8, int ai_12) {
   int li_16 = gia_440[ai_12][1];
   if (gia_252[li_16] == 0) {
      if (gia_440[ai_12][2] == 1) ZigZag_(g_ibuf_300, g_ibuf_304, li_16);
      else {
         if (gia_440[ai_12][2] == 2) ZigZag_(g_ibuf_308, g_ibuf_312, li_16);
         else {
            if (gia_440[ai_12][2] == 3) ZigZag_(g_ibuf_316, g_ibuf_320, li_16);
            else {
               if (gia_440[ai_12][2] == 4) ZigZag_(g_ibuf_324, g_ibuf_328, li_16);
               else {
                  if (ai_8 == 2) Shift_elements(ada_0, ada_4);
                  ZigZag_(ada_0, ada_4, li_16);
               }
            }
         }
      }
   } else {
      if (ai_8 == 2) Shift_elements(ada_0, ada_4);
      if (ZigZag_(ada_0, ada_4, li_16) == 0) {
         if (gia_440[ai_12][2] == 1) ZigZagDT(g_ibuf_300, g_ibuf_304, ada_0, ada_4, li_16);
         else {
            if (gia_440[ai_12][2] == 2) ZigZagDT(g_ibuf_308, g_ibuf_312, ada_0, ada_4, li_16);
            else {
               if (gia_440[ai_12][2] == 3) ZigZagDT(g_ibuf_316, g_ibuf_320, ada_0, ada_4, li_16);
               else
                  if (gia_440[ai_12][2] == 4) ZigZagDT(g_ibuf_324, g_ibuf_328, ada_0, ada_4, li_16);
            }
         }
      }
   }
   return (0);
}

int ZigZag_(double &ada_0[], double &ada_4[], int ai_8) {
   int l_lowest_12;
   int l_shift_24;
   int l_shift_28;
   int li_32;
   int li_40;
   int li_52;
   int li_56;
   double ld_76;
   double ld_84;
   double ld_92;
   double ld_100;
   double ld_108;
   double ld_124;
   double ld_132;
   double l_str2dbl_140;
   string l_name_152;
   string ls_160;
   string ls_168;
   string ls_176;
   int li_44 = 0;
   int li_68 = -1;
   int li_72 = -1;
   double ld_116 = gia_240[ai_8] * Point;
   bool li_148 = FALSE;
   if (gba_408[ai_8]) {
      l_shift_24 = iBarShift(NULL, gia_252[ai_8], gia_412[ai_8], TRUE);
      l_shift_28 = iBarShift(NULL, gia_252[ai_8], gia_416[ai_8], TRUE);
      if (l_shift_24 < 0 || l_shift_28 < 0) {
         gia_432[ai_8] = 0;
         return (-1);
      }
      if (gia_412[ai_8] <= gia_416[ai_8]) gi_444 = l_shift_24;
      else gi_444 = l_shift_28;
      li_32 = gi_444 - 1;
      ld_100 = iLow(NULL, gia_252[ai_8], l_shift_24);
      ld_92 = iHigh(NULL, gia_252[ai_8], l_shift_28);
   } else {
      gba_408[ai_8] = 1;
      l_shift_24 = gi_444;
      l_shift_28 = gi_444;
      li_32 = gi_444;
   }
   for (int li_60 = li_32; li_60 >= 0; li_60--) {
      if (li_60 < l_shift_24) {
         l_lowest_12 = iLowest(NULL, gia_252[ai_8], MODE_LOW, gia_236[ai_8], li_60);
         ld_108 = iLow(NULL, gia_252[ai_8], l_lowest_12);
         if (ld_108 == ld_100) ld_108 = 0.0;
         else {
            ld_100 = ld_108;
            if (iLow(NULL, gia_252[ai_8], li_60) - ld_108 > ld_116) ld_108 = 0.0;
            else {
               for (int li_64 = 1; li_64 <= gia_244[ai_8]; li_64++)
                  if (ld_108 < ada_0[l_lowest_12 + li_64]) ada_0[l_lowest_12 + li_64] = 0.0;
            }
         }
         if (l_lowest_12 == li_60) ada_0[l_lowest_12] = ld_108;
      }
      if (li_60 < l_shift_28) {
         l_lowest_12 = iHighest(NULL, gia_252[ai_8], MODE_HIGH, gia_236[ai_8], li_60);
         ld_108 = iHigh(NULL, gia_252[ai_8], l_lowest_12);
         if (ld_108 == ld_92) ld_108 = 0.0;
         else {
            ld_92 = ld_108;
            if (ld_108 - iHigh(NULL, gia_252[ai_8], li_60) > ld_116) ld_108 = 0.0;
            else {
               for (li_64 = 1; li_64 <= gia_244[ai_8]; li_64++)
                  if (ld_108 > ada_4[l_lowest_12 + li_64]) ada_4[l_lowest_12 + li_64] = 0.0;
            }
         }
         if (l_lowest_12 == li_60) ada_4[l_lowest_12] = ld_108;
      }
   }
   ld_92 = -1;
   ld_100 = -1;
   for (li_60 = gi_444; li_60 >= 0; li_60--) {
      ld_76 = ada_0[li_60];
      ld_84 = ada_4[li_60];
      if (ld_76 == 0.0 && ld_84 == 0.0) continue;
      if (ld_84 != 0.0) {
         if (ld_92 > 0.0) {
            if (ld_92 < ld_84) ada_4[li_68] = 0;
            else ada_4[li_60] = 0;
         }
         if (ld_92 < ld_84 || ld_92 < 0.0) {
            ld_92 = ld_84;
            li_68 = li_60;
         }
         ld_100 = -1;
      }

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

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

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

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

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

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

Стоимость полного кода
2 556₽ ≈ $31.24