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

TMA bands

price border mt4 source code @fundedmillionairess.mq5
Вы автор или правообладатель?

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

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

О программе

Данный продукт представляет собой пользовательский индикатор для платформы MetaTrader 4, написанный на языке MQL4. Он рассчитывает и отображает на графике ценовые полосы на основе скользящей средней с треугольным сглаживанием, где ширина канала определяется через средний истинный диапазон (ATR).

Индикатор использует три визуальных буфера: центральную линию, верхнюю и нижнюю границы канала, а также дополнительный буфер сигналов, фиксирующий пробои границ ценой. Поддерживается работа на различных таймфреймах, включая межтаймфреймный анализ с возможностью интерполяции данных.

Встроена система уведомлений с настраиваемыми условиями срабатывания: всплывающие сообщения, звуковые сигналы и email-оповещения. Пользователь может задавать параметры периода, множителя ATR, типа цены и поведения алертов.

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

НастройкаОписание
TimeFrame Таймфрейм — Строковый параметр, задающий таймфрейм для анализа (например, M1, H1, D1 или All tf).
HalfLength Половина длины — Целочисленный параметр, задающий половину длины сглаживания moving average.
Price Тип цены — Целочисленный параметр, определяющий тип цены для расчёта индикатора.
ATRMultiplier Множитель ATR — Числовой множитель, определяющий ширину ценового канала относительно ATR.
ATRPeriod Период ATR — Целочисленный период расчёта среднего истинного диапазона.
Interpolate Интерполяция — Логический переключатель, включающий интерполяцию данных при межтаймфреймовом анализе.
alertsOn Алерты включены — Главный логический переключатель, активирующий систему уведомлений в целом.
alertsOnCurrent Алерты на текущий бар — Логический переключатель, задающий проверку алертов по текущему бару.
alertsOnHighLow Пробой по High/Low — Логический переключатель, определяющий, что условие пробоя проверяется по ценам High/Low вместо Close.
alertsMessage Текстовые уведомления — Логический переключатель, включающий всплывающие текстовые уведомления.
alertsSound Звуковые уведомления — Логический переключатель, включающий звуковой сигнал при срабатывании алерта.
alertsEmail Email-алерты — Логический переключатель, включающий отправку email-уведомлений при срабатывании алерта.
Получить полный код

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

#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Lime
#property indicator_color2 Red
#property indicator_color3 DodgerBlue

extern string TimeFrame = "All tf";
extern int HalfLength = 61;
extern int Price = 0;
extern double ATRMultiplier = 2.6;
extern int ATRPeriod = 110;
extern bool Interpolate = TRUE;
extern bool alertsOn = FALSE;
extern bool alertsOnCurrent = FALSE;
extern bool alertsOnHighLow = FALSE;
extern bool alertsMessage = FALSE;
extern bool alertsSound = FALSE;
extern bool alertsEmail = FALSE;
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() {
      // код доступен только после оплаты
   }
   int Li_8;
   double Ld_20;
   double Ld_28;
   double Ld_36;
   int shift_44;
   int datetime_48;
   int Li_0 = IndicatorCounted();
   if (Li_0 < 0) return (-1);
   if (Li_0 > 0) Li_0--;
   int Li_16 = MathMin(Bars - 1, Bars - Li_0 + HalfLength);
   if (G_bool_160) {
      G_ibuf_132[0] = Li_16 + 1;
      return (0);
   }
   if (G_bool_156 || G_timeframe_164 == Period()) {
      for (int Li_4 = Li_16; Li_4 >= 0; Li_4--) {
         Ld_20 = (HalfLength + 1) * iMA(NULL, 0, 1, 0, MODE_SMA, Price, Li_4);
         Ld_28 = HalfLength + 1;
         Li_8 = 1;
         for (int Li_12 = HalfLength; Li_8 <= HalfLength; Li_12--) {
            Ld_20 += Li_12 * iMA(NULL, 0, 1, 0, MODE_SMA, Price, Li_4 + Li_8);
            Ld_28 += Li_12;
            if (Li_8 <= Li_4) {
               Ld_20 += Li_12 * iMA(NULL, 0, 1, 0, MODE_SMA, Price, Li_4 - Li_8);
               Ld_28 += Li_12;
            }
            Li_8++;
         }
         Ld_36 = iATR(NULL, 0, ATRPeriod, Li_4 + 10) * ATRMultiplier;
         G_ibuf_132[Li_4] = Ld_20 / Ld_28;
         G_ibuf_136[Li_4] = G_ibuf_132[Li_4] + Ld_36;
         G_ibuf_140[Li_4] = G_ibuf_132[Li_4] - Ld_36;
         G_ibuf_144[Li_4] = 0;
         if (alertsOnHighLow) {
            if (High[Li_4] > G_ibuf_136[Li_4]) G_ibuf_144[Li_4] = 1;
            if (Low[Li_4] < G_ibuf_140[Li_4]) G_ibuf_144[Li_4] = -1;
         } else {
            if (Close[Li_4] > G_ibuf_136[Li_4]) G_ibuf_144[L

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

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

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

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

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

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

Стоимость полного кода
536,70₽ ≈ $6.56