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

rsi_-_ma200_mtf.mq5

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

ares_indicator.pineTradingView · 1 общих теговgold_trend_revers.mq5MQL5 / MetaTrader 5 · 1 общих тегов!!!-mt4 x-xardg-rsi.mq5MQL5 / MetaTrader 5 · 1 общих тегов! cycle-identifier.mq5MQL5 / MetaTrader 5 · 1 общих тегов!!! rsi ma simple+arrows 1.2 (mtf).mq5MQL5 / MetaTrader 5 · 1 общих теговprecisionflowea.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

Данный индикатор для платформы MetaTrader 5 рассчитывает значение Relative Strength Index (RSI) на выбранном пользователем таймфрейме и отображает его в отдельном окне графика. К additionally вычисляется экспоненциальное скользящее среднее (EMA) от значений RSI, что позволяет анализировать динамику импульса.

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

Индикатор поддерживает систему уведомлений: всплывающие сообщения, звуковые сигналы и email-оповещения, которые срабатывают при пересечении RSI заданных пороговых уровней.

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

НастройкаОписание
RSIPeriod Период расчёта индикатора RSI. По умолчанию равен 50.
EMAPeriod Период экспоненциального скользящего среднего, рассчитываемого от значений RSI. По умолчанию равен 200.
PriceType Тип цены для расчёта RSI: 0 — Close, 1 — Open, 2 — High, 3 — Low, 4 — Median, 5 — Typical, 6 — Weighted.
note3 Информационная подсказка: указывает, что параметр timeFrame задаёт таймфрейм графика.
note4 Информационная подсказка: перечисляет доступные минутные таймфреймы (M1, M5, M15, M30).
note5 Информационная подсказка: перечисляет доступные часные и дневные таймфреймы (H1, H4, D1).
note6 Информационная подсказка: перечисляет доступные недельные и месячные таймфреймы (W1, MN1).
timeFrame Строковый параметр, задающий таймфрейм для расчёта RSI. Поддерживает значения: Current time frame, M1, M5, M15, M30, H1, H4, D1, W1, MN1.
overBought Уровень перекупленности RSI. Значения RSI выше этого уровня отображаются как верхняя граничная линия. По умолчанию равен 50.
overSold Уровень перепроданности RSI. Значения RSI ниже этого уровня отображаются как нижняя граничная линия. По умолчанию равен 50.
showArrows Включает отображение стрелок на графике при пересечении RSI пороговых уровней.
alertsOn Включает или отключает систему уведомлений индикатора.
alertsMessage Включает отображение всплывающих сообщений при пересечении RSI пороговых уровней.
alertsSound Включает воспроизведение звукового сигнала при пересечении RSI пороговых уровней.
alertsEmail Включает отправку email-уведомлений при пересечении RSI пороговых уровней.
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers   4
#property indicator_minimum  30
#property indicator_maximum  70
#property indicator_color1 DimGray
#property indicator_color2 Lime
#property indicator_color3 Red
#property indicator_color4 Blue
#property indicator_width2 2
#property indicator_width3 2
#property indicator_width4 1
#property indicator_style4 STYLE_SOLID
#property indicator_level1 50
#property indicator_levelcolor Black
#property indicator_levelstyle 0

extern int       RSIPeriod     =  50;
extern int       EMAPeriod     =  200;
extern string    note1         =  "0=close;1=open;2=hi;3=low";
extern string    note2         =  "4=median;5=typical;6=weighted";
extern int       PriceType     =   3;
extern string    note3         = "Chart Time Frame";
extern string    note4         = "1=M1, 5=M5, 15=M15, 30=M30";
extern string    note5         = "60=H1, 240=H4, 1440=D1";
extern string    note6         = "10080=W1, 43200=MN1";
extern string    timeFrame     =  "Current time frame";
extern int       overBought    =  50;
extern int       overSold      =  50;
extern bool      showArrows    = false;
extern bool      alertsOn      = false;
extern bool      alertsMessage = false;
extern bool      alertsSound   = false;
extern bool      alertsEmail   = false;

double   RSIBuffer[];
double   EMABuffer[];
double   Upper[];
double   Lower[];

int      TimeFrame;
datetime TimeArray[];
int      maxArrows;

int init()
   {
      // код доступен только после оплаты
   }

int deinit()
   {
   DeleteArrows();
   return(0);
   }

int start()
   {
      // код доступен только после оплаты
   }
   int    counted_bars=IndicatorCounted();
   int    limit;
   int    i,y;

   if(counted_bars<0) return(-1);
   limit=Bars-counted_bars;
   ArrayCopySeries(TimeArray ,MODE_TIME ,NULL,TimeFrame);

   for(i=0,y=0; i<limit; i++)
      {
      if(Time[i]<TimeArray[y]) y++;
         {
         RSIBuffer[i] = iRSI(NULL,TimeFrame,RSIPeriod,PriceType,y);
         }
      }
   for(i=0,y=0; i<limit; i++)
      {
      if(Time[i]<TimeArray[y]) y++;
         {
         EMABuffer[i] = iMAOnArray(RSIBuffer,Bars,EMAPeriod,0,MODE_EMA,i);
         }
      }

   for(i=limit; i>=0; i--)
      {
      if (RSIBuffer[i] > overBought) 
         { 
         Upper[i] = RSIBuffer[i]; Upper[i+1] = RSIBuffer[i+1];
         }
      else
         { Upper[i] = EMPTY_VALUE;
         if (Upper[i+2] == EMPTY_VALUE)
            {
            Upper[i+1]  = EMPTY_VALUE; 
            }
         if (RSIBuffer[i] < overSold)   
            { 
            Lower[i] = RSIBuffer[i]; Lower[i+1] = RSIBuffer[i+1];
            }
         else 
            {
            Lower[i] = EMPTY_VALUE;
            if (Lower[i+2] == EMPTY_VALUE)
               {
               Lower[i+1]  = EMPTY_VALUE;
               }
            }
         }    
      }

   if (showArrows)
      for (i=0; i<WindowBarsPerChart() ;i++)
         {
         if (RSIBuffer[i]>overBought && RSIBuffer[i+1]<overBought) 
            {
            DrawArrow(i,"down");
            }
         if (RSIBuffer[i]<overSold   && RSIBuffer[i+1]>overSold)
            {
            DrawArrow(i,"up");
            }
         }
   if (ale

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

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

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

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

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

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

Стоимость полного кода
524₽ ≈ $6.40