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

TMA+CG

tma+cg mladen alerts mtf nrp_3.mq5
Вы автор или правообладатель?

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

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

О программе

[Перевод на русском языке]

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

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

Встроенная система уведомлений позволяет получать алерты через всплывающие сообщения, звуковые сигналы и электронную почту. Алерты срабатывают при пробое ценой полос, появлении стрелок и других заданных событиях. Доступна настройка ограничения количества обрабатываемых баров и режима однократного расчёта на бар.

Продукт представляет собой пользовательский индикатор для платформы MetaTrader 4, написанный на языке MQL4.

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

НастройкаОписание
TimeFrame Таймфрейм — Строковый параметр выбора таймфрейма для расчётов (например, M1, H1, D1 или current time frame).
HalfLength Половина длины — Половина длины расчётного периода скользящей средней TMA.
AppliedPrice Применяемая цена — Тип цены, используемый для расчётов (вспомогательное числовое значение).
BandsDeviations1 Отклонение полос 1 — Множитель стандартного отклонения для первой пары полос.
BandsDeviations2 Отклонение полос 2 — Множитель стандартного отклонения для второй пары полос.
BandsDeviations3 Отклонение полос 3 — Множитель стандартного отклонения для третьей пары полос.
BandsDeviations4 Отклонение полос 4 — Множитель стандартного отклонения для четвёртой пары полос.
BandsDeviations5 Отклонение полос 5 — Множитель стандартного отклонения для пятой пары полос.
BandsDeviations6 Отклонение полос 6 — Множитель стандартного отклонения для шестой пары полос.
BandsDeviations7 Отклонение полос 7 — Множитель стандартного отклонения для седьмой пары полос.
once_at_bar Однократный расчёт на баре — Включает однократный расчёт на баре (без пересчёта при каждом тике).
Bars_limit Лимит баров — Максимальное количество баров для обработки.
DrawArrows Рисовать стрелки — Включает или отключает отображение стрелок-меток на графике.
UpArrowSymbolCode Код стрелки вверх — Код символа для отображения стрелки вверх на графике.
DownArrowSymbolCode Код стрелки вниз — Код символа для отображения стрелки вниз на графике.
alertsOn Алерты включены — Главный переключатель, включающий или отключающий всю систему уведомлений.
alertsOnCurrent Алерты на текущем баре — Задаёт проверку уведомлений на текущем баре.
alertsOnHighLow Алерты по High/Low — Включает уведомления при пробое верхней или нижней полосы ценой High/Low.
alertsOnClose Алерты по закрытию — Включает уведомления при закрытии цены с пробоем полос.
alertsOnArrows Алерты по стрелкам — Включает уведомления при появлении стрелок на графике.
Interpolate Интерполяция — Включает или отключает интерполяцию значений между барами мультитаймфрейм-режима.
alertsMessage Алерты-сообщения — Включает всплывающие текстовые уведомления на графике.
alertsSound Звуковые алерты — Включает звуковые уведомления.
alertsEmail Алерты по email — Включает отправку уведомлений по электронной почте.
Получить полный код

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

#property description "edited4 by eevviill"
#property description "no repaint,arr alert,bars lim"

#property indicator_chart_window
#property indicator_buffers 17
#property indicator_color1   clrDimGray
#property indicator_color2   clrHotPink
#property indicator_color3   clrSpringGreen
#property indicator_color4   clrHotPink
#property indicator_color5   clrSpringGreen
#property indicator_color6   clrHotPink
#property indicator_color7   clrSpringGreen
#property indicator_color8   clrHotPink
#property indicator_color9   clrSpringGreen
#property indicator_color10  clrHotPink
#property indicator_color11  clrSpringGreen
#property indicator_color12  clrHotPink
#property indicator_color13  clrSpringGreen
#property indicator_color14  clrHotPink
#property indicator_color15  clrSpringGreen
#property indicator_color16  clrLime
#property indicator_color17  clrRed
#property indicator_style1     STYLE_DOT
#property indicator_style2     STYLE_DOT
#property indicator_style3     STYLE_DOT
#property indicator_style4     STYLE_DOT
#property indicator_style5     STYLE_DOT
#property indicator_style6     STYLE_DOT
#property indicator_style7     STYLE_DOT
#property indicator_style8     STYLE_DOT
#property indicator_style9     STYLE_DOT
#property indicator_style10    STYLE_DOT
#property indicator_style11    STYLE_DOT
#property indicator_style12    STYLE_SOLID
#property indicator_style13    STYLE_SOLID
#property indicator_style14    STYLE_SOLID
#property indicator_style15    STYLE_SOLID
#property  indicator_width1 1
#property  indicator_width2 1
#property  indicator_width3 1
#property  indicator_width4 1
#property  indicator_width5 1
#property  indicator_width6 1
#property  indicator_width7 1
#property  indicator_width8 1
#property  indicator_width9 1
#property  indicator_width10 1
#property  indicator_width11 1
#property  indicator_width12 1
#property  indicator_width13 1
#property  indicator_width14 2
#property  indicator_width15 2
#property  indicator_width16 1
#property  indicator_width17 1
/*
enum enPrices
{
   pr_close,      // Close
   pr_open,       // Open
   pr_high,       // High
   pr_low,        // Low
   pr_median,     // Median
   pr_typical,    // Typical
   pr_weighted,   // Weighted
   pr_average,    // Average (high+low+open+close)/4
   pr_medianb,    // Average median body (open+close)/2
   pr_tbiased,    // Trend biased price
   pr_tbiased2,   // Trend biased (extreme) price
   pr_hl,         // High/Low
   pr_oc,         // Open/Close
   pr_haclose,    // Heiken ashi close
   pr_haopen ,    // Heiken ashi open
   pr_hahigh,     // Heiken ashi high
   pr_halow,      // Heiken ashi low
   pr_hamedian,   // Heiken ashi median
   pr_hatypical,  // Heiken ashi typical
   pr_haweighted, // Heiken ashi weighted
   pr_haaverage,  // Heiken ashi average
   pr_hamedianb,  // Heiken ashi median body
   pr_hatbiased,  // Heiken ashi trend biased price
   pr_hatbiased2, // Heiken ashi trend biased (extreme) price
   pr_hahl,       // Heiken ashi High/Low
   pr_haoc        // Heiken ashi Open/Close
};
*/

