scalping_future_5314355462760565062.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «scalping_future_5314355462760565062.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой пользовательский индикатор для платформы MetaTrader 4, отображаемый в окне графика. Он рассчитывает сглаженную скользящую среднюю (LWMA) с дополнительной фильтрацией, а затем вычисляет статистический показатель на основе ранжированных значений за заданное количество баров, нормализуя результат в диапазон от -1 до 1. При пересечении пороговых значений ±0.8 индикатор генерирует визуальные сигналы «Buy», «Sell» или «Wait».
Индикатор отрисовывает стрелки на графике для обозначения точек входа и текстовую метку с текущим состоянием сигнала. Также при появлении нового сигнала отправляется уведомление через функцию Alert с указанием типа сигнала, символа и таймфрейма. Два настраиваемых параметра позволяют задать период фильтрации и расстояние стоп-лосса в пунктах.
Продукт не содержит встроенных торговых функций и не исполняет сделки автоматически. Все торговые параметры, включая уровень стоп-лосса, используются исключительно для отображения информации на графике и уведомлений.
Настройки программы
| Настройка | Описание |
|---|---|
| FilterPeriod | Период фильтрации — Период фильтрации, используемый при расчёте сглаженной скользящей средней и последующей обработке данных индикатора. Задаётся целым числом, по умолчанию равен 22. |
| SL_distance_pips | Расстояние стоп-лосса (пункты) — Расстояние стоп-лосса в пунктах, используемое при формировании уведомлений и отрисовке уровней на графике при появлении торговых сигналов. Задаётся целым числом, по умолчанию равен 20. |
Поиск по коду файла
/*
Generated by EX4-TO-MQ4 decompiler FREEWARE V4.0.451.1 [-]
Website:
E-mail : s*****t*@metaquotes.net
*/
#property indicator_chart_window
#property indicator_minimum -1.2
#property indicator_maximum 1.2
#property indicator_levelcolor Lime
#property indicator_buffers 1
#property indicator_color1 Blue
#property indicator_width1 3
#property indicator_level1 0.8
#property indicator_level2 -0.8
int gi_76 = 22;
extern int FilterPeriod = 22;
double gd_84 = 1.0;
int gi_92 = 0;
extern int SL_distance_pips = 20;
double g_ibuf_100[];
double gda_104[];
double g_ibuf_108[];
int gi_112 = 14;
double gda_116[];
double gd_120;
int gia_128[];
int gia_132[];
int gi_136 = 0;
int g_time_140 = 0;
string gs_144 = "www.mql54.com";
string g_name_152;
datetime g_time_160;
void f0_7(string as_0, double ad_8, double ad_16, double ad_24) {
string ls_32;
string ls_40;
string ls_48;
if (Time[0] != g_time_160) {
g_time_160 = Time[0];
if (ad_24 != 0.0) ls_48 = " - price " + DoubleToStr(ad_24, 4);
else ls_48 = "";
if (ad_8 != 0.0) ls_40 = ", TakeProfit on " + DoubleToStr(ad_8, 4);
else ls_40 = "";
if (ad_16 != 0.0) ls_32 = ", StopLoss on " + DoubleToStr(ad_16, 4);
else ls_32 = "";
Alert("www.mql54.com " + as_0 + ls_48 + ls_40 + ls_32 + " ", Symbol(), ", ", Period(), " minute chart");
}
}
void f0_0(int ai_0) {
int li_4;
int count_8;
int li_12;
int li_16;
double ld_20;
switch (gi_92) {
case 0:
gda_104[ai_0] = iMA(NULL, 0, gi_76 + 1, 0, MODE_LWMA, PRICE_CLOSE, ai_0);
break;
case 1:
gda_104[ai_0] = iMA(NULL, 0, gi_76 + 1, 0, MODE_LWMA, PRICE_OPEN, ai_0);
break;
case 2:
gda_104[ai_0] = iMA(NULL, 0, gi_76 + 1, 0, MODE_LWMA, PRICE_HIGH, ai_0);
break;
case 3:
gda_104[ai_0] = iMA(NULL, 0, gi_76 + 1, 0, MODE_LWMA, PRICE_LOW, ai_0);
break;
case 4:
gda_104[ai_0] = iMA(NULL, 0, gi_76 + 1, 0, MODE_LWMA, PRICE_MEDIAN, ai_0);
break;
case 5:
gda_104[ai_0] = iMA(NULL, 0, gi_76 + 1, 0, MODE_LWMA, PRICE_TYPICAL, ai_0);
break;
case 6:
gda_104[ai_0] = iMA(NULL, 0, gi_76 + 1, 0, MODE_LWMA, PRICE_WEIGHTED, ai_0);
break;
default:
gda_104[ai_0] = iMA(NULL, 0, gi_76 + 1, 0, MODE_LWMA, PRICE_WEIGHTED, ai_0);
}
for (int li_32 = ai_0 + gi_76 + 2; li_32 > ai_0; li_32--) {
ld_20 = 0.0;
li_4 = 0;
count_8 = 0;
li_12 = li_32 + gi_76;
li_16 = li_32 - gi_76;
if (li_16 < ai_0) li_16 = ai_0;
while (li_12 >= li_32) {
count_8++;
ld_20 += count_8 * f0_4(li_12);
li_4 += count_8;
li_12--;
}
while (li_12 >= li_16) {
count_8--;
ld_20 += count_8 * f0_4(li_12);
li_4 += count_8;
li_12--;
}
gda_104[li_32] = ld_20 / li_4;
}
}
double f0_4(int ai_0) {
switch (gi_92) {
case 0:
return (Close[ai_0]);
case 1:
return (Open[ai_0]);
case 2:
return (High[ai_0]);
case 3:
return (Low[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 (Close[ai_0]);
}
void f0_8(int ai_0) {
double ld_4 = gda_104[ArrayMaximum(gda_104, FilterPeriod, ai_0)];
double ld_12 = gda_104[ArrayMinimum(gda_104, FilterPeriod, ai_0)];
g_ibuf_108[ai_0] = (2.0 * (gd_84 + 2.0) * gda_104[ai_0] - (ld_4 + ld_12)) / 2.0 / (gd_84 + 1.0);
}
double f0_1(double ada_0[], int ai_4) {
double ld_8;
for (int index_16 = 0; index_16 < ai_4; index_16++) ld_8 += MathPow(ada_0[index_16] - index_16 - 1.0, 2);
double ld_ret_20 = 1 - 6.0 * ld_8 / (MathPow(ai_4, 3) - ai_4);
return (ld_ret_20);
}
void f0_5(int aia_0[]) {
double ld_4;
double ld_12;
int index_20;
int li_24;
int li_28;
int li_32;
double lda_36[];
ArrayResize(lda_36, gi_112);
ArrayCopy(gia_132, aia_0);
for (int index_40 = 0; index_40 < gi_112; index_40++) lda_36[index_40] = index_40 + 1;
ArraySort(gia_132, WHOLE_ARRAY, 0, MODE_DESCEND);
for (index_40 = 0; index_40 < gi_112 - 1; index_40++) {
if (gia_132[index_40] == gia_132[index_40 + 1]) {
li_24 = gia_132[index_40];
index_20 = index_40 + 1;
li_28 = 1;
ld_12 = index_40 + 1;
while (index_20 < gi_112) {
if (gia_132[index_20] != li_24) break;
li_28++;
ld_12 += index_20 + 1;
index_20++;
}
ld_4 = li_28;
ld_12 /= ld_4;
for (int li_44 = index_40; li_44 < index_20; Показано первые 50% кода (символов: 6751)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.