
ЧМЭ3-5769 by Pavel888, on Flickr
РУССКИЙ ЯЗЫК/Russian language.
НАБОР Зиг Загов - этот индикатор по умолчанию включён в терминалы МТ4 и МТ5. Большинство индикаторов - с открытым кодом (MQL файл представлен). Для работы индикатора требуется только файл с разрешением EX. Подборка по индикатору самая основательная, тут есть Зиг Заги под любые задачи.
Успехов в работе!
АНГЛИЙСКИЙ ЯЗЫК/English language.
Zig Zag SET - this indicator is enabled by default in the MT4 and MT5 terminals. Most of the indicators are open-source (MQL file is provided). For the indicator to work, you only need a file with EX permission. The selection for the indicator is the most thorough, there is a Zig Zag for any task.
Good luck in your work!
С уважением, Павел aka Pavel888.
ОПИСАНИЕ ИНДИКАТОРА
1. Общий вид индикатора, описание.
2. Код индикатора.
3. Базовые настройки индикатора.
4. Формула расчёта индикатора.
5. Видеообзор индикатора.
6. Автор индикатора.
1. Общий вид индикатора, описание:
Индикатор Зиг Заг (ZigZag) известен каждому трейдеру и предназначен для анализа движений цены с заданной амплитудой. Зиг Заг - это ломаная линия, изгибы которой находятся в точках максимальных и минимальных значений ценового графика.
ZigZag – популярный сигнальный индикатор, с помощью которого формируют линии тренда, соединяющие главные вершины и основания на ценовом графике. Он наглядно отображает наиболее существенные развороты и откаты рынка. Также в числе задач данного инструмента отсекание шумов, мешающих рассмотрению самых значимых движений. Стандартный ZigZag наиболее эффективен в сочетании с другими средствами технического анализа, например, фракталами, полосами Боллинджера или волновой структурой Эллиота. Помимо классической версии, существует множество модификаций, использование которых поможет расширить возможности индикатора.
2. Код индикатора:
//+------------------------------------------------------------------+
//| ZigZag.mq4 |
//| Copyright 2006-2014, MetaQuotes Software Corp. |
//| http://www.mql4.com |
//+------------------------------------------------------------------+
#property copyright "2006-2014, MetaQuotes Software Corp."
#property link "http://www.mql4.com"
#property strict
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
//---- indicator parameters
input int InpDepth=12; // Depth
input int InpDeviation=5; // Deviation
input int InpBackstep=3; // Backstep
//---- indicator buffers
double ExtZigzagBuffer[];
double ExtHighBuffer[];
double ExtLowBuffer[];
//--- globals
int ExtLevel=3; // recounting's depth of extremums
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
if(InpBackstep>=InpDepth)
{
Print("Backstep cannot be greater or equal to Depth");
return(INIT_FAILED);
}
//--- 2 additional buffers
IndicatorBuffers(3);
//---- drawing settings
SetIndexStyle(0,DRAW_SECTION);
//---- indicator buffers
SetIndexBuffer(0,ExtZigzagBuffer);
SetIndexBuffer(1,ExtHighBuffer);
SetIndexBuffer(2,ExtLowBuffer);
SetIndexEmptyValue(0,0.0);
//---- indicator short name
IndicatorShortName("ZigZag("+string(InpDepth)+","+string(InpDeviation)+","+string(InpBackstep)+")");
//---- initialization done
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long& tick_volume[],
const long& volume[],
const int& spread[])
{
int i,limit,counterZ,whatlookfor=0;
int back,pos,lasthighpos=0,lastlowpos=0;
double extremum;
double curlow=0.0,curhigh=0.0,lasthigh=0.0,lastlow=0.0;
//--- check for history and inputs
if(rates_total=InpDepth)
return(0);
//--- first calculations
if(prev_calculated==0)
limit=InitializeAll();
else
{
//--- find first extremum in the depth ExtLevel or 100 last bars
i=counterZ=0;
while(counterZ {
if(ExtZigzagBuffer!=0.0)
counterZ++;
i++;
}
//--- no extremum found - recounting all from begin
if(counterZ==0)
limit=InitializeAll();
else
{
//--- set start position to found extremum position
limit=i-1;
//--- what kind of extremum?
if(ExtLowBuffer!=0.0)
{
//--- low extremum
curlow=ExtLowBuffer;
//--- will look for the next high extremum
whatlookfor=1;
}
else
{
//--- high extremum
curhigh=ExtHighBuffer;
//--- will look for the next low extremum
whatlookfor=-1;
}
//--- clear the rest data
for(i=limit-1; i>=0; i--)
{
ExtZigzagBuffer=0.0;
ExtLowBuffer=0.0;
ExtHighBuffer=0.0;
}
}
}
//--- main loop
for(i=limit; i>=0; i--)
{
//--- find lowest low in depth of bars
extremum=low[iLowest(NULL,0,MODE_LOW,InpDepth,i)];
//--- this lowest has been found previously
if(extremum==lastlow)
extremum=0.0;
else
{
//--- new last low
lastlow=extremum;
//--- discard extremum if current low is too high
if(low-extremum>InpDeviation*Point)
extremum=0.0;
else
{
//--- clear previous extremums in backstep bars
for(back=1; back {
pos=i+back;
if(ExtLowBuffer[pos]!=0 && ExtLowBuffer[pos]>extremum)
ExtLowBuffer[pos]=0.0;
}
}
}
//--- found extremum is current low
if(low==extremum)
ExtLowBuffer=extremum;
else
ExtLowBuffer=0.0;
//--- find highest high in depth of bars
extremum=high[iHighest(NULL,0,MODE_HIGH,InpDepth,i)];
//--- this highest has been found previously
if(extremum==lasthigh)
extremum=0.0;
else
{
//--- new last high
lasthigh=extremum;
//--- discard extremum if current high is too low
if(extremum-high>InpDeviation*Point)
extremum=0.0;
else
{
//--- clear previous extremums in backstep bars
for(back=1; back {
pos=i+back;
if(ExtHighBuffer[pos]!=0 && ExtHighBuffer[pos] ExtHighBuffer[pos]=0.0;
}
}
}
//--- found extremum is current high
if(high==extremum)
ExtHighBuffer=extremum;
else
ExtHighBuffer=0.0;
}
//--- final cutting
if(whatlookfor==0)
{
lastlow=0.0;
lasthigh=0.0;
}
else
{
lastlow=curlow;
lasthigh=curhigh;
}
for(i=limit; i>=0; i--)
{
switch(whatlookfor)
{
case 0: // look for peak or lawn
if(lastlow==0.0 && lasthigh==0.0)
{
if(ExtHighBuffer!=0.0)
{
lasthigh=High;
lasthighpos=i;
whatlookfor=-1;
ExtZigzagBuffer=lasthigh;
}
if(ExtLowBuffer!=0.0)
{
lastlow=Low;
lastlowpos=i;
whatlookfor=1;
ExtZigzagBuffer=lastlow;
}
}
break;
case 1: // look for peak
if(ExtLowBuffer!=0.0 && ExtLowBuffer==0.0)
{
ExtZigzagBuffer[lastlowpos]=0.0;
lastlowpos=i;
lastlow=ExtLowBuffer;
ExtZigzagBuffer=lastlow;
}
if(ExtHighBuffer!=0.0 && ExtLowBuffer==0.0)
{
lasthigh=ExtHighBuffer;
lasthighpos=i;
ExtZigzagBuffer=lasthigh;
whatlookfor=-1;
}
break;
case -1: // look for lawn
if(ExtHighBuffer!=0.0 && ExtHighBuffer>lasthigh && ExtLowBuffer==0.0)
{
ExtZigzagBuffer[lasthighpos]=0.0;
lasthighpos=i;
lasthigh=ExtHighBuffer;
ExtZigzagBuffer=lasthigh;
}
if(ExtLowBuffer!=0.0 && ExtHighBuffer==0.0)
{
lastlow=ExtLowBuffer;
lastlowpos=i;
ExtZigzagBuffer=lastlow;
whatlookfor=1;
}
break;
}
}
//--- done
return(rates_total);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int InitializeAll()
{
ArrayInitialize(ExtZigzagBuffer,0.0);
ArrayInitialize(ExtHighBuffer,0.0);
ArrayInitialize(ExtLowBuffer,0.0);
//--- first counting position
return(Bars-InpDepth);
}
//+------------------------------------------------------------------+
3. Базовые настройки индикатора.
Базовый ZigZag строит линию, основываясь на минимальном процентном соотношении цены.
Depth – минимальное количество свечей как интервал между экстремумами (максимумами или минимумами);
Deviation – минимальное количество пунктов в процентах между минимумами или максимумами цены двух соседних свечей;
Backstep – это минимальное количество свечей между локальными экстремумами на участке которого не будет строиться второй минимум/максимум, если он отличен от предыдущего на показатель Deviation.
Необходимо знать, что сам по себе индикатор ZigZag не располагает свойствами, достаточными для прогнозирования ценового движения, индикатор представляет дополнительный фактор к анализу, стратегии, подходу.
4. Формула расчёта индикатора.
5. Видеообзор индикатора.
Что нужно знать об индикаторе ZigZag
6. Автор индикатора.
Автор неизвестен.
СПИСОК И КОМПЛЕКТАЦИЯ ВСЕХ ИНДИКАТОРОВ
_____3_level_zz_semafor_tro_modified_version EX & MQL
_aa_zigzag_pointer EX & MQL
_zzyma EX & MQL
24-01-ZigZag_Separate EX & MQL
24-03-ZUP_v14 EX & MQL
24-05-Зиг заг без перерисовки EX & MQL
AddZZLegLength EX & MQL
AddZZLegRange EX & MQL
ang_azz-fx-col-txt EX & MQL
ang_AZZ-fx-col-txt_v1 EX & MQL
channel_zigzag EX & MQL
Channel_ZZ_v2_e EX & MQL
cor-zig-zag EX & MQL
custom_zigzag EX & MQL
dt_zz EX & MQL
DT_ZZ_optimized EX & MQL
dt_zz_supres EX & MQL
DT-ZigZag EX & MQL
dt-zigzag-atr EX & MQL
DT-ZigZag-Lauer EX & MQL
dz_nonlag_ma_nrp_3_amp_mtf_amp_alerts_amp_arrows_amp_lines_amp__zigzag EX & MQL
dz_nonlag_ma_nrp_3_amp_mtf_amp_alerts_amp_arrows_amp_lines_amp__zigzag_nmc EX & MQL
fractal_zigzag EX & MQL
fractal-channel_buffers EX & MQL
fractals_takbir_m EX & MQL
Gann_SQ9_A2 EX & MQL
GannZigZag EX & MQL
High_Low v2 (ZigZag) EX & MQL
i_model_zzм EX & MQL
i_zigzag_nk EX & MQL
LabTrendZigZag_v1 EX & MQL
LabTrendZigZag_v1.1 EX & MQL
LabTrendZigZag_v1.2 EX & MQL
NonLagZigZag_v4 EX & MQL
nonlagzigzag_v4_mod-mtf_nmc EX & MQL
Parabolic_ZZ EX & MQL
Parabolic_ZZ_1 EX & MQL
post-zigzag EX & MQL
simplezz EX & MQL
unizigzagchannel_v1.5 EX & MQL
unizigzagsemaphore_v4 EX & MQL
XLab_ZZ EX & MQL
ZIG ZAG NRP EX & MQL
zigandzag1 EX
zigpips EX & MQL
ZigZag of macd 2 color histo EX & MQL
ZigZag Pointer EX & MQL
ZigZag SG EX & MQL
ZigZag stairs EX & MQL
ZigZag Triangle 0.382-0.786 EX & MQL
Zigzag with Fibo EX
ZigZag_AutoChannel EX & MQL
ZigZag_Channels EX & MQL
zigzag_counter EX & MQL
ZigZag_Fibo_v1beta EX & MQL
ZigZag_Fibo_v2beta EX & MQL
ZigZag_Fibo_v2beta1 EX & MQL
ZigZag_new_nen4 EX & MQL
zigzag_of_macd EX & MQL
ZigZag_Pointer_alert EX
ZigZag_Pointer_alert_email EX & MQL
ZigZag_Pointer+alert+email EX & MQL
ZigZag_Pointer_alert_only at turning points EX & MQL
zigzag_red EX & MQL
zigzag_tro_modified_version EX & MQL
zigzag_white EX & MQL
zigzag_with_alerts EX & MQL
zigzag_with_chanel_raysonelegy EX & MQL
zigzag_with_patterns EX & MQL
zigzag_with_patterns_and_values EX & MQL
ZigZag_with_patterns_and_values mtf+alerts EX & MQL
ZigZag_wLabel EX & MQL
zigzagarrow EX & MQL
ZigZagE EX & MQL
ZigZagFirst EX & MQL
ZIGZAG-FRACTALS EX & MQL
ZigZag-HH-HL-LH-LL-Indicator EX & MQL
zigzaghistory EX & MQL
zigzaghistoryll EX & MQL
ZigZagOnParabolic EX & MQL
ZigZagWithValue_Bars EX & MQL
ZigZagWithValue_Bars 2 EX & MQL
zigzagzug.v1.1 EX & MQL
ZZ NRP AA LB TT [x3] EX & MQL
ZZ NRP AA LB TT [x4] EX & MQL
ZZ NRP AA TT [x3] EX & MQL
ZZ_Ensign_Fibo EX & MQL
zz_fibo_generator EX & MQL
ZZ-Fractal A EX & MQL
ZZLegLength pip(%) EX & MQL
ZZLengthAndDiff EX & MQL
ZZ-TEST_STATS EX & MQL
ОПИСАНИЯ И СКРИНЫ ИНДИКАТОРОВ
_____3_level_zz_semafor_tro_modified_version

_aa_zigzag_pointer

_zzyma

24-01-ZigZag_Separate

24-03-ZUP_v14

24-05-Зиг заг без перерисовки

AddZZLegLength

AddZZLegRange
без скрина
ang_azz-fx-col-txt

ang_AZZ-fx-col-txt_v1
без скрина
channel_zigzag

Channel_ZZ_v2_e

cor-zig-zag

custom_zigzag

dt_zz

DT_ZZ_optimized
без скрина
dt_zz_supres

DT-ZigZag

dt-zigzag-atr

DT-ZigZag-Lauer

dz_nonlag_ma_nrp_3_amp_mtf_amp_alerts_amp_arrows_amp_lines_amp__zigzag

dz_nonlag_ma_nrp_3_amp_mtf_amp_alerts_amp_arrows_amp_lines_amp__zigzag_nmc
без скрина
fractal_zigzag

fractal-channel_buffers

fractals_takbir_m

Gann_SQ9_A2

GannZigZag

High_Low v2 (ZigZag)

i_model_zz

i_zigzag_nk

LabTrendZigZag_v1

LabTrendZigZag_v1.1
без скрина
LabTrendZigZag_v1.2
без скрина
NonLagZigZag_v4

nonlagzigzag_v4_mod-mtf_nmc
без скрина
Parabolic_ZZ

Parabolic_ZZ_1
без скрина
post-zigzag

simplezz
без скрина
unizigzagchannel_v1.5

unizigzagsemaphore_v4

XLab_ZZ

ZIG ZAG NRP

zigandzag1

zigpips

ZigZag of macd 2 color histo

ZigZag Pointer
без скрина, стрелочный индикатор
ZigZag SG

ZigZag stairs

ZigZag Triangle 0.382-0.786

Zigzag with Fibo

ZigZag_AutoChannel

ZigZag_Channels
без скрина
zigzag_counter

ZigZag_Fibo_v1beta
без скрина
ZigZag_Fibo_v2beta

ZigZag_Fibo_v2beta1
без скрина
ZigZag_new_nen4
без скрина
zigzag_of_macd

ZigZag_Pointer_alert
без скрина
ZigZag_Pointer_alert_email
без скрина
ZigZag_Pointer+alert+email
без скрина
ZigZag_Pointer_alert_only at turning points
без скрина
zigzag_red

zigzag_tro_modified_version

zigzag_white

zigzag_with_alerts
без скрина
zigzag_with_chanel_raysonelegy

zigzag_with_patterns

zigzag_with_patterns_and_values

ZigZag_with_patterns_and_values mtf+alerts
без скрина
ZigZag_wLabel

zigzagarrow

ZigZagE
без скрина
ZigZagFirst
без скрина
ZIGZAG-FRACTALS

ZigZag-HH-HL-LH-LL-Indicator

zigzaghistory

zigzaghistoryll
без скрина
ZigZagOnParabolic

ZigZagWithValue_Bars

ZigZagWithValue_Bars 2
без скрина
zigzagzug.v1.1

ZZ NRP AA LB TT [x3]

ZZ NRP AA LB TT [x4]

ZZ NRP AA TT [x3]

ZZ_Ensign_Fibo
без скрина
zz_fibo_generator

ZZ-Fractal A
без скрина
ZZLegLength pip(%)

ZZLengthAndDiff

ZZ-TEST_STATS
ПОЛЕЗНЫЕ ССЫЛКИ
Как установить индикатор в терминал МТ4
Как тестировать индикатор в терминале МТ4
Как настроить уведомления на почту в MT4
Как компилировать старые MQ4 файлы под новые билды MetaTrader 4
Расшифровка часто встречающихся сокращений в названии индикаторов.
alert - перевод с английского - сигнал. Индикатор при достижении определённых значений, установленных пользователем в настройках, посылает сигнал (разными способами - звуковой, уведомление на почту и так далее).
Пример:
arrows - перевод с английского - стрелки. Индикатор может отображать стрелками на графике возможное движение цены в этом направлении.
Пример:
Histogram (Hist) - перевод с английского - гистограмма. Показания индикатора в виде гистограммы.
Пример:
mtf - Multi Time Frame - перевод с английского - мультитаймфреймовый индикатор. Индикатор на установленном таймфрейме отображает данные с более старшего периода. Пока свеча старшего периода не закрыта - индикатор может менять свои показания.
Пример:
Smoothed - перевод с английского - сглаженный. Индикатор на установленном таймфрейме отображается в виде плавных линий.
Пример:
ИСТОРИЯ ОБНОВЛЕНИЙ
НАБОР ZigZag (2016.11.04) 226 загрузок






