UniEMACrossover_v1.0 600+
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «uniemacrossover_v1.0 600+.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
UniEMACrossover_v1.0 600+ — это пользовательский индикатор для MetaTrader 5, рассчитывающий две линии скользящих средних UniEMA (быструю и медленную) с настраиваемыми параметрами полюса, порядка, весового коэффициента и демпфирования. Индикатор отображает линии на графике цены и определяет точки их пересечения, формируя визуальные сигналы покупки и продажи в виде стрелок.
Индикатор поддерживает анализ на разных таймфреймах, отображение залитых областей между линиями при изменении тренда, а также настраиваемые уведомления: звуковые сигналы, отправку электронной почты и push-уведомления. Расчёт основывается на ценовых данных текущего или старшего таймфрейма и использует алгоритм UniXMA для формирования сглаженных линий.
Быстрая и медленная линии UniEMA вычисляются независимо друг от друга с собственными параметрами длины и сдвига. При пересечении линий и смене тренда индикатор генерирует сигналы, а также рассчитывает уровни отступа на основе среднего истинного диапазона (ATR).
Настройки программы
| Настройка | Описание |
|---|---|
| TimeFrame | Таймфрейм — Таймфрейм, на котором выполняется расчёт индикатора. |
| FastMA | Быстрая UniEMA — Текстовая метка группы настроек быстрой скользящей средней. |
| Fast UniEMA Price (FastPrice) | Цена быстрой UniEMA — Тип цены для расчёта быстрой линии UniEMA: Close, Open, High, Low и другие. |
| Fast UniEMA Period (FastLength) | Период быстрой UniEMA — Период расчёта быстрой линии UniEMA. |
| Fast UniEMA Pole (FastPole) | Полюс быстрой UniEMA — Параметр полюса для алгоритма UniEMA быстрой линии. |
| Fast UniEMA order (FastOrder) | Порядок быстрой UniEMA — Параметр порядка для алгоритма UniEMA быстрой линии. |
| Fast UniEMA Weight Factor (FastWeightFactor) | Весовой коэффициент быстрой UniEMA — Весовой коэффициент для быстрой линии UniEMA. |
| Fast UniEMA Damping Factor (FastDampingFactor) | Демпфирование быстрой UniEMA — Коэффициент демпфирования для быстрой линии UniEMA. |
| Fast UniEMA Displace (FastShift) | Сдвиг быстрой UniEMA — Сдвиг отображения быстрой линии UniEMA в барах. |
| SlowMA | Медленная UniEMA — Текстовая метка группы настроек медленной скользящей средней. |
| Slow MA Price (SlowPrice) | Цена медленной UniEMA — Тип цены для расчёта медленной линии UniEMA: Close, Open, High, Low и другие. |
| Slow MA Period (SlowLength) | Период медленной UniEMA — Период расчёта медленной линии UniEMA. |
| Slow UniEMA Pole (SlowPole) | Полюс медленной UniEMA — Параметр полюса для алгоритма UniEMA медленной линии. |
| Slow UniEMA Order (SlowOrder) | Порядок медленной UniEMA — Параметр порядка для алгоритма UniEMA медленной линии. |
| Slow UniEMA Weight Factor (SlowWeightFactor) | Весовой коэффициент медленной UniEMA — Весовой коэффициент для медленной линии UniEMA. |
| Slow UniEMA Damping Factor (SlowDampingFactor) | Демпфирование медленной UniEMA — Коэффициент демпфирования для медленной линии UniEMA. |
| Slow MA Displace (SlowShift) | Сдвиг медленной UniEMA — Сдвиг отображения медленной линии UniEMA в барах. |
| ShowFilled | Показать залитые области — Включает или отключает отображение залитых областей между линиями индикатора. |
| Number of bars counted: 0-all bars (CountBars) | Количество баров — Количество баров для расчёта: 0 означает все бары. |
| Alerts | Уведомления и Email — Текстовая метка группы настроек уведомлений и 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) | Пауза между звуками — Пауза в секундах между звуковыми сигналами. |
| UpTrendSound | Звук восходящего тренда — Имя звукового файла, воспроизводимого при сигнале восходящего тренда. |
| DnTrendSound | Звук нисходящего тренда — Имя звукового файла, воспроизводимого при сигнале нисходящего тренда. |
| EmailOn | Включить Email — Включает или отключает отправку электронной почты при сигнале. |
| EmailsNumber | Количество Email — Количество отправляемых писем при каждом сигнале. |
| PushNotificationOn | Включить push-уведомления — Включает или отключает отправку push-уведомлений при сигнале. |
Поиск по коду файла
#property indicator_chart_window
#property indicator_buffers 8
#property indicator_color1 C' 30,160,160'
#property indicator_color2 C'225, 55, 0'
#property indicator_color3 C' 20, 90, 90'
#property indicator_color4 C'160, 40, 0'
#property indicator_color5 clrDeepSkyBlue
#property indicator_color6 clrOrangeRed
#property indicator_color7 clrDeepSkyBlue
#property indicator_color8 clrOrangeRed
#property indicator_width1 2
#property indicator_width2 2
#property indicator_width3 0
#property indicator_width4 0
#property indicator_width5 2
#property indicator_width6 2
#property indicator_width7 1
#property indicator_width8 1
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 string FastMA = "=== Fast UniEMA ===";
input ENUM_PRICE FastPrice = 0; // Fast UniEMA Price
input int FastLength = 12; // Fast UniEMA Period
input int FastPole = 1; // Fast UniEMA Pole
input int FastOrder = 1; // Fast UniEMA order
input double FastWeightFactor = 2; // Fast UniEMA Weight Factor
input double FastDampingFactor = 0.5; // Fast UniEMA Damping Factor
input int FastShift = 0; // Fast UniEMA Displace
input string SlowMA = "=== Slow UniEMA ===";
input ENUM_PRICE SlowPrice = 0; // Slow MA Price
input int SlowLength = 26; // Slow MA Period
input int SlowPole = 1; // Slow UniEMA Pole
input int SlowOrder = 1; // Slow UniEMA Order
input double SlowWeightFactor = 2; // Slow UniEMA Weight Factor
input double SlowDampingFactor = 0.5; // Slow UniEMA Damping Factor
input int SlowShift = 0; // Slow MA Displace
input bool ShowFilled = false;
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 UpTrendSound = "alert.wav";
input string DnTrendSound = "alert2.wav";
input bool EmailOn = false;
input int EmailsNumber = *;
input bool PushNotificationOn = false;
double upgrow[];
double dngrow[];
double upfall[];
double dnfall[];
double fast[];
double slow[];
double buy[];
double sell[];
double trend[];
double fastshift[];
double slowshift[];
double counter[];
int timeframe, cBars, draw_begin, fastsize, slowsize;
string IndicatorName, TF, fast_name, slow_name;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
Comment("");
return(0);
}
int start()
{
// код доступен только после оплаты
}
int shift,limit, counted_bars=IndicatorCounted();
double fastprice, slowprice;
if(counted_bars > 0) limit = Bars - counted_bars - 1;
if(counted_bars < 0) return(0);
if(counted_bars < 1)
{
limit = cBars + MathMax(FastLength,SlowLength) - 1;
for(int i=limit;i>=0;i--)
{
upgrow[i] = EMPTY_VALUE;
dngrow[i] = EMPTY_VALUE;
upfall[i] = EMPTY_VALUE;
dnfall[i] = EMPTY_VALUE;
fast[i] = EMPTY_VALUE;
slow[i] = EMPTY_VALUE;
buy [i] = EMPTY_VALUE;
sell[i] = EMPTY_VALUE;
}
}
if(FastShift < 0) int fastlimit = MathAbs(FastShift); else fastlimit = limit;
if(SlowShift < 0) int slowlimit = MathAbs(SlowShift); else slowlimit = limit;
int limit1 = MathMax(limit,MathMax(fastlimit,slowlimit));
if(timeframe != Period())
{
limit = timeframe/Period()*(limit1 + 1);
for(shift=0;shift<limit;shift++)
{
int y = iBarShift(NULL,timeframe,Time[shift]);
fast[shift] = iCustom(NULL,TimeFrame,IndicatorName,0,"",FastPrice,FastLength,FastPole,FastOrder,FastWeightFactor,FastDampingFactor,FastShift,
"",SlowPrice,SlowLength,SlowPole,SlowOrder,SlowWeightFactor,SlowDampingFactor,SlowShift,ShowFilled,CountBars,
"",AlertOn,AlertShift,SoundsNumber,SoundsPause,UpTrendSound,DnTrendSound,EmailOn,EmailsNumber,PushNotificationOn,4,y);
slow[shift] = iCustom(NULL,TimeFrame,IndicatorName,0,"",FastPrice,FastLength,FastPole,FastOrder,FastWeightFactor,FastDampingFactor,FastShift,
"",SlowPrice,SlowLength,SlowPole,SlowOrder,SlowWeightFactor,SlowDampingFactor,SlowShift,ShowFilled,CountBars,
"",AlertOn,AlertShift,SoundsNumber,SoundsPause,UpTrendSound,DnTrendSound,EmailOn,EmailsNumber,PushNotificationOn,5,y);
buy [shift] = iCustom(NULL,TimeFrame,IndicatorName,0,"",FastPrice,FastLength,FastPole,FastOrder,FastWeightFactor,FastDampingFactor,FastShift,
"",SlowPrice,SlowLength,SlowPole,SlowOrder,SlowWeightFactor,SlowDampingFactor,SlowShift,ShowFilled,CountBars,
"",AlertOn,AlertShift,SoundsNumber,SoundsPause,UpTrendSound,DnTrendSound,EmailOn,EmailsNumber,PushNotificationOn,6,y);
sell[shift] = iCustom(NULL,TimeFrame,IndicatorName,0,"",FastPrice,FastLength,FastPole,FastOrder,FastWeightFactor,FastDampingFactor,FastShift,
"",SlowPrice,SlowLength,SlowPole,SlowOrder,SlowWeightFactor,SlowDampingFactor,SlowShift,ShowFilled,CountBars,
"",AlertOn,AlertShift,SoundsNumber,SoundsPause,UpTrendSound,DnTrendSound,EmailOn,EmailsNumber,PushNotificationOn,7,y);
if(ShowFilled)
{
upgrow[shift] = iCustom(NULL,TimeFrame,IndicatorName,0,"",FastPrice,FastLength,FastPole,FastOrder,FastWeightFactor,FastDampingFactor,FastShift,
"",SlowPrice,SlowLength,SlowPole,SlowOrder,SlowWeightFactor,SlowDampingFactor,SlowShift,ShowFilled,CountBars,
"",AlertOn,AlertShift,SoundsNumber,SoundsPause,UpTrendSound,DnTrendSound,EmailOn,EmailsNumber,PushNotificationOn,0,y);
dngrow[shift] = iCustom(NULL,TimeFrame,IndicatorName,0,"",FastPrice,FastLength,FastPole,FastOrder,FastWeightFactor,FastDampingFactor,FastShift,
"",SlowPrice,SlowLength,SlowPole,SlowOrder,SlowWeightFactor,SlowDampingFactor,SlowShift,ShowFilled,CountBars,
"",AlertOn,AlertShift,SoundsNumber,SoundsPause,UpTrendSound,DnTrendSound,EmailOn,EmailsNumber,PushNotificationOn,1,y);
upfall[shift] = iCustom(NULL,TimeFrame,IndicatorName,0,"",FastPrice,FastLength,FastPole,FastOrder,FastWeightFactor,FastDampingFactor,FastShift,
"",SlowPrice,SlowLength,SlowPole,SlowOrder,SlowWeightFactor,SlowDampingFactor,SlowShift,ShowFilled,CountBars,
"",AlertOn,AlertShift,SoundsNumber,SoundsPause,UpTrendSound,DnTrendSound,EmailOn,EmailsNumber,PushNotificationOn,2,y);
dnfall[shift] = iCustom(NULL,TimeFrame,IndicatorName,0,"",FastPrice,FastLength,FastPole,FastOrder,FastWeightFactor,FastDampingFactor,FastShift,
"",SlowPrice,SlowLength,SlowPole,SlowOrder,SlowWeightFactor,SlowDampingFactor,SlowShift,ShowFilled,CountBars,
"",AlertOn,AlertShift,SoundsNumber,SoundsPause,UpTrendSound,DnTrendSound,EmailOn,EmailsNumber,PushNotificationOn,3,y);
}
Показано первые 50% кода (символов: 14858)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.