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

digital 30 mashek podval.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 общих тегов
Вы автор или правообладатель?

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

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

О программе

Индикатор рассчитывает модифицированную скользящую среднюю на основе алгоритма Hull MA с дополнительным сглаживанием и анализом тренда. Поддерживает 30 методов расчёта скользящих средних, различные типы ценовых данных включая Heikin Ashi, а также работу с несколькими таймфреймами. Отображает три буфера: основную линию индикатора и две линии сегментов тренда, меняющие цвет при смене направления. Индикатор может отправлять уведомления (визуальные, звуковые и по электронной почте) при изменении тренда.

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

Уведомления срабатывают при переходе тренда из одного состояния в другое (BUY/SELL сигналы). Звуковые оповещения воспроизводятся заданное количество раз с паузой между ними. Email-уведомления отправляются через встроенный функционал MetaTrader 5. Все настройки доступны в диалоге свойств индикатора и могут быть изменены пользователем без перекомпиляции.

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

НастройкаОписание
TimeFrame Таймфрейм, на котором рассчитывается индикатор. Если выбран текущий таймфрейм, индикатор работает на графике символа.
Price Тип ценовых данных, используемый для расчёта индикатора: Close, Open, High, Low, Median, Typical и другие.
Length Период расчёта основной скользящей средней, используемый в формуле индикатора.
DampingFactor(ex.0.7) (DampingFactor) Коэффициент демпфирования, влияющий на сглаживание расчёта индикатора (например, 0.7).
Shift Горизонтальный сдвиг индикатора в барах относительно текущего бара.
MA_Method Метод расчёта скользящей средней: простой, экспоненциальный, линейно-взвешенный и другие из 30 доступных вариантов.
ShowInColor Включает или отключает цветное отображение трендовых сегментов индикатора.
Number of bars counted: 0-all bars (CountBars) Количество обрабатываемых баров: 0 — все бары, положительное значение — ограниченное количество.
Alerts Текстовый разделитель для группы настроек уведомлений и email-оповещений.
AlertOn Включает или отключает визуальные уведомления (алерты) при смене направления тренда.
Alert Shift:0-current bar,1-previous bar (AlertShift) Сдвиг бара для проверки условия алерта: 0 — текущий бар, 1 — предыдущий бар.
Number of sounds after Signal (SoundsNumber) Количество воспроизведений звукового сигнала при срабатывании алерта.
Pause in sec between sounds (SoundsPause) Пауза в секундах между последовательными звуковыми сигналами.
UpSound Путь к звуковому файлу, воспроизводимому при сигнале о восходящем тренде.
DnSound Путь к звуковому файлу, воспроизводимому при сигнале о нисходящем тренде.
EmailOn Включает или отключает отправку email-уведомлений при смене направления тренда.
EmailsNumber Количество email-уведомлений, отправляемых при одном сигнале.
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1  clrTomato
#property indicator_width1  2  
#property indicator_color2  clrDeepSkyBlue
#property indicator_width2  2  
#property indicator_color3  clrDeepSkyBlue
#property indicator_width3  2  

enum ENUM_MA_MODE
{
   SMA,                 // Simple Moving Average
   EMA,                 // Exponential Moving Average
   Wilder,              // Wilder Exponential Moving Average
   LWMA,                // Linear Weighted Moving Average
   SineWMA,             // Sine Weighted Moving Average
   TriMA,               // Triangular Moving Average
   LSMA,                // Least Square Moving Average (or EPMA, Linear Regression Line)
   SMMA,                // Smoothed Moving Average
   HMA,                 // Hull Moving Average by Alan Hull
   ZeroLagEMA,          // Zero-Lag Exponential Moving Average
   DEMA,                // Double Exponential Moving Average by Patrick Mulloy
   T3_basic,            // T3 by T.Tillson (original version)
   ITrend,              // Instantaneous Trendline by J.Ehlers
   Median,              // Moving Median
   GeoMean,             // Geometric Mean
   REMA,                // Regularized EMA by Chris Satchwell
   ILRS,                // Integral of Linear Regression Slope
   IE_2,                // Combination of LSMA and ILRS
   TriMAgen,            // Triangular Moving Average generalized by J.Ehlers
   VWMA,                // Volume Weighted Moving Average
   JSmooth,             // Smoothing by Mark Jurik
   SMA_eq,              // Simplified SMA
   ALMA,                // Arnaud Legoux Moving Average
   TEMA,                // Triple Exponential Moving Average by Patrick Mulloy
   T3,                  // T3 by T.Tillson (correct version)
   Laguerre,            // Laguerre filter by J.Ehlers
   MD,                  // McGinley Dynamic
   BF2P,                // Two-pole modified Butterworth filter by J.Ehlers
   BF3P,                // Three-pole modified Butterworth filter by J.Ehlers
   SuperSmu             // SuperSmoother by J.Ehlers
};   

enum ENUM_PRICE
{
   close,               // Close
   open,                // Open
   high,                // High
   low,                 // Low
   median,              // Median
   typical,             // Typical
   weightedClose,       // Weighted Close
   heikenAshiClose,     // Heiken Ashi Close
   heikenAshiOpen,      // Heiken Ashi Open
   heikenAshiHigh,      // Heiken Ashi High   
   heikenAshiLow,       // Heiken Ashi Low
   heikenAshiMedian,    // Heiken Ashi Median
   heikenAshiTypical,   // Heiken Ashi Typical
   heikenAshiWeighted   // Heiken Ashi Weighted Close   
};

#define pi 3.14159265358979323846

