RK-ml-RSI_EMA_mtf
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «rsi5-3ema_mtf, 1h (e-3).mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор RK-ml-RSI_EMA_mtf — это пользовательский индикатор для MetaTrader 5, рассчитывающий значение RSI на выбранном старшем таймфрейме и применяющий к нему экспоненциальное скользящее среднее (EMA). Отображает четыре буфера в отдельном окне: значения RSI, сглаженную EMA и два трендовых сигнальных массива.
Индикатор определяет развороты тренда по пересечению значений RSI и рисует стрелки в отдельном окне. Поддерживает интерполяцию значений между барами при работе на старшем таймфрейме, а также систему уведомлений: звуковые, текстовые и email-оповещения при смене тренда.
Индикатор работает в мультитаймфреймном режиме, используя внутренние режимы расчёта и передачи данных между графиками. Автор продукта — Kalenzo.
Настройки программы
| Настройка | Описание |
|---|---|
| TimeFrame | Таймфрейм — Старший таймфрейм, на котором рассчитывается RSI (например, H4, H1, D1) |
| RsiPeriod | Период RSI — Период индикатора RSI |
| MaType | Тип скользящей средней — Тип скользящей средней, используемой для сглаживания RSI (по умолчанию EMA) |
| MaPeriod | Период скользящей средней — Период экспоненциального скользящего среднего, применяемого к значениям RSI |
| Interpolate | Интерполяция — Включает или отключает интерполяцию значений RSI и EMA между барами при работе на старшем таймфрейме |
| pus1 | Разделитель 1 — Разделитель группы настроек |
| arrowsIdentifier | Идентификатор стрелок — Идентификатор объектов-стрелок на графике, используемый для их создания и удаления |
| arrowsUpColor | Цвет стрелок восходящего тренда — Цвет стрелок, обозначающих восходящий тренд |
| arrowsDnColor | Цвет стрелок нисходящего тренда — Цвет стрелок, обозначающих нисходящий тренд |
| pus2 | Разделитель 2 — Разделитель группы настроек |
| alertsOn | Уведомления включены — Включает или отключает всю систему уведомлений индикатора |
| alertsOnCurrent | Отслеживание на текущем баре — Определяет, на каком баре отслеживать смену тренда для уведомлений |
| pus3 | Разделитель 3 — Разделитель группы настроек |
| alertsSound | Звуковые уведомления — Включает или отключает звуковые уведомления при смене тренда |
| up_sound | Звук восходящего тренда — Имя звукового файла, воспроизводимого при восходящем тренде |
| down_sound | Звук нисходящего тренда — Имя звукового файла, воспроизводимого при нисходящем тренде |
| pus4 | Разделитель 4 — Разделитель группы настроек |
| alertsMessage | Текстовые уведомления — Включает или отключает отображение текстовых предупреждений в виде всплывающих окон |
| arr_up | Метка восходящего тренда — Текстовая метка, отображаемая в уведомлении при восходящем тренде |
| arr_down | Метка нисходящего тренда — Текстовая метка, отображаемая в уведомлении при нисходящем тренде |
| pus5 | Разделитель 5 — Разделитель группы настроек |
| alertsEmail | Email-уведомления — Включает или отключает отправку email-уведомлений при смене тренда |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1 Blue
#property indicator_color2 Orange
#property indicator_color3 Lime
#property indicator_color4 Red
#property indicator_width1 2
#property indicator_width2 0
#property indicator_width3 0
#property indicator_width4 0
extern string TimeFrame = "H4";
extern int RsiPeriod = 5;
extern int MaType = MODE_EMA;
extern int MaPeriod = 3;
extern bool Interpolate = true;
extern string pus1 = "";
extern string arrowsIdentifier = "RsiEmaArrows";
extern color arrowsUpColor = Aqua;
extern color arrowsDnColor = Red;
extern string pus2 = "";
extern bool alertsOn = true;
extern bool alertsOnCurrent = false;
extern string pus3 = "";
extern bool alertsSound = true;
extern string up_sound = "news";
extern string down_sound = "ok";
extern string pus4 = "";
extern bool alertsMessage = true;
extern string arr_up = "up";
extern string arr_down = "down";
extern string pus5 = "";
extern bool alertsEmail = false;
double rsi[],ema[],trend[],trend_d[];
string indicatorFileName;
bool calculating = false;
bool returningBars = false;
int timeFrame;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
deleteArrows();
return(0);
}
int start()
{
// код доступен только после оплаты
}
int counted_bars=IndicatorCounted();
int i,limit;
if(counted_bars < 0) return(-1);
if(counted_bars>0) counted_bars--;
limit = MathMin(Bars-counted_bars,Bars-1);
if (returningBars) { rsi[0] = limit+1; return(0); }
if (timeFrame > Period()) limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrame,indicatorFileName,"returnBars",0,0)*timeFrame/Period()));
if (calculating)
{
for(i=0; i<limit; i++) rsi[i] = iRSI(NULL,0,RsiPeriod,PRICE_CLOSE,i);
for(i=0; i<limit; i++) ema[i] = iMAOnArray(rsi,0,MaPeriod,0,MaType,i);
return(0);
}
for(i=limit; i>=0; i--)
{
int y = iBarShift(NULL,timeFrame,Time[i]);
rsi[i] = iCustom(NULL,timeFrame,indicatorFileName,"calculate",RsiPeriod,MaType,MaPeriod,0,y);
ema[i] = iCustom(NULL,timeFrame,indicatorFileName,"calculate",RsiPeriod,MaType,MaPeriod,1,y);
trend[i] = trend[i+1];
trend_d[i] = trend_d[i+1];
if (rsi[i]>rsi[i+1] && rsi[i+1]<rsi[i+2]) {trend[i]= 1;trend_d[i]=EMPTY_VALUE;}
if (rsi[i]<rsi[i+1] && rsi[i+1]>rsi[i+2]) {trend_d[i]=-1;trend[i]=EMPTY_VALUE;}
deleteArrow(Time[i]);
if (trend[i]!=trend[i+1])
{
if (trend[i] == 1) drawArrow(i,arrowsUpColor,233,false);
if (trend[i] ==-1) drawArrow(i,arrowsDnColor,234,true);
}
if (trend_d[i]!=trend_d[i+1])
{
if (trend_d[i] == 1) drawArrow(i,arrowsUpColor,233,false);
if (trend_d[i] ==-1) drawArrow(i,arrowsDnColor,234,true);
}
if (timeFrame <= Period() || y==iBarShift(NULL,timeFrame,Time[i-1])) continue;
if (!Interpolate) contiПоказано первые 50% кода (символов: 5416)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.