Всем доброго дня, коллеги! Андрей, просьба к вам! прикрутите к этому индикатору алерт пожалуйста.
ADX Crossing.mq4 (2 Kb) При возникновении зеленой или красной точки, индикатор должен издавать сигнал и выдавать сообщение на каком инструменте вылезла точка. Заранее благодарю.
Комментарии (8)
35 AM2 Сообщений: 16266 - Андрей
11 njdftgh Автор Сообщений: 237 - Shoom
9 droba Сообщений: 239 - Droba
11 njdftgh Автор Сообщений: 237 - Shoom
замените этот блок:
35 AM2 Сообщений: 16266 - Андрей
//| ADX Crossing.mq4
//| Amir
//+------------------------------------------------------------------+
#property copyright «Author — Amir»
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Blue
#property indicator_color2 Red
//---- input parameters
extern int ADXbars = 7;
extern int CountBars = 350;
extern bool EnableAlerts = true; // Параметр для включения/выключения алертов
bool SoundAlertOnce = true; // Параметр для однократного звукового алерта
//---- buffers
double val1[];
double val2[];
double b4plusdi, nowplusdi, b4minusdi, nowminusdi;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicator line
IndicatorBuffers(2);
SetIndexStyle(0, DRAW_ARROW);
SetIndexArrow(0, 108);
SetIndexStyle(1, DRAW_ARROW);
SetIndexArrow(1, 108);
SetIndexBuffer(0, val1);
SetIndexBuffer(1, val2);
return (0);
}
//+------------------------------------------------------------------+
//| AltrTrend_Signal_v2_2 |
//+------------------------------------------------------------------+
int start()
{
if (CountBars >= Bars) CountBars = Bars;
SetIndexDrawBegin(0, Bars — CountBars);
SetIndexDrawBegin(1, Bars — CountBars);
int shift, counted_bars = IndicatorCounted();
//---- check for possible errors
if (counted_bars < 0)
return (-1);
//---- initial zero
if (counted_bars < 1)
{
ArrayInitialize(val1, 0.0);
ArrayInitialize(val2, 0.0);
}
bool alertSent = false; // Флаг для отслеживания отправленного алерта
for (shift = CountBars; shift >= 0; shift--)
{
b4plusdi = iADX(NULL, 0, ADXbars, PRICE_CLOSE, MODE_PLUSDI, shift — 1);
nowplusdi = iADX(NULL, 0, ADXbars, PRICE_CLOSE, MODE_PLUSDI, shift);
b4minusdi = iADX(NULL, 0, ADXbars, PRICE_CLOSE, MODE_MINUSDI, shift — 1);
nowminusdi = iADX(NULL, 0, ADXbars, PRICE_CLOSE, MODE_MINUSDI, shift);
// Проверка на наличие сигнала покупки
if (b4plusdi > b4minusdi && nowplusdi < nowminusdi && val1[shift] == 0.0)
{
val1[shift] = Low[shift] — 5 * Point;
if (EnableAlerts && !alertSent)
{
Alert(«Buy signal on », Symbol() );
if (SoundAlertOnce) // Если выбран однократный звуковой алерт
{
PlaySound(«alert.wav»);
alertSent = true; // Устанавливаем флаг отправленного алерта
}
}
}
// Проверка на наличие сигнала продажи
if (b4plusdi < b4minusdi && nowplusdi > nowminusdi && val2[shift] == 0.0)
{
val2[shift] = High[shift] + 5 * Point;
if (EnableAlerts && !alertSent)
{
Alert(«Sell signal on », Symbol());
if (SoundAlertOnce) // Если выбран однократный звуковой алерт
{
PlaySound(«alert.wav»);
alertSent = true; // Устанавливаем флаг отправленного алерта
}
}
}
}
return (0);
}
8 anubias Сообщений: 1
b4minusdi = iADX(NULL, 0, ADXbars, PRICE_CLOSE, MODE_MINUSDI, shift — 1);
4 MT45PRO Сообщений: 22 - Аккаунт заблокирован
4 MT45PRO Сообщений: 22 - Аккаунт заблокирован
Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий