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

trend scalp (mtf + arrows + alerts).mq5

Похожие материалы по тегам

#__slope direction line.mq5MQL5 / MetaTrader 5 · 1 общих теговrange breakout @meowforex1.pineTradingView · 1 общих тегов#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit3.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit2.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit.mq4MQL4 / MetaTrader 4 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

Индикатор для MetaTrader 4, рассчитывающий трендовый триггерный фактор на основе сглаживания T3 (Tim Tillson) от нормализованного диапазона цены (разница между максимумом и минимумом за заданное количество баров). Поддерживает много таймфреймов: расчёт может выполняться на более высоком таймфрейме с интерполяцией результатов на текущем графике. Отображает уровни направления тренда, сигнальные маркеры, стрелки на графике и отправляет уведомления при смене направления.

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

НастройкаОписание
Time frame (TimeFrame) Таймфрейм — Таймфрейм для расчёта индикатора; если выбран PERIOD_CURRENT, используется таймфрейм текущего графика
Trend trigger factor bars (TTFbars) Баров триггера тренда — Количество баров, за которые определяются экстремумы высоких и низких цен для расчёта триггерного фактора
Upper level (topLine) Верхний уровень — Значение верхнего порогового уровня для формирования сигналов и отображения линий
Lower level (btmLine) Нижний уровень — Значение нижнего порогового уровня для формирования сигналов и отображения линий
T3 smoothing period (t3Period) Период T3 — Период сглаживания T3, влияющий на плавность индикаторной линии
T3 Hot (t3Hot) Коэффициент горячести T3 — Коэффициент сглаживания T3, определяющий скорость реакции индикатора на изменения цены
T3 original Tim Tillson calculation (t3Original) Исходный T3 — Использовать оригинальную формулу расчёта T3 Тим Тиллисона вместо модифицированной
Show top and bottom levels true/false? (ShowTopBtmLevels) Показывать уровни — Отображать линии верхнего и нижнего уровней на графике
Show colored signals true/false? (showSignals) Показывать сигналы — Отображать цветные маркеры сигнальных уровней на графике
Alerts on true/false? (alertsOn) Уведомления включены — Включить или выключить все типы уведомлений
Alerts on current open bar true/false? (alertsOnCurrent) Уведомления на текущем баре — Отправлять уведомления по текущему открытому бару вместо следующего
Alerts pop-up message true/false? (alertsMessage) Сообщение уведомления — Показывать всплывающее сообщение при срабатывании уведомления
Alerts sound true/false? (alertsSound) Звук уведомления — Воспроизводить звуковой сигнал при срабатывании уведомления
Alerts email true/false? (alertsEmail) Email уведомление — Отправлять email-уведомление при срабатывании
Alerts push notification true/false? (alertsNotify) Push-уведомление — Отправлять push-уведомление на мобильное устройство
Show arrows true/false? (arrowsVisible) Стрелки видимы — Отображать графические стрелки на графике
Arrows newest higher time frame bar true/false? (arrowsOnNewest) Стрелки на новом баре — Размещать стрелки на самом новом баре более высокого таймфрейма
Upper arrow gap (arrowsUpperGap) Зазор верхних стрелок — Множитель зазора для стрелок вверх относительно ATR
Lower arrow gap (arrowsLowerGap) Зазор нижних стрелок — Множитель зазора для стрелок вниз относительно ATR
Arrows ID (arrowsIdentifier) Идентификатор стрелок — Префикс имён объектов-стрелок для их уникальной идентификации на графике
Arrows on zero cross true/false? (arrowsOnZeroCross) Стрелки при пересечении нуля — Показывать стрелки при смене направления тренда
Arrows on levels break true/false? (arrowsOnLevelsBreak) Стрелки при пробое уровня — Показывать стрелки при пересечении сигнальных уровней
Arrows on levels retrace true/false? (arrowsOnLevelsRetrace) Стрелки при откате уровня — Показывать стрелки при откате от сигнального уровня
Arrows up color (arrowsUpColor) Цвет стрелок вверх — Цвет стрелок, указывающих на рост
Arrows down color (arrowsDnColor) Цвет стрелок вниз — Цвет стрелок, указывающих на падение
Interpolate in multi time frame true/false? (Interpolate) Интерполяция — Интерполировать данные между барами более высокого таймфрейма для плавности на текущем графике
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers 4

#property indicator_label1  "Level"
#property indicator_color1  clrDimGray
#property indicator_style1  STYLE_DOT

#property indicator_label2  "Trend trigger factor"
#property indicator_color2  clrDimGray
#property indicator_width2  2

#property indicator_label3  "Up signal"
#property indicator_color3  clrDeepSkyBlue
#property indicator_width3  2

#property indicator_label4  "Down signal"
#property indicator_color4  clrPaleVioletRed
#property indicator_width4  2
#property strict

