RSI adaptive EMA nrp
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «rsi_adaptive_ema_nrp___mtf__alerts.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор «RSI adaptive EMA nrp» рассчитывает адаптивную экспоненциальную скользящую среднюю на основе значения RSI. Сглаживание усиливается или ослабляется в зависимости от отклонения RSI от уровня 50: чем дальше RSI от середины, тем агрессивнее реакция на цену. Индикатор отображает два буфера на графике и отслеживает направление тренда по основной линии.
Поддерживается работа на нескольких таймфреймах: расчёт может выполняться на текущем или заданном таймфрейме с помощью встроенных функций пересчёта MetaTrader 5. При смене направления тренда индикатор способен отправлять уведомления разными способами — звуковой сигнал, окно сообщений, push-уведомления или электронная почта.
Входные параметры позволяют настроить период RSI, период и метод скользящей средней, а также гибко включить или отключить каждый тип оповещения. Индикатор предназначен для визуального анализа ценовых данных и технических показателей в платформе MetaTrader 5.
Настройки программы
| Настройка | Описание |
|---|---|
| TimeFrame | Таймфрейм — Таймфрейм, на котором выполняется расчёт индикатора. Может быть задан как название (например, H1) или как строка «Current time frame» для текущего графика. |
| ARSI1Period | Период ARSI1 — Период расчёта индикатора RSI, используемого для определения скорости адаптации скользящей средней. |
| period | Период скользящей средней — Период скользящей средней, рассчитываемой на основе адаптивной линии RSI. |
| ma_method | Метод скользящей средней — Метод расчёта скользящей средней, применяемой к адаптивной линии (внутренний массив). |
| alertsOn | Уведомления включены — Главный переключатель, активирующий систему оповещений. Если отключён, все типы уведомлений игнорируются. |
| alertsOnCurrent | Отслеживать текущий бар — Определяет, на каком баре отслеживать смену тренда: на текущем (0) или на предыдущем (1). |
| alertsSound | Звуковой сигнал — Включает или отключает воспроизведение звукового сигнала при смене направления тренда. |
| alertsMessage | Сообщения — Включает или отключает отправку сообщений в окно «Эксперты» при смене направления тренда. |
| alertsNotification | Push-уведомления — Включает или отключает отправку push-уведомлений на мобильное устройство при смене направления тренда. |
| alertsEmail | Email-уведомления — Включает или отключает отправку уведомлений по электронной почте при смене направления тренда. |
Поиск по коду файла
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 LimeGreen
#property indicator_color2 Orange
#property indicator_color3 Orange
#property indicator_width1 2
#property indicator_width2 2
#property indicator_width3 2
extern string TimeFrame = "Current time frame";
extern int ARSI1Period = 14;
extern int period = 20;
extern int ma_method = 2;
extern bool alertsOn = false;
extern bool alertsOnCurrent = false;
extern bool alertsSound = false;
extern bool alertsMessage = true;
extern bool alertsNotification = false;
extern bool alertsEmail = false;
double ARSI[];
double ARSI1[];
double buffer2[];
double buffer3[];
double trend[];
string indicatorFileName;
bool returnBars;
bool calculateValue;
int timeFrame;
int init()
{
// код доступен только после оплаты
}
int start()
{
// код доступен только после оплаты
}
int i,counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(Bars-counted_bars,Bars-1);
if (returnBars) { ARSI[0] = MathMin(limit+1,Bars-1); return(0); }
if (calculateValue || timeFrame == Period())
{
if (trend[limit]==-1) CleanPoint(limit,buffer2,buffer3);
for(i=limit; i >= 0; i--)
{
double sc = MathAbs(iRSI(NULL, 0, ARSI1Period, PRICE_CLOSE, i)/100.0 - 0.5) * 2.0;
if( Bars - i <= ARSI1Period)
ARSI1[i] = Close[i];
else ARSI1[i] = ARSI1[i+1] + sc * (Close[i] - ARSI1[i+1]);
}
for(i = limit; i >= 0; i--)
{
ARSI[i] = iMAOnArray(ARSI1,0,period,0,ma_method,i);
buffer2[i] = EMPTY_VALUE;
buffer3[i] = EMPTY_VALUE;
trend[i] = trend[i+1];
if (ARSI[i]>ARSI[i+1]) trend[i] = 1;
if (ARSI[i]<ARSI[i+1]) trend[i] =-1;
if (trend[i]==-1) PlotPoint(i,buffer2,buffer3,ARSI);
}
manageAlerts();
return(0);
}
limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrame,indicatorFileName,"returnBars",0,0)*timeFrame/Period()));
if (trend[limit]==-1) CleanPoint(limit,buffer2,buffer3);
for (i=limit; i>=0; i--)
{
int y = iBarShift(NULL,timeFrame,Time[i]);
trend[i] = iCustom(NULL,timeFrame,indicatorFileName,"calculateValue",ARSI1Period,period,ma_method,alertsOn,alertsOnCurrent,alertsSound,alertsMessage,alertsNotification,alertsEmail,4,y);
ARSI[i] = iCustom(NULL,timeFrame,indicatorFileName,"calculateValue",ARSI1Period,period,ma_method,alertsOn,alertsOnCurrent,alertsSound,alertsMessage,alertsNotification,alertsEmail,0,y);
buffer2[i] = EMPTY_VПоказано первые 50% кода (символов: 4724)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.