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

zone indicator.mq5

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

indicator previous session range + projected candles + boschoch protected for tradingview.pineTradingView · 1 общих тегов#__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 общих тегов
Вы автор или правообладатель?

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

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

О программе

Это пользовательский индикатор для MetaTrader 4, отображающий ценовые зоны в виде прямоугольников на графике. Индикатор анализирует данные ценовых свечей и скользящие средние для определения уровней, разделяя зоны на две категории — покупочные и продажные, каждая из которых рисуется своим цветом. На графике создаются графические объекты: прямоугольники зон, пунктирные линии и текстовые метки с обозначениями. Внешний вид и расположение зон настраиваются через параметры индикатора.

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

НастройкаОписание
_ Период определения зон — Текстовый параметр, задающий перечень допустимых таймфреймов для определения зон
TF Таймфрейм — Целочисленный таймфрейм, на котором выполняется анализ ценовых данных
__ Количество баров — Текстовый параметр, описывающий назначение параметра MaxBars
MaxBars Максимальное количество баров — Ограничение числа баров, используемых при расчёте зон
Rcolor Цвет зоны покупки — Цвет, используемый для отрисовки покупочных зон на графике
Scolor Цвет зоны продажи — Цвет, используемый для отрисовки продажных зон на графике
TxtColor Цвет текста — Цвет текстовых меток и линий, выводимых на графике
BackGround Фоновый режим — Переключатель, определяющий, отображаются ли зоны на переднем или заднем плане графика
RectangleWidth Толщина прямоугольника — Толщина линий прямоугольников зон в пунктах
RectangleStyle Стиль прямоугольника — Стиль отрисовки линий прямоугольников зон
TxtSize Размер текста — Размер шрифта текстовых меток на графике
___ Сдвиг зоны вправо — Текстовый параметр, описывающий сдвиг зон вправо по горизонтали
RectShift Сдвиг зоны — Число баров, на которое зоны сдвигаются вправо от точки построения
____ Параметры определения АО — Текстовый параметр, обозначающий группу настроек скользящих средних
MA1 Период первой MA — Первый период скользящей средней, используемый в расчётах
MA2 Период второй MA — Второй период скользящей средней, используемый в расчётах
Metod_MA Метод расчёта MA — Метод построения скользящей средней (например, SMA, EMA и т.д.)
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