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

IBFX-Waves

ibfx_-_waves 1.mq4
Вы автор или правообладатель?

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

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

О программе

IBFX-Waves — пользовательский индикатор для MetaTrader 4, анализирующий свечные highs и lows на графике цены. Индикатор выделяет волны разного масштаба, используя два периода отбора пиков, и отображает их в виде стрелок и текстовых меток на графике.

При обнаружении определённых соотношений между ценовыми уровнями индикатор формирует торговые сигналы (Buy/Sell) и рисует прямоугольную зону целевой прибыли. Текущий сигнал и уровень цели отображаются в комментарии на графике.

Индикатор полностью настраивается: можно включать или отключать отображение волн, целевых уровней и комментариев, а также задавать цвета отрисовки. Работает на всех таймфреймах, поддерживаемых MetaTrader 4.

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

НастройкаОписание
Options Options — Текстовый заголовок для группы настроек параметров.
DisplayWaves DisplayWaves — Переключатель отображения стрелок и меток волн на графике.
DisplayTarget DisplayTarget — Переключатель отображения прямоугольной зоны целевой прибыли на графике.
DisplayComment DisplayComment — Переключатель отображения текстового комментария с торговым сигналом и целевым уровнем на графике.
Colors Colors — Текстовый заголовок для группы настроек цветов.
Waves Waves — Цвет стрелок и текстовых меток волн.
ProfitTarget ProfitTarget — Цвет прямоугольной зоны целевой прибыли.
Получить полный код

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

/*
   Generated by EX4-TO-MQ4 decompiler ONE FILE V4.0.217.1
   EX4 ID : E6CC67A05D9D3DA9631A985BD7CAE011
   Website: 
   E-mail : p******m*@gmail.com
*/

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Black
#property indicator_color2 Black

int gi_76 = 0;
string gs_80 = "";
int gi_88 = 12;
int gi_92 = 6;
extern string Options = "===========OPTIONS===========";
extern bool DisplayWaves = TRUE;
extern bool DisplayTarget = TRUE;
extern bool DisplayComment = TRUE;
extern string Colors = "===========COLORS============";
extern color Waves = Crimson;
extern color ProfitTarget = DarkBlue;

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

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

