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

tma+cg mladen alerts mtf nrp.mq5

Вы автор или правообладатель?

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

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

О программе

Данный продукт представляет собой пользовательский индикатор для платформы MetaTrader 4, реализующий расчёт скользящей средней TMA (Triangular Moving Average) с набором полос на основе различных отклонений. Индикатор отрисовывает на графике среднюю линию, пары верхних и нижних полос (от 1.618 до 3.236 стандартных отклонений), а также стрелки сигналов вверх и вниз при определённых ценовых условиях.

Индикатор поддерживает работу на разных таймфреймах (multitimeframe), включая интерполяцию данных между таймфреймами для сглаживания отображения. Внутренняя логика использует рекурсивный вызов самого себя через режимы calculateTma и returnBars для корректного расчёта значений на старших таймфреймах.

В индикаторе реализована система уведомлений: всплывающие сообщения, звуковые сигналы и отправка email при срабатывании условий пробоя ценой верхней или нижней полосы. Условия срабатывания могут настраиваться для цен High, Low или Close. Автор указывает, что индикатор не перерисовывается (no repaint).

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

НастройкаОписание
TimeFrame Таймфрейм — Таймфрейм для расчёта индикатора (по умолчанию «current time frame»).
HalfLength Половина длины — Половина длины скользящей средней TMA (по умолчанию 56).
AppliedPrice Применяемая цена — Тип цены для расчёта (по умолчанию взвешенная цена — PRICE_WEIGHTED).
BandsDeviations1 Отклонение полосы 1 — Первое отклонение для расчёта верхней и нижней полосы (по умолчанию 1.618).
BandsDeviations2 Отклонение полосы 2 — Второе отклонение для расчёта верхней и нижней полосы (по умолчанию 2.0).
BandsDeviations3 Отклонение полосы 3 — Третье отклонение для расчёта верхней и нижней полосы (по умолчанию 2.236).
BandsDeviations4 Отклонение полосы 4 — Четвёртое отклонение для расчёта верхней и нижней полосы (по умолчанию 2.5).
BandsDeviations5 Отклонение полосы 5 — Пятое отклонение для расчёта верхней и нижней полосы (по умолчанию 2.618).
BandsDeviations6 Отклонение полосы 6 — Шестое отклонение для расчёта верхней и нижней полосы (по умолчанию 3.0).
BandsDeviations7 Отклонение полосы 7 — Седьмое отклонение для расчёта верхней и нижней полосы (по умолчанию 3.236).
DrawArrows Отрисовка стрелок — Переключатель отрисовки стрелок сигналов на графике (по умолчанию true).
UpArrowSymbolCode Код стрелки вверх — Код символа для стрелки вверх (по умолчанию 246).
DownArrowSymbolCode Код стрелки вниз — Код символа для стрелки вниз (по умолчанию 248).
alertsOn Уведомления включены — Включает или отключает все уведомления (по умолчанию false).
alertsOnCurrent Уведомления на текущем баре — При true уведомления срабатывают на текущем баре, при false — на предыдущем (по умолчанию false).
alertsOnHighLow Уведомления по High/Low — При true проверяются условия пробоя по ценам High и Low, при false — по Close (по умолчанию false).
Interpolate Интерполяция — Переключатель интерполяции значений между таймфреймами (по умолчанию true).
Получить полный код

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

#property description "edited by eevviill"
#property description "no repaint"

#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;
extern bool   DrawArrows          = true;
extern int    UpArrowSymbolCode   = 246;
extern int    DownArrowSymbolCode = 248;
extern bool   alertsOn            = false;
extern bool   alertsOnCurrent     = false;
extern bool   alertsOnHighLow     = false;
extern bool   Interpolate         = true;

bool   alertsMessage   = false;
bool   alertsSound     = false;
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 OnInit()
{
      // код доступен только после оплаты
   }

int deinit() { return(0); }

int start()
{
      // код доступен только после оплаты
   }
   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;
 	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,Bands

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

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

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

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

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

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

Стоимость полного кода
1 355,70₽ ≈ $16.57