AllHullMA
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «digital 30 mashek podval@lifeindreamsworld.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.