follow_alert.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «follow_alert.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор реализует логику ZigZag для MetaTrader 5, отображая на графике значимые минимумы и максимумы цены в виде стрелок двух цветов. Зелёные стрелки отмечают подтверждённые минимумы, красные — подтверждённые максимумы. Расчёт ведётся на основе трёх настраиваемых параметров: глубины поиска, допустимого отклонения и количества возвратов.
Ключевая особенность индикатора — отслеживание изменения направления ZigZag. При подтверждении нового экстремума и смене тренда вызывается функция Alert(), отправляющая уведомление с указанием текущего таймфрейма и символа. Также индикатор ведёт учёт позиций предыдущего и последнего экстремумов для корректного определения разворота.
В исходном коде присутствуют закомментированные блоки, предназначенные для создания объекта Фибоначчи между экстремумами, однако они в настоящее время не активны. Индикатор использует два буфера для отрисовки и работает в основном окне графика.
Настройки программы
| Настройка | Описание |
|---|---|
| ExtDepth | Глубина поиска экстремумов — количество баров влево и вправо от текущей точки, в пределах ищутся локальные минимумы и максимумы. Чем больше значение, тем меньше экстремумов будет отображено на графике. |
| ExtDeviation | Допустимое отклонение цены от экстремума, измеряемое в пунктах. Если изменение цены меньше этого значения, точка не считается значимым экстремумом и игнорируется. |
| ExtBackstep | Количество баров назад, на которых проверяется и сбрасывается предыдущее значение при обнаружении нового экстремума. Большое значение делает индикатор более консервативным, пропуская менее значимые развороты. |
Поиск по коду файла
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_width1 1
#property indicator_color2 Red
#property indicator_width2 1
extern int ExtDepth=100;
extern int ExtDeviation=75;
extern int ExtBackstep=15;
double ExtMapBuffer[];
double ExtMapBuffer2[];
int OldLastZigZag, OldPreviousZigZag;
int init()
{
// код доступен только после оплаты
}
int start()
{
// код доступен только после оплаты
}
int shift, back,lasthighpos,lastlowpos;
double val,res;
double curlow,curhigh,lasthigh,lastlow;
for(shift=Bars-ExtDepth; shift>=0; shift--)
{
val=Low[Lowest(NULL,0,MODE_LOW,ExtDepth,shift)];
if(val==lastlow) val=0.0;
else
{
lastlow=val;
if((Low[shift]-val)>(ExtDeviation*Point)) val=0.0;
else
{
for(back=1; back<=ExtBackstep; back++)
{
res=ExtMapBuffer[shift+back];
if((res!=0)&&(res>val)) ExtMapBuffer[shift+back]=0.0;
}
}
}
ExtMapBuffer[shift]=val;
val=High[Highest(NULL,0,MODE_HIGH,ExtDepth,shift)];
if(val==lasthigh) val=0.0;
else
{
lasthigh=val;
if((val-High[shift])>(ExtDeviation*Point)) val=0.0;
else
{
for(back=1; back<=ExtBackstep; back++)
{
res=ExtMapBuffer2[shift+back];
if((res!=0)&&(res<val)) ExtMapBuffer2[shift+back]=0.0;
}
}
}
ExtMapBuffer2[shift]=val;
}
lasthigh=-1; lasthighpos=Показано первые 50% кода (символов: 2673)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.