ZigZag
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «zigzag_hh-hl-lh-ll_b.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный индикатор реализует построение индикатора ZigZag в платформе MetaTrader 4. Он анализирует ценовые бары и определяет значимые экстремумы — локальные максимумы и минимумы — на основе заданной глубины поиска и допустимого отклонения.
Индикатор отображает соединительные линии между найденными экстремумами на графике цены. Каждому экстремуму присваивается текстовая метка, обозначающая тип разворота: более высокий максимум (HH), более низкий максимум (LH), более высокий минимум (HL) или более низкий минимум (LL).
Настройки позволяют задать параметры поиска экстремумов, цвета и размеры текстовых меток, шрифт отображения, а также количество обрабатываемых баров. При пересчёте индикатора старые графические объекты удаляются, а метки обновляются в соответствии с текущей структурой цены.
Настройки программы
| Настройка | Описание |
|---|---|
| ExtDepth | Глубина (Depth) — Глубина поиска разворотов цены в количестве баров |
| ExtDeviation | Отклонение (Deviation) — Допустимое отклонение цены от экстремума в пунктах |
| ExtBackstep | Откат (Backstep) — Количество баров для возврата при уточнении экстремумов |
| TopColorHH | Цвет метки HH — Цвет текстовой метки для более высокого максимума (HH) |
| TopColorLH | Цвет метки LH — Цвет текстовой метки для более низкого максимума (LH) |
| BotColorHL | Цвет метки HL — Цвет текстовой метки для более высокого минимума (HL) |
| BotColorLL | Цвет метки LL — Цвет текстовой метки для более низкого минимума (LL) |
| Labeldistance | Расстояние метки — Расстояние текстовой метки от экстремума цены |
| TxtSize1 | Размер шрифта 1 — Размер шрифта для одного типа текстовых меток |
| TxtSize2 | Размер шрифта 2 — Размер шрифта для другого типа текстовых меток |
| Fonts | Шрифт меток — Шрифт для отображения текстовых меток на графике |
| CountBars | Количество баров — Количество баров для обработки и отображения индикатором |
Поиск по коду файла
???//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Orange
extern int ExtDepth = 5 ;
extern int ExtDeviation = 0 ;
extern int ExtBackstep = 0 ;
extern color TopColorHH = Yellow;
extern color TopColorLH = Lime;
extern color BotColorHL = Red ;
extern color BotColorLL = Yellow;
extern int Labeldistance = 2;
extern int TxtSize1 = 7;
extern int TxtSize2 = 6;
extern string Fonts = "Arial Black";
extern int CountBars = 500 ;
double Poin, Mut;
int level=3;
bool downloadhistory = false;
double ZigzagBuffer[];
double HighMapBuffer[];
double LowMapBuffer[];
int init()
{
// код доступен только после оплаты
}
IndicatorBuffers(3);
SetIndexStyle(0,DRAW_SECTION,STYLE_SOLID,2);
SetIndexBuffer(0,ZigzagBuffer);
SetIndexBuffer(1,HighMapBuffer);
SetIndexBuffer(2,LowMapBuffer);
SetIndexEmptyValue(0,0.0);
IndicatorShortName("ZigZag("+ExtDepth+","+ExtDeviation+","+ExtBackstep+")");
del_objF();
/* switch(Period())
{
case 1: puShift = 1.0 ; pdShift = -1.0 ; break;
case 5: puShift = 1.0 ; pdShift = -1.0 ; break;
case 15: puShift = 6.0 ; pdShift = -1.0 ; break;
case 30: puShift = 9.0 ; pdShift = -1.0 ; break;
case 60: puShift = 12 ; pdShift = -4.0 ; break;
case 240: puShift = 35 ; pdShift = -7.0 ; break;
case 1440: puShift = 100 ; pdShift = -20 ; break;
case 10080: puShift = 200 ; pdShift = -50 ; break;
case 43200: puShift = 300 ; pdShift = -100 ; break;
}
*/
if (Point == 0.00001) Poin = 0.0001; // 6 digits
else if (Point == 0.001) Poin = 0.01; // 3 digits (for Yen based pairs)
else Poin = Point; // Normal
if (StringSubstr(Symbol(),0,6) == "GBPUSD") {switch(Period()) {case 1:Mut=1.5;break; case 5:Mut=4;break; case 15:Mut=6;break; case 30:Mut=10;break; case 60:Mut=13;break; case 240:Mut=35;break; case 1440:Mut=100;break; case 10080:Mut=150;break; case 43200:Mut=300;break; } }
if (StringSubstr(Symbol(),0,6) == "GBPJPY") {switch(Period()) {case 1:Mut=2.5;break; case 5:Mut=6;break; case 15:Mut=8;break; case 30:Mut=11;break; case 60:Mut=10;break; case 240:Mut=35;break; case 1440:Mut=150;break; case 10080:Mut=200;break; case 43200:Mut=300;break; } }
if (StringSubstr(Symbol(),0,6) == "USDJPY") {switch(Period()) {case 1:Mut=1.5;break; case 5:Mut=3;break; case 15:Mut=6;break; case 30:Mut=12;break; case 60:Mut=25;break; case 240:Mut=30;break; case 1440:Mut=80;break; case 10080:Mut=150;break; case 43200:Mut=200;break; } }
if (StringSubstr(Symbol(),0,6) == "EURUSD") {switch(Period()) {case 1:Mut=0.7;break; case 5:Mut=2;break; case 15:Mut=5;break; case 30:Mut=11;break; case 60:Mut=20;break; case 240:Mut=20;break; case 1440:Mut=30;break; case 10080:Mut=120;break; case 43200:Mut=250;break; } }
if (StringSubstr(Symbol(),0,6) == "XAUUSD") {switch(Period()) {case 1:Mut=12.0;break; case 5:Mut=40;break; case 15:Mut=80;break; case 30:Mut=200;break; case 60:Mut=300;break; case 240:Mut=400;break; case 1440:Mut=700;break; case 10080:Mut=2000;break; case 43200:Mut=3000;break; } }
if (StringSubstr(Symbol(),0,5) == "GER30" ) {switch(Period()) {case 1:Mut=90;break; case 5:Mut=350;break; case 15:Mut=500;break; case 30:Mut=2000;break; case 60:Mut=2400;break; case 240:Mut=2000;break; case 1440:Mut=7000;break; case 10080:Mut=20000;break; case 43200:Mut=25000;break; } }
if (StringSubstr(Symbol(),0,6) == "JPN225") {switch(Period()) {case 1:Mut=200;break; case 5:Mut=500;break; case 15:Mut=1200;break; case 30:Mut=2800;break; case 60:Mut=5000;break; case 240:Mut=6000;break; case 1440:Mut=15000;break; case 10080:Mut=30000;break; case 43200:Mut=50000;break; } }
if (StringSubstr(Symbol(),0,4) == "US30" ) {switch(Period()) {case 1:Mut=100;break; case 5:Mut=200;break; case 15:Mut=400;break; case 30:Mut=1000;break; case 60:Mut=3500;break; case 240:Mut=4000;break; case 1440:Mut=9000;break; case 10080:Mut=20000;break; case 43200:Mut=40000;break; } }
if (StringSubstr(Symbol(),0,6) == "AUDUSD") {switch(Period()) {case 1:Mut=0.3;break; case 5:Mut=3;break; case 15:Mut=7;break; case 30:Mut=10;break; case 60:Mut=13;break; case 240:Mut=13;break; case 1440:Mut=30;break; case 10080:Mut=120;break; case 43200:Mut=200;break; } }
if (StringSubstr(Symbol(),0,6) == "AUDNZD") {switch(Period()) {case 1:Mut=0.5;break; case 5:Mut=3;break; case 15:Mut=5;break; case 30:Mut=7;break; case 60:Mut=10;break; case 240:Mut=13;break; case 1440:Mut=25;break; case 10080:Mut=100;break; case 43200:Mut=120;break; } }
if (StringSubstr(Symbol(),0,6) == "AUDCAD") {switch(Period()) {case 1:Mut=0.3;break; case 5:Mut=3;break; case 15:Mut=7;break; case 30:Mut=10;break; case 60:Mut=13;break; case 240:Mut=13;break; case 1440:Mut=30;break; case 10080:Mut=120;break; case 43200:Mut=200;break; } }
if (StringSubstr(Symbol(),0,6) == "AUDCHF") {switch(Period()) {case 1:Mut=0.3;break; case 5:Mut=3;break; case 15:Mut=7;break; case 30:Mut=10;break; case 60:Mut=13;break; case 240:Mut=13;break; case 1440:Mut=30;break; case 10080:Mut=120;break; case 43200:Mut=200;break; } }
if (StringSubstr(Symbol(),0,6) == "AUDJPY") {switch(Period()) {case 1:Mut=0.3;break; case 5:Mut=3;break; case 15:Mut=7;break; case 30:Mut=10;break; case 60:Mut=13;break; case 240:Mut=13;break; case 1440:Mut=30;break; case 10080:Mut=120;break; case 43200:Mut=200;break; } }
if (StringSubstr(Symbol(),0,6) == "CHFJPY") {switch(Period()) {case 1:Mut=1.5;break; case 5:Mut=2;break; case 15:Mut=4;break; case 30:Mut=6;break; case 60:Mut=10;break; case 240:Mut=20;break; case 1440:Mut=60;break; case 10080:Mut=200;break; case 43200:Mut=250;break; } }
if (StringSubstr(Symbol(),0,6) == "CADJPY") {switch(Period()) {case 1:Mut=1.5;break; case 5:Mut=2;break; case 15:Mut=4;break; case 30:Mut=6;break; case 60:Mut=10;break; case 240:Mut=20;break; case 1440:Mut=60;break; case 10080:Mut=200;break; case 43200:Mut=250;break; } }
if (StringSubstr(Symbol(),0,6) == "CADCHF") {switch(Period()) {case 1:Mut=1.5;break; case 5:Mut=2;break; case 15:Mut=4;break; case 30:Mut=6;break; case 60:Mut=10;break; case 240:Mut=20;break; case 1440:Mut=60;break; case 10080:Mut=200;break; case 43200:Mut=250;break; } }
if (StringSubstr(Symbol(),0,6) == "EURGBP") {switch(Period()) {case 1:Mut=0.7;break; case 5:Mut=2;break; case 15:Mut=5;break; case 30:Mut=11;break; case 60:Mut=20;break; case 240:Mut=20;break; case 1440:Mut=30;break; case 10080:Mut=120;break; case 43200:Mut=250;break; } }
if (StringSubstr(Symbol(),0,6) == "EURAUD") {switch(Period()) {case 1:Mut=0.7;break; case 5:Mut=2;break; case 15:Mut=5;break; case 30:Mut=11;break; case 60:Mut=20;break; case 240:Mut=20;break; case 1440:Mut=30;break; case 10080:Mut=120;break; case 43200:Mut=250;break; } }
if (StringSubstr(Symbol(),0,6) == "EURNZD") {switch(Period()) {case 1:Mut=0.7;break; case 5:Mut=2;break; case 15:Mut=5;break; case 30:Mut=11;break; case 60:Mut=20;break; case 240:Mut=20;break; case 1440:Mut=30;break; case 10080:Mut=120;break; case 43200:Mut=250;break; } }
if (StringSubstr(Symbol(),0,6) == "EURCAD") {switch(Period()) {case 1:Mut=0.7;break; case 5:Mut=2;break; case 15:Mut=5;break; case 30:Mut=11;break; case 60:Mut=20;break; case 240:Mut=20;break; case 1440:Mut=30;break; case 10080:Mut=120;break; case 43200:Mut=250;break; } }
if (StringSubstr(Symbol(),0,6) == "EURCHF") {switch(Period()) {case 1:Mut=0.7;break; case 5:Mut=2;break; case 15:Mut=5;break; case 30:Mut=11;break; case 60:Mut=20;break; case 240:Mut=20;break; case 1440:Mut=30;break; case 10080:Mut=120;break; case 43200:Mut=250;break; } }
if (StringSubstr(Symbol(),0,6) == "EURJPY") {switch(Period()) {case 1:Mut=0.7;break; case 5:Mut=2;break; case 15:Mut=5;break; case 30:Mut=11;break; case 60:Mut=20;break; case 240:Mut=20;break; case 1440:Mut=30;break; case 10080:Mut=120;break; case 43200:Mut=250;break; } }
if (StringSubstr(Symbol(),0,6) == "GBPAUD") {switch(Period()) {case 1:Mut=1.5;break; case 5:Mut=4;break; case 15:Mut=6;break; case 30:Mut=10;break; case 60:Mut=13;break; case 240:Mut=35;break; case 1440:Mut=100;break; case 10080:Mut=150;break; case 43200:Mut=300;break; } }
if (StringSubstr(Symbol(),0,6) == "GBPCHF") {switch(Period()) {case 1:Mut=1.5;break; case 5:Mut=4;break; case 15:Mut=6;break; case 30:Mut=10;break; case 60:Mut=13;break; case 240:Mut=35;break; case 1440:Mut=100;break; case 10080:Mut=150;break; case 43200:Mut=300;break; } }
if (StringSubstr(Symbol(),0,6) == "GBPCAD") {switch(Period()) {case 1:Mut=1.5;break; case 5:Mut=4;break; case 15:Mut=6;break; case 30:Mut=10;break; case 60:Mut=13;break; case 240:Mut=35;break; case 1440:Mut=100;break; case 10080:Mut=150;break; case 43200:Mut=300;break; } }
if (StringSubstr(Symbol(),0,6) == "GBPNZD") {switch(Period()) {case 1:Mut=1.5;break; case 5:Mut=4;break; case 15:Mut=6;break; case 30:Mut=10;break; case 60:Mut=13;break; case 240:Mut=35;break; case 1440:Mut=100;break; case 10080:Mut=150;break; case 43200:Mut=300;break; } }
if (StringSubstr(Symbol(),0,6) == "NZDJPY") {switch(Period()) {case 1:Mut=0.7;break; case 5:Mut=2;break; case 15:Mut=5;break; case 30:Mut=11;break; case 60:Mut=20;break; case 240:Mut=20;break; case 1440:Mut=30;break; case 10080:Mut=120;break; case 43200:Mut=250;break; } }
if (StringSubstr(Symbol(),0,6) == "NZDUSD") {switch(Period()) {case 1:Mut=0.7;break; case 5:Mut=2;break; case 15:Mut=5;break; case 30:Mut=11;break; case 60:Mut=20;break; case 240:Mut=20;break; case 1440:Mut=30;break; case 10080:Mut=120;break; case 43200:Mut=250;break; } }
if (StringSubstr(Symbol(),0,6) == "NZDCHF") {switch(Period()) {case 1:Mut=0.7;break; case 5:Mut=2;break; case 15:Mut=5;break; case 30:Mut=11;break; case 60:Mut=20;break; case 240:Mut=20;break; case 1440:Mut=30;break; case 10080:Mut=120;break; case 43200:Mut=250;break; } }
if (StringSubstr(Symbol(),0,6) == "NZDCAD") {switch(PerioПоказано первые 50% кода (символов: 16419)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.