int start() {
      // код доступен только после оплаты
   }
   string l_str_concat_24;
   double ld_36;
   double ld_44;
   double ld_52;
   double ld_60;
   double ld_68;
   double ld_76;
   double ld_84;
   double ld_92;
   double ld_100;
   double ld_108;
   int li_184;
   string ls_188;
   double l_price_196;
   double l_price_204;
   double ld_228;
   double ld_236;
   double ld_244;
   double ld_260;
   double ld_268;
   double ld_276;
   double ld_284;
   double ld_292;
   double ld_300;
   double ld_308;
   double ld_316;
   double ld_324;
   double ld_340;
   int li_360;
   CustomInit();
   int li_0 = IndicatorCounted();
   if (li_0 < 0) return (-1);
   if (li_0 > 0) li_0--;
   int li_4 = Bars - li_0;
   int li_8 = 0;
   int li_12 = 0;
   string l_text_16 = "";
   int li_32 = 0;
   bool li_116 = FALSE;
   bool li_120 = FALSE;
   double ld_124 = CalcAdjust(1);
   bool li_132 = FALSE;
   bool li_136 = FALSE;
   double ld_140 = CalcAdjust(0);
   for (int l_index_148 = 0; l_index_148 < li_4; l_index_148++) {
      if (High[l_index_148] == MathMax(MaxHighPres(l_index_148, gi_92), MaxHighPast(l_index_148, gi_92)) && li_32 >= 0 && !li_136) {
         switch (li_32) {
         case 0:
            ld_108 = High[l_index_148];
            l_str_concat_24 = StringConcatenate("Small", "ibfxwavesmh5", Symbol(), Period());
            li_12 = 144;
            li_32 = -1;
            break;
         case 1:
            ld_100 = High[l_index_148];
            l_str_concat_24 = StringConcatenate("Small", "ibfxwavesmh4", Symbol(), Period());
            li_12 = 143;
            li_32 = -2;
            break;
         case 2:
            ld_92 = High[l_index_148];
            l_str_concat_24 = StringConcatenate("Small", "ibfxwavesmh3", Symbol(), Period());
            li_12 = 142;
            li_32 = -3;
            break;
         case 3:
            ld_84 = High[l_index_148];
            l_str_concat_24 = StringConcatenate("Small", "ibfxwavesmh2", Symbol(), Period());
            li_12 = 141;
            li_32 = -4;
            break;
         case 4:
            ld_76 = High[l_index_148];
            l_str_concat_24 = StringConcatenate("Small", "ibfxwavesmh1", Symbol(), Period());
            li_12 = 140;
            li_32 = -5;
         }
         if (DisplayWaves) {
            ObjectCreate(l_str_concat_24, OBJ_ARROW, 0, Time[l_index_148], High[l_index_148] + ld_140);
            ObjectSet(l_str_concat_24, OBJPROP_ARROWCODE, li_12);
            ObjectSet(l_str_concat_24, OBJPROP_COLOR, Waves);
         }
      } else {
         if (High[l_index_148] == MathMax(MaxHighPres(l_index_148, gi_92), MaxHighPast(l_index_148, gi_92)) && li_32 < 0 && !li_136) {
            switch (li_32) {
            case -1:
               if (High[l_index_148] > ld_108) {
                  ld_108 = High[l_index_148];
                  l_str_concat_24 = StringConcatenate("Small", "ibfxwavesmh5", Symbol(), Period());
                  li_12 = 144;
                  li_132 = TRUE;
               }
               break;
            case -2:
               if (High[l_index_148] > ld_100) {
                  ld_100 = High[l_index_148];
                  l_str_concat_24 = StringConcatenate("Small", "ibfxwavesmh4", Symbol(), Period());
                  li_12 = 143;
                  li_132 = TRUE;
               }
               break;
            case -3:
               if (High[l_index_148] > ld_92) {
                  ld_92 = High[l_index_148];
                  l_str_concat_24 = StringConcatenate("Small", "ibfxwavesmh3", Symbol(), Period());
                  li_12 = 142;
                  li_132 = TRUE;
               }
               break;
            case -4:
               if (High[l_index_148] > ld_84) {
                  ld_84 = High[l_index_148];
                  l_str_concat_24 = StringConcatenate("Small", "ibfxwavesmh2", Symbol(), Period());
                  li_12 = 141;
                  li_132 = TRUE;
               }
               break;
            case -5:
               if (High[l_index_148] > ld_76) {
                  ld_76 = High[l_index_148];
                  l_str_concat_24 = StringConcatenate("Small", "ibfxwavesmh1", Symbol(), Period());
                  li_12 = 140;
                  li_132 = TRUE;
                  li_136 = TRUE;
               }
               break;
            default:
               li_136 = TRUE;
            }
            if (li_132 && DisplayWaves) {
               ObjectCreate(l_str_concat_24, OBJ_ARROW, 0, Time[l_index_148], High[l_index_148] + ld_140);
               ObjectSet(l_str_concat_24, OBJPROP_ARROWCODE, li_12);
               ObjectSet(l_str_concat_24, OBJPROP_COLOR, Waves);
               li_132 = FALSE;
            }
         }
      }
      if (Low[l_index_148] == MathMin(MinLowPres(l_index_148, gi_92), MinLowPast(l_index_148, gi_92)) && li_32 <= 0 && !li_136) {
         switch (li_32) {
         case 0:
            ld_108 = Low[l_index_148];
            l_str_concat_24 = StringConcatenate("Small", "ibfxwavesml5", Symbol(), Period());
            li_12 = 144;
            li_32 = 1;
            break;
         case -1:
            ld_100 = Low[l_index_148];
            l_str_concat_24 = StringConcatenate("Small", "ibfxwavesml4", Symbol(), Period());
            li_12 = 143;
            li_32 = 2;
            break;
         case -2:
            ld_92 = Low[l_index_148];
            l_str_concat_24 = StringConcatenate("Small", "ibfxwavesml3", Symbol(), Period());
            li_12 = 142;
            li_32 = 3;
            break;
         case -3:
            ld_84 = Low[l_index_148];
            l_str_concat_24 = StringConcatenate("Small", "ibfxwavesml2", Symbol(), Period());
            li_12 = 141;
            li_32 = 4;
            break;
         case -4:
            ld_76 = Low[l_index_148];
            l_str_concat_24 = StringConcatenate("Small", "ibfxwavesml1", Symbol(), Period());
            li_12 = 140;
            li_32 = 5;
            li_136 = TRUE;
         }
         if (DisplayWaves) {
            ObjectCreate(l_str_concat_24, OBJ_ARROW, 0, Time[l_index_148], Low[l_index_148] - ld_140);
            ObjectSet(l_str_concat_24, OBJPROP_ARROWCODE, li_12);
            ObjectSet(l_str_concat_24, OBJPROP_COLOR, Waves);
         }
      } else {
         if (Low[l_index_148] == MathMin(MinLowPres(l_index_148, gi_92), MinLowPast(l_index_148, gi_92)) && li_32 > 0 && !li_136) {
            switch (li_32) {
            case 1:
               if (Low[l_index_148] < ld_108) {
                  ld_108 = Low[l_index_148];
                  l_str_concat_24 = StringConcatenate("Small", "ibfxwavesml5", Symbol(), Period());
                  li_12 = 144;
                  li_132 = TRUE;
               }
               break;
            case 2:
               if (Low[l_index_148] < ld_100) {
                  ld_100 = Low[l_index_148];
                  l_str_concat_24 = StringConcatenate("Small", "ibfxwavesml4", Symbol(), Period());
                  li_12 = 143;
                  li_132 = TRUE;
               }
               break;
            case 3:
               if (Low[l_index_148] < ld_92) {
                  ld_92 = Low[l_index_148];
                  l_str_concat_24 = StringConcatenate("Small", "ibfxwavesml3", Symbol(), Period());
                  li_12 = 142;
                  li_132 = TRUE;
               }
               break;
            case 4:
               if (Low[l_index_148] < ld_84) {
                  ld_84 = Low[l_index_148];
                  l_str_concat_24 = StringConcatenate("Small", "ibfxwavesml2", Symbol(), Period());
                  li_12 = 141;
                  li_132 = TRUE;
               }
               break;
            case 5:
               if (Low[l_index_148] < ld_76) {
                  ld_76 = Low[l_index_148];
                  l_str_concat_24 = StringConcatenate("Small", "ibfxwavesml1", Symbol(), Period());
                  li_12 = 140;
                  li_132 = TRUE;
                  li_136 = TRUE;
               }
               break;
            default:
               li_136 = TRUE;
            }
            if (li_132 && DisplayWaves) {
               ObjectCreate(l_str_concat_24, OBJ_ARROW, 0, Time[l_index_148], Low[l_index_148] - ld_140);
               ObjectSet(l_str_concat_24, OBJPROP_ARROWCODE, li_12);
               ObjectSet(l_str_concat_24, OBJPROP_COLOR, Waves);
               li_132 = FALSE;
            }
         }
      }
      if (High[l_index_148] == MathMax(MaxHighPres(l_index_148, gi_88), MaxHighPast(l_index_148, gi_88)) && li_8 >= 0 && !li_120) {
         switch (li_8) {
         case 0:
            ld_68 = High[l_index_148];
            l_str_concat_24 = StringConcatenate(Symbol(), Period(), "ibfxwavesh5");
            l_text_16 = "E";
            li_8 = -1;
            break;
         case 1:
            ld_60 = High[l_index_148];
            l_str_concat_24 = StringConcatenate(Symbol(), Period(), "ibfxwavesh4");
            l_text_16 = "D";
            li_8 = -2;
            break;
         case 2:
            ld_52 = High[l_index_148];
            l_str_concat_24 = StringConcatenate(Symbol(), Period(), "ibfxwavesh3");
            l_text_16 = "C";
            li_8 = -3;
            break;
         case 3:
            ld_44 = High[l_index_148];
            l_str_concat_24 = StringConcatenate(Symbol(), Period(), "ibfxwavesh2");
            l_text_16 = "B";
            li_8 = -4;
            break;
         case 4:
            ld_36 = High[l_index_148];
            l_str_concat_24 = StringConcatenate(Symbol(), Period(), "ibfxwavesh1");
            l_text_16 = "A";
            li_8 = -5;
         }
         if (DisplayWaves) {
            ObjectCreate(l_str_concat_24, OBJ_TEXT, 0, Time[l_index_148], High[l_index_148] + ld_124);
            ObjectSetText(l_str_concat_24, l_text_16, 12, "Arial Bold", Waves);
         }
      } else {
         if (High[l_index_148] == MathMax(MaxHighPres(l_index_148, gi_88), MaxHighPast(l_index_148, gi_88)) && li_8 < 0 && !li_120) {
            switch (li_8) {
            case -1:
               if (High[l_index_148] > ld_68) {
                  ld_68 = High[l_index_148];
                  l_str_concat_24 = StringConcatenate(Symbol(), Period(), "ibfxwavesh5");
                  l_text_16 = "E";
                  li_116 = TRUE;
               }
               break;
            case -2:
               if (High[l_index_148] > ld_60) {
                  ld_60 = High[l_index_148];
                  l_str_concat_24 = StringConcatenate(Symbol(), Period(), "ibfxwavesh4");
                  l_text_16 = "D";
                  li_116 = TRUE;
               }
               break;
            case -3:
               if (High[l_index_148] > ld_52) {
                  ld_52 = High[l_index_148];
                  l_str_concat_24 = StringConcatenate(Symbol(), Period(), "ibfxwavesh3");
                  l_text_16 = "C";
                  li_116 = TRUE;
               }
               break;
            case -4:
               if (High[l_index_148] > ld_44) {
                  ld_44 = High[l_index_148];
                  l_str_concat_24 = StringConcatenate(Symbol(), Period(), "ibfxwavesh2");
                  l_text_16 = "B";
                  li_116 = TRUE;
               }
               break;
            case -5:
               if (High[l_index_148] > ld_36) {
                  ld_36 = High[l_index_148];
                  l_str_concat_24 = StringConcatenate(Symbol(), Period(), "ibfxwavesh1");
                  l_text_16 = "A";
                  li_116 = TRUE;
                  li_120 = TRUE;
               }
               break;
            default:
               li_120 = TRUE;
            }
            if (li_116 && DisplayWaves) {
               ObjectCreate(l_str_concat_24, OBJ_TEXT, 0, Time[l_index_148], High[l_index_148] + ld_124);
               ObjectSetText(l_str_concat_24, l_text_16, 12, "Arial Bold", Waves);
               li_116 = FALSE;
            }
         }
      }
      if (Low[l_index_148] == MathMin(MinLowPres(l_index_148, gi_88), MinLowPast(l_index_148, gi_88)) && li_8 <= 0 && !li_120) {
         switch (li_8) {
         case 0:
            ld_68 = Low[l_index_148];
            l_str_concat_24 = StringConcatenate(Symbol(), Period(), "ibfxwavesl5");
            l_text_16 = "E";
            li_8 = 1;
            break;
         case -1:
            ld_60 = Low[l_index_148];
            l_str_concat_24 = StringConcatenate(Symbol(), Period(), "ibfxwavesl4");
            l_text_16 = "D";
            li_8 = 2;
            break;
         case -2:
            ld_52 = Low[l_index_148];
            l_str_concat_24 = StringConcatenate(Symbol(), Period(), "ibfxwavesl3");
            l_text_16 = "C";
            li_8 = 3;
            break;
         case -3:
            ld_44 = Low[l_index_148];
            l_str_concat_24 = StringConcatenate(Symbol(), Period(), "ibfxwavesl2");
            l_text_16 = "B";
            li_8 = 4;
            break;
         case -4:
            ld_36 = Low[l_index_148];
            l_str_concat_24 = StringConcatenate(Symbol(), Period(), "ibfxwavesl1");
            l_text_16 = "A";
            li_8 = 5;
            li_120 = TRUE;
         }
         if (DisplayWaves) {
            ObjectCreate(l_str_concat_24, OBJ_TEXT, 0, Time[l_index_148], Low[l_index_148] - ld_124);
            ObjectSetText(l_str_concat_24, l_text_16, 12, "Arial Bold", Waves);
         }
      } else {
         if (Low[l_index_148] == MathMin(MinLowPres(l_index_148, gi_88), MinLowPast(l_index_148, gi_88)) && li_8 > 0 && !li_120) {
            switch (li_8) {
            case 1:
               if (Low[l_index_148] < ld_68) {
                  ld_68 = Low[l_index_148];
                  l_str_concat_24 = StringConcatenate(Symbol(), Period(), "ibfxwavesl5");
                  l_text_16 = "E";
                  li_116 = TRUE;
               }
               break;
            case 2:
               if (Low[l_index_148] < ld_60) {
                  ld_60 = Low[l_index_148];
                  l_str_concat_24 = StringConcatenate(Symbol(), Period(), "ibfxwavesl4");
                  l_text_16 = "D";
                  li_116 = TRUE;
               }
               break;
            case 3:
               if (Low[l_index_148] < ld_52) {
                  ld_52 = Low[l_index_148];
                  l_str_concat_24 = StringConcatenate(Symbol(), Period(), "ibfxwavesl3");
                  l_text_16 = "C";
                  li_116 = TRUE;
               }
               break;
            case 4:
               if (Low[l_index_148] < ld_44) {
                  ld_44 = Low[l_index_148];
                  l_str_concat_24 = StringConcatenate(Symbol(), Period(), "ibfxwavesl2");
                  l_text_16 = "B";
                  li_116 = TRUE;
               }
               break;
            case 5:
               if (Low[l_index_148] < ld_36) {
                  ld_36 = Low[l_index_148];
                  l_str_concat_24 = StringConcatenate(Symbol(), Period(), "ibfxwavesl1");
                  l_text_16 = "A";
                  li_116 = TRUE;
                  li_120 = TRUE;
               }
               break;
            default:
               li_120 = TRUE;
            }
            if (li_116 && DisplayWaves) {
               ObjectCreate(l_str_concat_24, OBJ_TEXT, 0, Time[l_index_148], Low[l_index_148] - ld_124);
               ObjectSetText(l_str_concat_24, l_text_16, 12, "Arial Bold", Wav

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

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

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

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

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

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

Стоимость полного кода
1 960,20₽ ≈ $23.96