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

RK-ml-RSI_EMA_mtf v1.2

original rsi-ema signals.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 общих тегов
Вы автор или правообладатель?

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

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

О программе

Индикатор для MetaTrader 4, рассчитывающий значения RSI и экспоненциальной скользящей средней на выбранном таймфрейме и отображающий направление тренда стрелками на графике. Поддерживает мультитаймфреймовый расчёт с интерполяцией значений между барами. При пересечении RSI и EMA индикатор формирует сигналы в виде стрелок вверх и вниз, а также может отправлять уведомления через всплывающие сообщения, звуковой сигнал и электронную почту.

Настройки программы

НастройкаОписание
TimeFrame Таймфрейм — Таймфрейм для расчёта индикатора; поддерживается строковое задание (например, M5, H1) или специальное значение calculate/returnBars для внутренних режимов.
RsiPeriod Период RSI — Период расчёта индикатора относительной силы RSI.
MaType Тип скользящей средней — Тип скользящей средней, используемой для сглаживания RSI (например, MODE_EMA).
MaPeriod Период скользящей средней — Период скользящей средней, применяемой к значениям RSI.
Interpolate Интерполяция — Включает или отключает интерполяцию значений RSI и EMA между барами выбранного таймфрейма.
arrowsIdentifier Идентификатор стрелок — Префикс имени графических объектов-стрелок, отображающих сигналы на графике.
arrowsUpColor Цвет стрелок вверх — Цвет стрелок, указывающих на восходящий тренд (RSI выше EMA).
arrowsDnColor Цвет стрелок вниз — Цвет стрелок, указывающих на нисходящий тренд (RSI ниже EMA).
alertsOn Уведомления включены — Включает или отключает систему уведомлений о смене тренда.
alertsSound Звуковое уведомление — Воспроизводит звуковой сигнал при срабатывании уведомления.
alertsOnCurrent Текущий бар — Если включено, проверка уведомления выполняется по текущему бару; если выключено — по предыдущему.
alertsMessage Всплывающее сообщение — Отображает всплывающее сообщение в терминале при смене тренда.
alertsEmail Email-уведомление — Отправляет электронное письмо на адрес, указанный в настройках терминала, при смене тренда.
Получить полный код

Поиск по коду файла

#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Blue
#property indicator_color2 Orange
#property indicator_width1 2

extern string TimeFrame        = "M5";
extern int    RsiPeriod        = 14;
extern int    MaType           = MODE_EMA;
extern int    MaPeriod         = 40;
extern bool   Interpolate      = true;
extern string arrowsIdentifier = "RsiEmaArrows";
extern color  arrowsUpColor    = Lime;
extern color  arrowsDnColor    = Red;

extern bool   alertsOn          = true;
extern bool   alertsSound       = true;
extern bool   alertsOnCurrent   = false;
extern bool   alertsMessage     = false;
extern bool   alertsEmail       = false;

double rsi[],ema[],trend[];

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];
                  if (rsi[i]>ema[i]) trend[i]= 1;
                  if (rsi[i]<ema[i]) trend[i]=-1;

                  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 (timeFrame <= Period() || y==iBarShift(NULL,timeFrame,Time[i-1])) continue;
               if (!Interpolate) continue;

            datetime time = iTime(NULL,timeFrame,y);
               for(int n = 1; i+n < Bars && Time[i+n] >= time; n++) continue;	
               double factor = 1.0 / n;
               for(int k = 1; k < n; k++)
               {
                  rsi[i+k] = k*factor*rsi[i+n] + (

Показано первые 50% кода (символов: 4518)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
451,80₽ ≈ $5.52