input ENUM_TIMEFRAMES   TimeFrame         =     0;    
input ENUM_PRICE        Price             =     0;    
input int               Length            =    14;
input double            DampingFactor     =     1;       // DampingFactor(ex.0.7)
input int               Shift             =     0;
input ENUM_MA_MODE      MA_Method         =  LWMA;
input bool              ShowInColor       =  true;
input int               CountBars         =     0;       // Number of bars counted: 0-all bars 

input string            Alerts               = "=== Alerts & Emails ===";
input bool              AlertOn           = false;
input int               AlertShift        =     1;       // Alert Shift:0-current bar,1-previous bar
input int               SoundsNumber      =     5;       // Number of sounds after Signal
input int               SoundsPause       =     5;       // Pause in sec between sounds 
input string            UpSound           = "alert.wav";
input string            DnSound           = "alert2.wav";
input bool              EmailOn           = false;       
input int               EmailsNumber      =     *;      

double hMA[];
double upTrend1[];
double upTrend2[];
double iPrice[];
double htmp[];
double trend[];

double   tmp[][3][2], ma[3][4];
int      cBars, timeframe, draw_begin, masize, hmalen;
string   IndicatorName, TF, short_name, maname;

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

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

int averageSize(int mode)
{   
   int arraysize;

   switch(mode)
   {
   case 10: arraysize = 2; break;
   case 11: arraysize = 6; break;
   case 20: arraysize = 5; break;
   case 23: arraysize = 4; break;
   case 24: arraysize = 6; break;
   case 25: arraysize = 4; break;
   default: arraysize = 0; break;
   }

   return(arraysize);
}

datetime prevtime[3];  

double allAveragesOnArray(int index,double& price[],int period,int mode,int arraysize,int cbars,int bar)
{
   double MA[4];  

   if(mode == 1 || mode == 2 || mode == 7 || mode == 9 || mode == 10 || mode == 11 || mode == 12 || mode == 15 || mode == 20 || mode == 21 || (mode > 22 && mode < 30))  
   {
      if(prevtime[index] != Time[bar])
      {
      ma[index][3] = ma[index][2]; 
      ma[index][2] = ma[index][1]; 
      ma[index][1] = ma[index][0]; 

      if(arraysize > 0) for(int i=0;i<arraysize;i++) tmp[i][index][1] = tmp[i][index][0];

      prevtime[index] = Time[bar]; 
      }

      if(mode == 12 || mode == 15 || mode == 21 || (mode > 26 && mode < 30)) for(i=0;i<4;i++) MA[i] = ma[index][i]; 
   }

   switch(mode)
   {
   case 1 : ma[index][0] = EMAOnArray(price[bar],ma[index][1],period,cbars,bar); break;
   case 2 : ma[index][0] = WilderOnArray(price[bar],ma[index][1],period,cbars,bar); break;  
   case 3 : ma[index][0] = LWMAOnArray(price,period,bar); break;
   case 4 : ma[index][0] = SineWMAOnArray(price,period,bar); break;
   case 5 : ma[index][0] = TriMAOnArray(price,period,bar); break;
   case 6 : ma[index][0] = LSMAOnArray(price,period,bar); break;
   case 7 : ma[index][0] = SMMAOnArray(price,ma[index][1],period,cbars,bar); break;
   case 8 : ma[index][0] = HMAOnArray(price,period,cbars,bar); break;
   case 9 : ma[index][0] = ZeroLagEMAOnArray(price,ma[index][1],period,cbars,bar); break;
   case 10: ma[index][0] = DEMAOnArray(index,0,price[bar],period,1,cbars,bar); break;
   case 11: ma[index][0] = T3_basicOnArray(index,0,price[bar],period,0.7,cbars,bar); break;
   case 12: ma[index][0] = ITrendOnArray(price,MA,period,cbars,bar); break;
   case 13: ma[index][0] = MedianOnArray(price,period,bar); break;
   case 14: ma[index][0] = GeoMeanOnArray(price,period,cbars,bar); break;
   case 15: ma[index][0] = REMAOnArray(price[bar],MA,period,0.5,cbars,bar); break;
   case 16: ma[index][0] = ILRSOnArray(price,period,bar); break;
   case 17: ma[index][0] = IE2OnArray(price,period,bar); break;
   case 18: ma[index][0] = TriMA_genOnArray(price,period,bar); break;
   case 19: ma[index][0] = VWMAOnArray(price,period,bar); break;
   case 20: ma[index][0] = JSmoothOnArray(index,0,price[bar],period,1,cbars,bar); break;
   case 21: ma[index][0] = SMA_eqOnArray(price,MA,period,cbars,bar); break;
   case 22: ma[index][0] = ALMAOnArray(price,period,0.85,8,bar); break;
   case 23: ma[index][0] = TEMAOnArray(index,price[bar],period,1,cbars,bar); break;
   case 24: ma[index][0] = T3OnArray(index,0,price[bar],period,0.7,cbars,bar); break;
   case 25: ma[index][0] = LaguerreOnArray(index,price[bar],period,4,cbars,bar); break;
   case 26: ma[index][0] = McGinleyOnArray(price[bar],ma[index][1],period,cbars,bar); break;
   case 27: ma[index][0] = BF2POnArray(price,MA,period,cbars,bar); break;
   case 28: ma[index][0] = BF3POnArray(price,MA,period,cbars,bar); break;
   case 29: ma[index][0] = SuperSmuOnArray(price,MA,period,cbars,bar); break;
   default: ma[index][0] = SMAOnArray(price,period,bar); break;
   }

   return(ma[index][0]);
}

double SMAOnArray(double& array[],int per,int bar)
{
   double sum = 0;
   for(int i=0;i<per;i++) sum += a

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

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

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

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

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

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

Стоимость полного кода
1 993,90₽ ≈ $24.37