zone indicator@fxsignalspot.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «zone indicator@fxsignalspot.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный индикатор для MetaTrader 4 анализирует ценовые данные на выбранном таймфрейме и отображает на графике зоны поддержки и сопротивления. Для определения направления тренда используется разница между двумя скользящими средними, а также анализ последовательностей максимумов и минимумов для выявления потенциальных уровней зон.
Обнаруженные зоны отрисовываются в виде прямоугольников на графике: бычьи зоны одного цвета, медвежьи — другого. Прямоугольники сопровождаются текстовыми метками и трендовыми линиями. Внешний вид настраивается через параметры цвета, толщины и стиля.
Диапазон анализа ограничивается параметром MaxBars, а положение зон можно сместить вправо с помощью RectShift. При изменении количества баров на графике зоны перерисовываются, а старые объекты удаляются при деинициализации индикатора.
Настройки программы
| Настройка | Описание |
|---|---|
| _ | Период определения зон — Период определения зон (1-M1, 5-M5, 15-M15, 30-M30, 60-Н1, 240-Н4, 1440-D1, 10080-W1, 43200-MN1). |
| TF | Таймфрейм зон — Таймфрейм для определения зон (1 — M1, 5 — M5, 15 — M15, 30 — M30, 60 — H1, 240 — H4, 1440 — D1, 10080 — W1, 43200 — MN1). |
| __ | Кол-во баров для зон — Количество баров для определения зон. |
| MaxBars | Макс. баров для зон — Количество баров для определения зон. |
| Rcolor | Цвет бычьих зон — Цвет прямоугольников бычьих зон. |
| Scolor | Цвет медвежьих зон — Цвет прямоугольников медвежьих зон. |
| TxtColor | Цвет текста — Цвет текстовых меток и трендовых линий зон. |
| BackGround | Фоновый режим — Режим отрисовки прямоугольников зон на графике (фоновый или обычный). |
| RectangleWidth | Толщина прямоугольников — Толщина линий прямоугольников зон. |
| RectangleStyle | Стиль прямоугольников — Стиль линий прямоугольников зон. |
| TxtSize | Размер текста — Размер текста меток зон. |
| ___ | Сдвиг зоны — Сдвиг зоны вправо на RectShift баров. |
| RectShift | Сдвиг зон — Сдвиг зон вправо в барах. |
| ____ | Параметры АО — Параметры определения АО. |
| MA1 | Период MA1 — Период первой скользящей средней, используемой для определения направления тренда. |
| MA2 | Период MA2 — Период второй скользящей средней, используемой для определения направления тренда. |
| Metod_MA | Метод скользящей средней — Метод расчёта скользящей средней (применяется к обеим MA). |
| 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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.