extern ENUM_TIMEFRAMES TimeFrame    = PERIOD_CURRENT;     // Time frame
input int     TTFbars               = 15;                 // Trend trigger factor bars
input int     topLine               = 100;                // Upper level
input int     btmLine               = -100;               // Lower level
input double  t3Period              = 3;                  // T3 smoothing period
input double  t3Hot                 = 0.7;                // T3 Hot
input bool    t3Original            = false;              // T3 original Tim Tillson calculation
input bool    ShowTopBtmLevels      = true;               // Show top and bottom levels true/false?
input bool    showSignals           = true;               // Show colored signals true/false?
input bool    alertsOn              = true;               // Alerts on true/false?
input bool    alertsOnCurrent       = false;              // Alerts on current open bar true/false?
input bool    alertsMessage         = true;               // Alerts pop-up message true/false?
input bool    alertsSound           = false;              // Alerts sound true/false?
input bool    alertsEmail           = false;              // Alerts email true/false?
input bool    alertsNotify          = false;              // Alerts push notification true/false?
input bool    arrowsVisible         = false;              // Show arrows true/false? 
input bool    arrowsOnNewest        = true;               // Arrows newest higher time frame bar true/false?
input double  arrowsUpperGap        = 0.5;                // Upper arrow gap
input double  arrowsLowerGap        = 0.5;                // Lower arrow gap
input string  arrowsIdentifier      = "TS Arrows1";       // Arrows ID
input bool    arrowsOnZeroCross     = false;              // Arrows on zero cross true/false?
input bool    arrowsOnLevelsBreak   = true;               // Arrows on levels break true/false? 
input bool    arrowsOnLevelsRetrace = false;              // Arrows on levels retrace true/false?
input color   arrowsUpColor         = clrDeepSkyBlue;     // Arrows up color
input color   arrowsDnColor         = clrRed;             // Arrows down color
input bool    Interpolate           = true;               // Interpolate in multi time frame true/false?

double ttf[],lev[],sigu[],sigd[],trend[],trends[],count[];
string indicatorFileName;
#define _mtfCall(_buff,_ind) iCustom(NULL,TimeFrame,indicatorFileName,PERIOD_CURRENT,TTFbars,topLine,btmLine,t3Period,t3Hot,t3Original,ShowTopBtmLevels,showSignals,alertsOn,alertsOnCurrent,alertsMessage,alertsSound,alertsEmail,alertsNotify,arrowsVisible,arrowsOnNewest,arrowsUpperGap,arrowsLowerGap,arrowsIdentifier,arrowsOnZeroCross,arrowsOnLevelsBreak,arrowsOnLevelsRetrace,arrowsUpColor,arrowsDnColor,_buff,_ind)

int OnInit()
{
      // код доступен только после оплаты
   }
void OnDeinit(const int reason)
{ 
    string lookFor       = arrowsIdentifier+":";
    int    lookForLength = StringLen(lookFor);
    for (int i=ObjectsTotal()-1; i>=0; i--)
    {
       string objectName = ObjectName(i);
       if (StringSubstr(objectName,0,lookForLength) == lookFor) ObjectDelete(objectName);
    }
}

int OnCalculate(const int rates_total,const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tickVolume[],
                const long &volume[],
                const int &spread[])
{
      // код доступен только после оплаты
   }
   int i,counted_bars=prev_calculated;
      if(counted_bars<0) return(-1);
      if(counted_bars>0) counted_bars--;
         int limit = fmin(rates_total-counted_bars,rates_total-2); count[0]=limit;
            if (TimeFrame!=_Period)
            {
               limit = (int)fmax(limit,fmin(rates_total-1,_mtfCall(6,0)*TimeFrame/_Period));
               for (i=limit;i>=0 && !_StopFlag; i--)
               {
                  int y = iBarShift(NULL,TimeFrame,Time[i]);
                     lev[i]    = _mtfCall(0,y);
                     ttf[i]    = _mtfCall(1,y);
                     trend[i]  = _mtfCall(4,y);
                     trends[i] = _mtfCall(5,y);

                     if (i<rates_total-1)
                     {
                       if (ShowTopBtmLevels)
                       {
                          trend[i] = trend[i+1];
                          if (ttf[i] > 0) trend[i] =  1;
                          if (ttf[i] < 0) trend[i] = -1;
                          if (trend[i]== 1) lev[i] = topLine;
                          if (trend[i]==-1) lev[i] = btmLine;
                       }
                       if (showSignals)
                       {
                          trends[i] = 0;
                          if (ttf[i] > topLine) trends[i] =  1;
                          if (ttf[i] < btmLine) trends[i] = -1;
                          if (trends[i]== 1) sigu[i] = topLine;
                          if (trends[i]==-1) sigd[i] = btmLine;
                       }

                     if (!Interpolate || (i>0 && y==iBarShift(NULL,TimeFrame,Time[i-1]))) continue;

                     #define _interpolate(buff) buff[i+k] = buff[i]+(buff[i+n]-buff[i])*k/n
                     int n,k; datetime btime = iTime(NULL,TimeFrame,y);
                        for(n = 1; (i+n)<rates_total && Time[i+n] >= btime; n++) continue;	
                        for(k = 1; k<n && (i+n)<rates_t

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

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

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

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

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

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

Стоимость полного кода
976,60₽ ≈ $11.94