← К каталогу
Исходный код · ID 4615

Exit_Signal

#pallada_exitsignal.mq5
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Это пользовательский индикатор для MetaTrader 5, предназначенный для отображения сигналов выхода на графике. Индикатор рассчитывает две линии и отмечает моменты смены направления стрелками вверх и вниз. Он также может отправлять уведомления по электронной почте, воспроизводить звук и показывать всплывающие оповещения при появлении сигналов. Настройки позволяют управлять параметрами расчёта и способами уведомления.

Настройки программы

НастройкаОписание
Fx Целочисленный параметр, влияющий на расчёт индикатора. Минимальное значение — 2.
Deviation Числовой параметр, влияющий на расчёт индикатора. Значение должно быть больше нуля.
FEMA Период быстрой экспоненциальной скользящей средней, используемой при расчёте сигналов.
SEMA Период медленной экспоненциальной скользящей средней, используемой при расчёте сигналов.
EmailON Включает или отключает отправку уведомлений по электронной почте при появлении сигнала.
SoundON Включает или отключает воспроизведение звука при появлении сигнала.
AlertON Включает или отключает всплывающие оповещения при появлении сигнала.
AlertRepeat Количество повторений оповещения при появлении сигнала, если не включён бесконечный повтор.
EndLessRepeat Если включено, оповещения и звук повторяются бесконечно до сброса, иначе ограничиваются числом из AlertRepeat.
SoundFile Имя звукового файла для воспроизведения при появлении сигнала.
Получить полный код

Поиск по коду файла

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 DodgerBlue
#property indicator_color2 Red

extern int Fx = 34;
extern double Deviation = 5.0;
extern int FEMA = 5;
extern int SEMA = 13;
extern bool EmailON = TRUE;
extern bool SoundON = TRUE;
extern bool AlertON = TRUE;
extern int AlertRepeat = 3;
extern bool EndLessRepeat = FALSE;
extern string SoundFile = "Alert";
double g_ibuf_124[];
double g_ibuf_128[];
double g_ibuf_132[];
double g_ibuf_136[];
double g_ibuf_140[];
double g_ibuf_144[];
int gi_148;
int gi_152;
int g_datetime_156;
int g_datetime_160;
int g_time_164 = 0;
int g_time_168 = 0;

int init() {
      // код доступен только после оплаты
   }

int deinit() {
   ObjectDelete("Exit_Signal_Bell");
   return (0);
}

double NormalizedX(int a_period_0, int ai_4) {
   double ld_ret_8;
   double l_ima_16;
   double l_istddev_24;
   double l_close_32;
   if (ai_4 < Bars - a_period_0) {
      l_close_32 = Close[ai_4];
      l_ima_16 = iMA(NULL, 0, a_period_0, 0, MODE_SMA, PRICE_CLOSE, ai_4);
      l_istddev_24 = iStdDev(NULL, 0, a_period_0, 0, MODE_SMA, PRICE_CLOSE, ai_4);
      ld_ret_8 = (l_close_32 - l_ima_16) / l_istddev_24;
   } else ld_ret_8 = 0;
   return (ld_ret_8);
}

double FisherNormalizedX(int ai_0, double ad_4, int ai_12) {
   double ld_ret_16;
   double ld_24;
   if (ai_12 < Bars - ai_0 && ad_4 > 0.0) {
      ld_24 = NormalizedX(ai_0, ai_12) / ad_4;
      if (ld_24 > 0.99) ld_24 = 0.99;
      if (ld_24 < -0.99) ld_24 = -0.99;
      ld_ret_16 = MathLog((ld_24 + 1.0) / (1 - ld_24)) / 2.0;
   } else ld_ret_16 = 0;
   return (ld_ret_16);
}

int start() {
      // код доступен только после оплаты
   }
   int li_4 = IndicatorCounted();
   if (li_4 < 0) return (-1);
   if (li_4 > 0) li_4--;
   int li_0 = Bars - li_4;
   for (int li_8 = 0; li_8 < li_0; li_8++) g_ibuf_144[li_8] = FisherNormalizedX(Fx, Deviation, li_8);
   for (li_8 = 0; li_8 < li_0; li_8++) g_ibuf_140[li_8] = iMAOnArray(g_ibuf_144, Bars, SEMA, 0, MODE_EMA, li_8);
   for (li_8 = 0; li_8 < li_0; li_8++) {
      if (iMAOnArray(g_ibuf_144, Bars, FEMA, 0, MODE_EMA, li_8) > g_ibuf_140[li_8]) {
         g_ibuf_132[li_8] = iMAOnArray(g_ibuf_144, Bars, FEMA, 0, MODE_EMA, li_8);
         g_ibuf_136[li_8] = 0;
      } else {
         g_ibuf_132[li_8] = 0;
         g_ibuf_136[li_8] = iMAOnArray(g_ibuf_144, Bars, FEMA, 0, MODE_EMA, li_8);
      }
   }
   for (li_8 = 0; li_8 < li_0; li_8++) {
      g_ibuf_124[li_8] = EMPTY_VALUE;
      g_ibuf_128[li_8] = EMPTY_VALUE;
      if (g_ibuf_132[li_8] != 0.0 && g_ibuf_132[li_8 + 1] == 0.0) g_ibuf_124[li_8] = Low[li_8] - 5.0 * Point;
      if (g_ibuf_136[li_8] != 0.0 && g_ibuf_136[li_8 + 1] == 0.0) g_ibuf

Показано первые 50% кода (символов: 5060)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
506₽ ≈ $6.29