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

AllHullMA

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

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

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

О программе

AllHullMA — это пользовательский индикатор для MetaTrader 4, рассчитывающий скользящую среднюю Халла с возможностью выбора из более чем 30 методов усреднения (SMA, EMA, LWMA, HMA, ALMA и др.). Индикатор поддерживает различные типы ценовых данных, включая Heikin Ashi, и работает на выбранном таймфрейме.
Основная линия отображается в отдельном окне. При включённом режиме отображения цветом индикатор дополнительно отрисовывает линии тренда для визуального определения направления движения цены.
Индикатор оснащён системой уведомлений: при смене тренда генерируются звуковые сигналы, всплывающие окна и email-уведомления. Настраивается количество повторений, пауза между ними и звуковые файлы для разных направлений.

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

НастройкаОписание
TimeFrame Таймфрейм — Таймфрейм для расчёта индикатора
Price Тип цены — Тип цены для расчёта (Close, Open, High, Low, Heikin Ashi и др.)
Length Период — Период расчёта скользящей средней
DampingFactor(ex.0.7) (DampingFactor) Коэффициент демпфирования — Коэффициент демпфирования для расчёта (например, 0.7)
Shift Сдвиг — Сдвиг индикатора в барах
MA_Method Метод скользящей средней — Метод расчёта скользящей средней (SMA, EMA, LWMA, HMA и др.)
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 — Включение/выключение email-уведомлений при смене тренда
EmailsNumber Количество email — Количество 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 = 

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

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

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

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

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

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

Стоимость полного кода
2 001,20₽ ≈ $24.46