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

RK-ml-RSI_EMA_mtf v1.2

rk-ml-rsi_ema_mtf_v1.2_modjk.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 общих тегов
Вы автор или правообладатель?

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

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

О программе

RK-ml-RSI_EMA_mtf v1.2 — это пользовательский индикатор для MetaTrader 4, который отображает в отдельном окне линии RSI и скользящей средней, рассчитанные на выбранном таймфрейме. Индикатор реализует мультитаймфреймовый анализ, позволяя использовать данные старшего таймфрейма на графике текущего инструмента.

При пересечении линии RSI и скользящей средней индикатор рисует стрелки, сигнализируя о смене направления. Поддерживается интерполяция значений между барами старшего таймфрейма для более гладкого отображения линий.

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

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

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

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

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

extern string TimeFrame        = "H4";
extern int    RsiPeriod        = 10;
extern int    MaType           = MODE_SMA;
extern int    MaPeriod         = 2;
extern bool   Interpolate      = true;
extern string arrowsIdentifier = "Signal";
extern color  arrowsUpColor    = Aqua;
extern color  arrowsDnColor    = Red;

extern bool   alertsOn          = true;
extern bool   alertsOnCurrent   = false;
extern bool   alertsMessage     = true;
extern bool   alertsSound       = true;
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;
                  deleteArrow(Time[i]);
                  if (trend[i]!=trend[i+1])
                  {
                     if (trend[i] == 1) drawArrow(i,arrowsUpColor,221,false);
                     if (trend[i] ==-1) drawArrow(i,arrowsDnColor,222,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] + (1.0-k*factor)*rsi[i];
                

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

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

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

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

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

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

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