extern string TimeFrame           = "current time frame";

extern int    HalfLength          = 56;

extern int    AppliedPrice        = PRICE_WEIGHTED;
extern double BandsDeviations1    = 1.618;
extern double BandsDeviations2    = 2.0;
extern double BandsDeviations3    = 2.236;
extern double BandsDeviations4    = 2.5;
extern double BandsDeviations5    = 2.618;
extern double BandsDeviations6    = 3.0;
extern double BandsDeviations7    = 3.236;
input bool once_at_bar = false;
input int Bars_limit = 200;
extern bool   DrawArrows          = true;
extern int    UpArrowSymbolCode   = 233;
extern int    DownArrowSymbolCode = 234;
extern bool   alertsOn            = true;
extern bool   alertsOnCurrent     = false;
extern bool   alertsOnHighLow     = false;
input bool alertsOnClose = false;
input bool alertsOnArrows = true;
extern bool   Interpolate         = true;

input bool   alertsMessage   = true;
input bool   alertsSound     = false;
input bool   alertsEmail     = false;

double tmBuffer[], upBuffer1[], dnBuffer1[], upBuffer2[], dnBuffer2[], upBuffer3[], dnBuffer3[], 
upBuffer4[], dnBuffer4[], upBuffer5[], dnBuffer5[], upBuffer6[], dnBuffer6[], upBuffer7[], dnBuffer7[], 
wuBuffer[], wdBuffer[], upArrow[], dnArrow[], prices[];

string IndicatorFileName;
bool   calculatingTma = false;
bool   returningBars  = false;
int    timeFrame;
int prev_bars;

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

int deinit() { return(0); }

int start()
{
      // код доступен только после оплаты
   }
if(once_at_bar && Bars==prev_bars) return(0);
prev_bars=Bars;

   int counted_bars=IndicatorCounted();
   int i,limit;

   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
           limit=MathMin(Bars-1,Bars-counted_bars+HalfLength);

           if (returningBars)  { tmBuffer[0] = limit; return(0); }
           if (calculatingTma) { calculateTma(limit); return(0); }
           if (timeFrame > Period()) limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrame,IndicatorFileName,"returnBars",0,0)*timeFrame/Period()));

   if(limit<Bars-20) limit=1;
   if(limit>Bars_limit) limit=Bars_limit;

 	for(i = limit; i >= 0; i--)
   {

      int      shift1 = iBarShift(NULL,timeFrame,Time[i]);
      datetime time1  = iTime    (NULL,timeFrame,shift1);

         tmBuffer[i] = iCustom(NULL,timeFrame,IndicatorFileName,"calculateTma",HalfLength,AppliedPrice,BandsDeviations1,0,shift1);
         upBuffer1[i] = iCustom(NULL,timeFrame,IndicatorFileName,"calculateTma",HalfLength,AppliedPrice,BandsDeviations1,1,shift1);
         dnBuffer1[i] = iCustom(NULL,timeFrame,IndicatorFileName,"calculateTma",HalfLength,AppliedPrice,BandsDeviations1,2,shift1);
         upBuffer2[i] = iCustom(NULL,timeFrame,IndicatorFileName,"calculateTma",HalfLength,AppliedPrice,BandsDeviations2,1,shift1);
         dnBuffer2[i] = iCustom(NULL,timeFrame,IndicatorFileName,"calculateTma",HalfLength,AppliedPrice,BandsDeviations2,2,shift1);
         upBuffer3[i] = iCustom(NULL,timeFrame,IndicatorFileName,"calculateTma",HalfLength,AppliedPrice,BandsDeviations3,1,shift1);
         dnBuffer3[i] = iCustom(NULL,timeFrame,IndicatorFileName,"calculateTma",HalfLength,AppliedPrice,BandsDeviations3,2,shift1);
         upBuffer4[i] = iCustom(NULL,timeFrame,IndicatorFileName,"calculateTma",HalfLength,AppliedPrice,BandsDeviations4,1,shift1);
         dnBuffer4[i] = iCustom(NULL,timeFrame,IndicatorFileName,"calculateTma",HalfLength,AppliedPrice,BandsDeviations4,2,shift1);
         upBuffer5[i] = iCustom(NULL,timeFrame,IndicatorFileName,"calculateTma",HalfLength,AppliedPrice,BandsDeviations5,1,shift1);
         dnBuffer5[i] = iC

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

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

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

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

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

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

Стоимость полного кода
1 404,30₽ ≈ $17.16