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

zone indicator@fxsignalspot.mq5

Похожие материалы по тегам

#__slope direction line.mq5MQL5 / MetaTrader 5 · 1 общих теговrange breakout @meowforex1.pineTradingView · 1 общих тегов#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit3.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit2.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit.mq4MQL4 / MetaTrader 4 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

Данный индикатор для MetaTrader 4 анализирует ценовые данные на выбранном таймфрейме и отображает на графике зоны поддержки и сопротивления. Для определения направления тренда используется разница между двумя скользящими средними, а также анализ последовательностей максимумов и минимумов для выявления потенциальных уровней зон.

Обнаруженные зоны отрисовываются в виде прямоугольников на графике: бычьи зоны одного цвета, медвежьи — другого. Прямоугольники сопровождаются текстовыми метками и трендовыми линиями. Внешний вид настраивается через параметры цвета, толщины и стиля.

Диапазон анализа ограничивается параметром MaxBars, а положение зон можно сместить вправо с помощью RectShift. При изменении количества баров на графике зоны перерисовываются, а старые объекты удаляются при деинициализации индикатора.

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

НастройкаОписание
_ Период определения зон — Период определения зон (1-M1, 5-M5, 15-M15, 30-M30, 60-Н1, 240-Н4, 1440-D1, 10080-W1, 43200-MN1).
TF Таймфрейм зон — Таймфрейм для определения зон (1 — M1, 5 — M5, 15 — M15, 30 — M30, 60 — H1, 240 — H4, 1440 — D1, 10080 — W1, 43200 — MN1).
__ Кол-во баров для зон — Количество баров для определения зон.
MaxBars Макс. баров для зон — Количество баров для определения зон.
Rcolor Цвет бычьих зон — Цвет прямоугольников бычьих зон.
Scolor Цвет медвежьих зон — Цвет прямоугольников медвежьих зон.
TxtColor Цвет текста — Цвет текстовых меток и трендовых линий зон.
BackGround Фоновый режим — Режим отрисовки прямоугольников зон на графике (фоновый или обычный).
RectangleWidth Толщина прямоугольников — Толщина линий прямоугольников зон.
RectangleStyle Стиль прямоугольников — Стиль линий прямоугольников зон.
TxtSize Размер текста — Размер текста меток зон.
___ Сдвиг зоны — Сдвиг зоны вправо на RectShift баров.
RectShift Сдвиг зон — Сдвиг зон вправо в барах.
____ Параметры АО — Параметры определения АО.
MA1 Период MA1 — Период первой скользящей средней, используемой для определения направления тренда.
MA2 Период MA2 — Период второй скользящей средней, используемой для определения направления тренда.
Metod_MA Метод скользящей средней — Метод расчёта скользящей средней (применяется к обеим MA).
Price_MA Тип цены для MA — Тип цены для расчёта скользящей средней.
Получить полный код

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

#property indicator_chart_window

extern string _ = "Период опр. зон (1-M1, 5-M5, 15-M15, 30-M30, 60-Н1, 240-Н4, 1440-D1, 10080-W1, 43200-MN1)";
extern int TF = 60;
extern string __ = "Кол-во баров в для определения зон";
extern int MaxBars = 1000;
extern color Rcolor = Red;
extern color Scolor = LimeGreen;
extern color TxtColor = DarkGray;
extern bool BackGround = FALSE;
extern int RectangleWidth = 2;
extern int RectangleStyle = 0;
extern int TxtSize = 8;
extern string ___ = "Сдвиг зоны право на RectShift баров";
extern int RectShift = 10;
extern string ____ = "Параметры определения АО";
extern int MA1 = 1;
extern int MA2 = 5;
extern int Metod_MA = 1;
extern int Price_MA = 0;
int Gi_164 = 4;
int Gi_168;
int Gi_172;
int G_bars_176;
int G_bars_180;
string Gs_184;
bool Gi_192;
int Gia_196[];
int Gia_200[];
double Gda_204[];
double Gda_208[];
string Gsa_212[];

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

