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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.