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

RSI adaptive EMA nrp

rsi_adaptive_ema_nrp___mtf__alerts.mq5

Похожие материалы по тегам

!!!-mt4 x-xardg-rsi.mq5MQL5 / MetaTrader 5 · 2 общих тегов!!! rsi ma simple+arrows 1.2 (mtf).mq5MQL5 / MetaTrader 5 · 2 общих теговea robofibo source v.11.2.mq4MQL4 / MetaTrader 4 · 2 общих теговsureforexhedingvonepointoneone.mq4MQL4 / MetaTrader 4 · 2 общих теговsureforexhedging 1.10 optimized.mq4MQL4 / MetaTrader 4 · 2 общих теговsureforexhedging 1.09 a (2).mq4MQL4 / MetaTrader 4 · 2 общих тегов
Вы автор или правообладатель?

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

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

О программе

Индикатор «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 и перейдите к оплате.

Стоимость полного кода
472,40₽ ≈ $5.77