nrpusupertrendxarrows_mtfvalerts.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «nrpusupertrendxarrows_mtfvalerts.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой пользовательский индикатор для платформы MetaTrader 4, отображающий направление тренда на графике цены с помощью стрелок двух цветов. Индикатор рассчитывает аналитические линии на основе скользящей средней и волатильности, а при смене направления тренда отрисовывает стрелки на уровне минимумов и максимумов баров.
Поддерживается многотаймфреймный анализ: индикатор способен получать данные с более старших таймфреймов, вызывая собственный расчёт на соответствующем периоде. Встроена система уведомлений, которая срабатывает при смене сигнала — поддерживаются всплывающие сообщения, email-рассылка, push-уведомления и звуковые сигналы.
Входные параметры позволяют настраивать таймфрейм, период расчёта, множитель волатильности, толщину стрелок и линий, а также индивидуально включать или отключать каждый тип уведомлений. Индикатор работает в основном графике и использует два буфера для отрисовки стрелок.
Настройки программы
| Настройка | Описание |
|---|---|
| TimeFrame | Таймфрейм — Текстовый параметр, указывающий таймфрейм для анализа (например, M1, H1, D1) или специальное значение |
| Nbr_Periods | Количество периодов — Целое число, задающее период усреднения для расчёта волатильности |
| Multiplier | Множитель — Числовой коэффициент, определяющий чувствительность расчёта волатильности |
| alertsOn | Уведомления включены — Переключатель, включающий или отключающий систему уведомлений в целом |
| alertsOnCurrent | Уведомления для текущего бара — Переключатель, определяющий, учитывать ли текущий бар при проверке условий уведомлений |
| alertsMessage | Всплывающие сообщения — Переключатель, включающий или отключающий всплывающие сообщения при смене сигнала |
| alertsNotification | Push-уведомления — Переключатель, включающий или отключающий push-уведомления при смене сигнала |
| alertsSound | Звуковые сигналы — Переключатель, включающий или отключающий звуковые сигналы при смене сигнала |
| alertsEmail | Email-уведомления — Переключатель, включающий или отключающий отправку email-уведомлений при смене сигнала |
| arrowthickness | Толщина стрелок — Целое число, задающее толщину стрелок на графике |
| linethickness | Толщина линий — Целое число, задающее толщину линий на графике |
Поиск по коду файла
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Blue
#property indicator_color2 Red
extern string TimeFrame = "Current time frame";
extern int Nbr_Periods = 10;
extern double Multiplier = 1.7;
extern bool alertsOn = FALSE;
extern bool alertsOnCurrent = FALSE;
extern bool alertsMessage = TRUE;
extern bool alertsNotification = TRUE;
extern bool alertsSound = FALSE;
extern bool alertsEmail = FALSE;
extern int arrowthickness = 1;
extern int linethickness = 2;
double G_ibuf_128[];
double G_ibuf_132[];
double G_ibuf_136[];
double G_ibuf_140[];
double G_ibuf_144[];
string Gs_148;
bool G_bool_156;
bool G_bool_160;
int G_timeframe_164;
string Gs_nothing_168 = "nothing";
datetime G_time_176;
string Gsa_180[] = {"M1", "M5", "M15", "M30", "H1", "H4", "D1", "W1", "MN"};
int Gia_184[] = {1, 5, 15, 30, 60, 240, 1440, 10080, 43200};
int init() {
// код доступен только после оплаты
}
int deinit() {
return (0);
}
int start() {
// код доступен только после оплаты
}
double iatr_12;
double Ld_20;
double ima_28;
int shift_36;
int Li_0 = IndicatorCounted();
if (Li_0 < 0) return (-1);
if (Li_0 > 0) Li_0--;
int Li_4 = MathMin(Bars - Li_0, Bars - 1);
if (G_bool_156) {
G_ibuf_128[0] = Li_4 + 1;
return (0);
}
if (G_bool_160 || G_timeframe_164 == Period()) {
for (int Li_8 = Li_4; Li_8 >= 0; Li_8--) {
iatr_12 = iATR(NULL, 0, Nbr_Periods, Li_8);
Ld_20 = Close[Li_8];
ima_28 = iMA(NULL, 0, 1, 0, MODE_SMA, PRICE_MEDIAN, Li_8);
G_ibuf_136[Li_8] = ima_28 + Multiplier * iatr_12;
G_ibuf_140[Li_8] = ima_28 - Multiplier * iatr_12;
G_ibuf_144[Li_8] = G_ibuf_144[Li_8 + 1];
if (Ld_20 > G_ibuf_136[Li_8 + 1]) G_ibuf_144[Li_8] = 1;
if (Ld_20 < G_ibuf_140[Li_8 + 1]) G_ibuf_144[Li_8] = -1;
if (G_ibuf_144[Li_8] > 0.0) G_ibuf_140[Li_8] = MathMax(G_ibuf_140[Li_8], G_ibuf_140[Li_8 + 1]);
else G_ibuf_136[Li_8] = MathMin(G_ibuf_136[Li_8], G_ibuf_136[Li_8 + 1]);
G_ibuf_128[Li_8] = EMPTY_VALUE;
G_ibuf_132[Li_8] = EMPTY_VALUE;
if (G_ibuf_144[Li_8] != G_ibuf_1Показано первые 50% кода (символов: 4216)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.