void deinit() {
   for (int count_0 = 0; count_0 < MaxBars / 3; count_0++) {
      ObjectDelete("R" + Gs_184 + count_0);
      ObjectDelete("R" + Gs_184 + "t" + count_0);
      ObjectDelete("R" + Gs_184 + "l" + count_0);
      ObjectDelete("S" + Gs_184 + count_0);
      ObjectDelete("S" + Gs_184 + "t" + count_0);
      ObjectDelete("S" + Gs_184 + "l" + count_0);
   }
}

int f0_3(int Ai_0) {
   double Ld_4 = iMA(NULL, TF, MA1, 0, Metod_MA, Price_MA, Ai_0) - iMA(NULL, TF, MA2, 0, Metod_MA, Price_MA, Ai_0);
   if (Ld_4 > Point / 2.0) return (1);
   if (Ld_4 < (-Point) / 2.0) return (-1);
   return (0);
}

int f0_1(int Ai_0) {
   if (Ai_0 < iBars(Symbol(), TF) - 3) {
      if (iHigh(NULL, TF, Ai_0 + 2) < iHigh(NULL, TF, Ai_0 + 1) && iHigh(NULL, TF, Ai_0 + 1) < iHigh(NULL, TF, Ai_0)) return (1);
      return (0);
   }
   return (0);
}

int f0_2(int Ai_0) {
   if (Ai_0 < iBars(Symbol(), TF) - 2) {
      if (!(!iLow(NULL, TF, Ai_0 + 2) > iLow(NULL, TF, Ai_0 + 1) && iLow(NULL, TF, Ai_0 + 1) > iLow(NULL, TF, Ai_0))) return (1);
      return (0);
   }
   return (0);
}

int f0_0(int Ai_0) {
   if (iLow(NULL, TF, Ai_0) == iLow(NULL, TF, Ai_0 - 1)) Ai_0--;
   if (Ai_0 > 3) {
      if (!(!(iHigh(NULL, TF, Ai_0) < iHigh(NULL, TF, Ai_0 - 1) && iHigh(NULL, TF, Ai_0 - 1) < iHigh(NULL, TF, Ai_0 - 2)) || (iHigh(NULL, TF, Ai_0 - 1) < iHigh(NULL, TF,
         Ai_0 - 2) && iHigh(NULL, TF, Ai_0 - 2) < iHigh(NULL, TF, Ai_0 - 3)))) return (1);
      return (0);
   }
   return (0);
}

int f0_4(int Ai_0) {
   if (iHigh(NULL, TF, Ai_0) == iHigh(NULL, TF, Ai_0 - 1)) Ai_0--;
   if (Ai_0 > 3) {
      if (!(!(iLow(NULL, TF, Ai_0) > iLow(NULL, TF, Ai_0 - 1) && iLow(NULL, TF, Ai_0 - 1) > iLow(NULL, TF, Ai_0 - 2)) || (iLow(NULL, TF, Ai_0 - 1) > iLow(NULL, TF, Ai_0 - 2) &&
         iLow(NULL, TF, Ai_0 - 2) > iLow(NULL, TF, Ai_0 - 3)))) return (1);
      return (0);
   }
   return (0);
}

