#chaos arrzzx2=.mq4
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «#chaos arrzzx2=.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой пользовательский индикатор для платформы MetaTrader 4, отображающий аналитические сигналы на ценовом графике. Индикатор использует 8 буферов данных для расчёта и визуализации различных элементов анализа.
Основной расчёт основан на линейно-взвешенном скользящем среднем (LWMA) с настраиваемым периодом и выбором цены (Close, Open, Median, Typical, Weighted). Далее выполняется дополнительная сглаживающая обработка с учётом диапазона значений буфера.
Индикатор определяет локальные минимумы и максимумы в заданных интервалах и отображает их в виде стрелок на графике. Дополнительная обработка выделяет точки разворота на основе обнаруженных экстремумов.
Параметр SRZZ задаёт период поиска экстремумов. Остальные параметры жёстко заданы в коде.
Настройки программы
| Настройка | Описание |
|---|---|
| SRZZ | Период поиска экстремумов для вспомогательного расчёта. Используется для определения локальных минимумов и максимумов в буфере сглаженных значений. |
Поиск по коду файла
/*
G e n e r a t e d by ex4-to-mq4 decompiler FREEWARE 4.0.509.5
Website: HTtp: / /wWW .M etaq u o tEs . Ne t
E-mail : S UPp o R T @m eTaQ uO T ES.NE t
*/
#property indicator_chart_window
#property indicator_buffers 8
#property indicator_color1 White
#property indicator_color2 Lime
#property indicator_color3 Blue
#property indicator_color4 Blue
#property indicator_color5 Green
#property indicator_color6 MediumVioletRed
#property indicator_color7 LimeGreen
#property indicator_color8 MediumVioletRed
int Gi_76 = 3;
extern int SRZZ = 60;
int Gi_84 = 20;
int Gi_88 = 21;
int Gi_92 = 3;
bool Gi_96 = FALSE;
int Gi_100 = 0;
double G_ibuf_104[];
double G_ibuf_108[];
double Gda_112[];
double Gda_116[];
double G_ibuf_120[];
double G_ibuf_124[];
double G_ibuf_128[];
double G_ibuf_132[];
int Gia_136[6] = {0, 0, 0, 0, 0, 0};
int Gia_140[5] = {0, 0, 0, 0, 0};
int Gi_144;
int Gi_148;
int Gi_152;
int Gi_156;
int Gi_160;
bool Gi_164 = TRUE;
int G_bars_168 = 0;
void MainCalculation(int Ai_0) {
if (Bars - Ai_0 > Gi_76 + 1) SACalc(Ai_0);
else Gda_112[Ai_0] = 0;
if (Bars - Ai_0 > Gi_88 + Gi_76 + 2) {
SMCalc(Ai_0);
return;
}
Gda_116[Ai_0] = 0;
}
void SACalc(int Ai_0) {
int Li_4;
int count_8;
int Li_12;
int Li_16;
double Ld_24;
switch (Gi_100) {
case 0:
Gda_112[Ai_0] = iMA(NULL, 0, Gi_76 + 1, 0, MODE_LWMA, PRICE_CLOSE, Ai_0);
break;
case 1:
Gda_112[Ai_0] = iMA(NULL, 0, Gi_76 + 1, 0, MODE_LWMA, PRICE_OPEN, Ai_0);
break;
case 4:
Gda_112[Ai_0] = iMA(NULL, 0, Gi_76 + 1, 0, MODE_LWMA, PRICE_MEDIAN, Ai_0);
break;
case 5:
Gda_112[Ai_0] = iMA(NULL, 0, Gi_76 + 1, 0, MODE_LWMA, PRICE_TYPICAL, Ai_0);
break;
case 6:
Gda_112[Ai_0] = iMA(NULL, 0, Gi_76 + 1, 0, MODE_LWMA, PRICE_WEIGHTED, Ai_0);
break;
default:
Gda_112[Ai_0] = iMA(NULL, 0, Gi_76 + 1, 0, MODE_LWMA, PRICE_OPEN, Ai_0);
}
for (int Li_20 = Ai_0 + Gi_76 + 2; Li_20 > Ai_0; Li_20--) {
Ld_24 = 0.0;
Li_4 = 0;
count_8 = 0;
Li_12 = Li_20 + Gi_76;
Li_16 = Li_20 - Gi_76;
if (Li_16 < Ai_0) Li_16 = Ai_0;
while (Li_12 >= Li_20) {
count_8++;
Ld_24 += count_8 * SnakePrice(Li_12);
Li_4 += count_8;
Li_12--;
}
while (Li_12 >= Li_16) {
count_8--;
Ld_24 += count_8 * SnakePrice(Li_12);
Li_4 += count_8;
Li_12--;
}
Gda_112[Li_20] = Ld_24 / Li_4;
}
}
double SnakePrice(int Ai_0) {
switch (Gi_100) {
case 0:
return (Close[Ai_0]);
case 1:
return (Open[Ai_0]);
case 4:
return ((High[Ai_0] + Low[Ai_0]) / 2.0);
case 5:
return ((Close[Ai_0] + High[Ai_0] + Low[Ai_0]) / 3.0);
case 6:
return ((2.0 * Close[Ai_0] + High[Ai_0] + Low[Ai_0]) / 4.0);
}
return (Open[Ai_0]);
}
void SMCalc(int Ai_0) {
double Ld_4;
double Ld_12;
for (int Li_20 = Ai_0 + Gi_76 + 2; Li_20 >= Ai_0; Li_20--) {
Ld_4 = Gda_112[ArrayMaximum(Gda_112, Gi_88, Li_20)];
Ld_12 = Gda_112[ArrayMinimum(Gda_112, Gi_88, Li_20)];
Gda_116[Li_20] = ((Gi_92 + 2) * 2 * Gda_112[Li_20] - (Ld_4 + Ld_12)) / 2.0 / (Gi_92 + 1);
}
}
void LZZCalc(int Ai_0) {
int Li_8;
int Li_12;
int Li_16;
int index_20;
int Li_4 = Ai_0 - 1;
int Li_24 = 0;
int Li_28 = 0;
while (Li_4 < Gi_144 && Li_16 == 0) {
Li_4++;
G_ibuf_108[Li_4] = 0;
Li_8 = Li_4 - Gi_84;
if (Li_8 < Ai_0) Li_8 = Ai_0;
Li_12 = Li_4 + Gi_84;
if (Li_4 == ArrayMinimum(Gda_116, Li_12 - Li_8 + 1, Li_8)) {
Li_16 = -1;
Li_24 = Li_4;
}
if (Li_4 == ArrayMaximum(Gda_116, Li_12 - Li_8 + 1, Li_8)) {
Li_16 = 1;
Li_28 = Li_4;
}
}
if (Li_16 != 0) {
index_20 = 0;
if (Li_4 > Ai_0) {
if (Gda_116[Li_4] > Gda_116[Ai_0]) {
if (Li_16 == 1) {
if (Li_4 >= Ai_0 + Gi_84 && index_20 < 5) {
index_20++;
Gia_136[index_20] = Li_4;
}
Li_28 = Li_4;
G_ibuf_108[Li_4] = Gda_116[Li_4];
}
} else {
if (Li_16 == -1) {
if (Li_4 >= Ai_0 + Gi_84 && index_20 < 5) {
index_20++;
Gia_136[index_20] = Li_4;
}
Li_24 = Li_4;
G_ibuf_108[Li_4] = Gda_116[Li_4];
}
}
}
if (Li_4 < Gi_160 || index_20 < 5) {
while (true) {
G_ibuf_108[Li_4] = 0;
Li_8 = Li_4 - Gi_84;
if (Li_8 < Ai_0) Li_8 = Ai_0;
Li_12 = Li_4 + Gi_84;
if (Li_4 == ArrayMinimum(Gda_116, Li_12 - Li_8 + 1, Li_8)) {
if (Li_16 == -1 && Gda_116[Li_4] < Gda_116[Li_24]) {
if (Li_4 >= Ai_0 + Gi_84 && index_20 < 5) Gia_136[index_20] = Li_4;
G_ibuf_108[Li_24] = 0;
G_ibuf_108[Li_4] = Gda_116[Li_4];
Li_24 = Li_4;
}
if (Li_16 == 1) {
if (Li_4 >= Ai_0 + Gi_84 && index_20 < 5) {
index_20++;
Gia_136[index_20] = Li_4;
}
G_ibuf_108[Li_4] = Gda_116[Li_4];
Li_16 = -1;
Li_24 = Li_4;
}
}
if (Li_4 == ArrayMaximum(Gda_116, Li_12 - Li_8 + 1, Li_8)) {
if (Li_16 == 1 && Gda_116[Li_4] > Gda_116[Li_28]) {
if (Li_4 >= Ai_0 + Gi_84 && index_20 < 5) Gia_136[index_20] = Li_4;
G_ibuf_108[Li_28] = 0;
G_ibuf_108[Li_4] = Gda_116[Li_4];
Li_28 = Li_4;
}
if (Li_16 == -1) {
if (Li_4 >= Ai_0 + Gi_84 && index_20 < 5) {
index_20++;
Gia_136[index_20] = Li_4;
}
G_ibuf_108[Li_4] = Gda_116[Li_4];
Li_16 = 1;
Li_28 = Li_4;
}
}
Li_4++;
if (Li_4 > Gi_144) return;
if (Li_4 < Gi_160 || index_20 < 5) continue;
break;
}
}
Gi_152 = Bars - Gia_136[5];
G_ibuf_108[Ai_0] = Gda_116[Ai_0];
return;
}
}
void SZZCalc(int Ai_0) {
int Li_8;
int Li_12;
int Li_16;
int index_20;
int Li_4 = Ai_0 - 1;
int Li_24 = 0;
int Li_28 = 0;
while (Li_4 <= Gi_160 && Li_16 == 0) {
Li_4++;
G_ibuf_132[Li_4] = 0;
G_ibuf_128[Li_4] = 0;
G_ibuf_124[Li_4Показано первые 50% кода (символов: 8155)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.