int start() {
      // код доступен только после оплаты
   }
   int index_0;
   bool Li_4;
   int highest_8;
   int highest_12;
   int Li_16;
   int Li_20;
   int highest_24;
   int highest_28;
   double Ld_32;
   double Ld_40;
   double ihigh_48;
   double ilow_56;
   double Ld_64;
   bool bool_72;
   bool bool_76;
   bool Li_80;
   bool Li_84;
   G_bars_176 = Bars;
   Gi_168 = iBars(Symbol(), TF);
   if (Gi_172 != Gi_168 || Gi_192) {
      Gi_192 = FALSE;
      Gi_172 = Gi_168;
      ArrayResize(Gia_196, 0);
      ArrayResize(Gia_200, 0);
      ArrayResize(Gda_204, 0);
      ArrayResize(Gda_208, 0);
      ArrayResize(Gsa_212, 0);
      index_0 = 0;
      if (MaxBars > Gi_168) MaxBars = Gi_168;
      for (int Li_88 = f0_3(MaxBars); Li_88 == 0; Li_88 = f0_3(MaxBars)) MaxBars--;
      Li_16 = MaxBars;
      for (int Li_92 = MaxBars; Li_92 > 2; Li_92--) {
         Li_80 = FALSE;
         Li_84 = FALSE;
         Li_20 = f0_3(Li_92);
         bool_72 = f0_1(Li_92) && f0_4(Li_92);
         bool_76 = f0_2(Li_92) && f0_0(Li_92);
         if (bool_72) {
            highest_24 = iHighest(NULL, TF, MODE_OPEN, 6, Li_92 - 3);
            Ld_32 = iOpen(NULL, TF, highest_24);
            highest_28 = iHighest(NULL, TF, MODE_CLOSE, 6, Li_92 - 3);
            Ld_40 = iClose(NULL, TF, highest_28);
            if (Ld_40 > Ld_32) highest_8 = highest_28;
            else highest_8 = highest_24;
            highest_8 = iHighest(NULL, TF, MODE_HIGH, 3, highest_8 - 1);
            ihigh_48 = iHigh(NULL, TF, highest_8);
            Li_80 = TRUE;
         } else {
            if (Li_20 != Li_88 && Li_20 != 0 && Li_88 > 0) {
               if (Li_16 - Li_92 > 1) {
                  highest_24 = iHighest(NULL, TF, MODE_OPEN, Li_16 - Li_92, Li_92);
                  Ld_32 = iOpen(NULL, TF, highest_24);
                  highest_28 = iHighest(NULL, TF, MODE_CLOSE, Li_16 - Li_92, Li_92);
                  Ld_40 = iClose(NULL, TF, highest_28);
                  if (Ld_40 > Ld_32) highest_8 = highest_28;
                  else highest_8 = highest_24;
                  highest_8 = iHighest(NULL, TF, MODE_HIGH, 3, highest_8 - 1);
                  ihigh_48 = iHigh(NULL, TF, highest_8);
                  if (f0_1(highest_8) || f0_4(highest_8) || Li_16 - Li_92 > Gi_164) Li_80 = TRUE;
               }
               Li_88 = Li_20;
               Li_16 = Li_92;
            }
         }
         if (bool_76) {
            highest_24 = iLowest(NULL, TF, MODE_OPEN, 6, Li_92 - 3);
            Ld_32 = iOpen(NULL, TF, highest_24);
            highest_28 = iLowest(NULL, TF, MODE_CLOSE, 6, Li_92 - 3);
            Ld_40 = iClose(NULL, TF, highest_28);
            if (Ld_40 < Ld_32) highest_12 = highest_28;
            else highest_12 = highest_24;
            ilow_56 = iLow(NULL, TF, highest_12);
            Li_84 = TRUE;
         } else {
            if (Li_20 != Li_88 && Li_20 != 0 && Li_88 < 0) {
               if (Li_16 - Li_92 > 1) {
                  highest_24 = iLowest(NULL, TF, MODE_OPEN, Li_16 - Li_92, Li_92);
                  Ld_32 = iOpen(NULL, TF, highest_24);
                  highest_28 = iLowest(NULL, TF, MODE_CLOSE, Li_16 - Li_92, Li_92);
                  Ld_40 = iClose(NULL, TF, highest_28);
                  if (Ld_40 < Ld_32) highest_12 = highest_28;
                  else highest_12 = highest_24;
                  highest_12 = iLowest(NULL, TF, MODE_LOW, 3, highest_12 - 1);
                  ilow_56 =

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

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

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

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

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

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

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