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

RSI of (MACD-SIGNAL)

rsi of (macd-signal)_v1 - arrows.mq5
Вы автор или правообладатель?

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

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

О программе

Индикатор «RSI of (MACD-SIGNAL)» рассчитывает линию MACD как разность двух экспоненциальных скользящих средних (быстрой и медленной) цены закрытия, а сигнальную линию — как простую скользящую среднюю от линии MACD. На основе разности MACD и сигнальной линии вычисляется показатель RSI в диапазоне 0–100, отображаемый в отдельном подокне с уровнями 30, 50 и 70. Индикатор предназначен для технического анализа ценовых данных в платформе MetaTrader 5.

Данные RSI отрисовываются в виде линии. Дополнительно индикатор может отображать стрелки-метки при двух условиях: пересечении RSI уровня 50 и изменении направления наклона RSI. Стрелки рисуются на ценовом графике с использованием настраиваемых цветов и идентификаторов.

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

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

НастройкаОписание
FastEMA Период быстрой экспоненциальной скользящей средней для расчёта линии MACD.
SlowEMA Период медленной экспоненциальной скользящей средней для расчёта линии MACD.
MODE_MA Метод усреднения, применяемый при расчёте скользящих средних (значение по умолчанию соответствует MODE_EMA).
SignalSMA Период простой скользящей средней для построения сигнальной линии MACD.
RSIPeriod Период расчёта индикатора RSI на основе разности MACD и сигнальной линии.
ShowArrowsForRsiLevel50 Переключатель отображения стрелок при пересечении RSI уровня 50.
ShowArrowsForRsiSlope Переключатель отображения стрелок при изменении направления наклона RSI.
arrowsIdentifier Идентификатор для именования объектов стрелок на графике.
arrowsUpColor1 Цвет стрелок, указывающих на восходящее направление (первый набор).
arrowsDnColor1 Цвет стрелок, указывающих на нисходящее направление (первый набор).
arrowsUpColor2 Цвет стрелок, указывающих на восходящее направление (второй набор).
arrowsDnColor2 Цвет стрелок, указывающих на нисходящее направление (второй набор).
Получить полный код

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

#property  indicator_separate_window
#property indicator_minimum 0
#property indicator_maximum 100
#property indicator_level1 30
#property indicator_level2 50
#property indicator_level3 70

#property  indicator_buffers 1

#property  indicator_color1 DodgerBlue
#property  indicator_width1  2

extern int FastEMA=12;
extern int SlowEMA=24;
extern int MODE_MA =3;
extern int SignalSMA=9;

extern int RSIPeriod=7;

extern bool   ShowArrowsForRsiLevel50    = true;
extern bool   ShowArrowsForRsiSlope     = true;

extern string arrowsIdentifier          = "RsiArrows1";
extern color  arrowsUpColor1            = DeepSkyBlue;
extern color  arrowsDnColor1            = Red;
extern color  arrowsUpColor2            = LawnGreen;
extern color  arrowsDnColor2            = Red;

double RSIBuffer[];
double PosBuffer[];
double NegBuffer[];

double     MacdBuffer[];
double     SignalBuffer[];
double trend1[];
double trend2[];

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

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

   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;

   for(int i=0; i<limit; i++)
      MacdBuffer[i]=iMA(NULL,0,FastEMA,0,MODE_MA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_MA,PRICE_CLOSE,i);

   for(i=0; i<limit; i++)
      SignalBuffer[i]=iMAOnArray(MacdBuffer,Bars,SignalSMA,0,MODE_SMA,i);

   i=Bars-RSIPeriod-1;
   if(counted_bars>=RSIPeriod) i=Bars-counted_bars-1;
   while(i>=0)
     {
      double sumn=0.0,sump=0.0;
      if(i==Bars-RSIPeriod-1)
        {
         int k=Bars-2;

         while(k>=i)
           {
            rel=(MacdBuffer[k]-SignalBuffer[k])-(MacdBuffer[k+1]-SignalBuffer[k+1]);
            if(rel>0) sump+=rel;
            else      sumn-=rel;
            k--;
           }
         positive=sump/RSIPeriod;
         negative=sumn/RSIPeriod;
        }
    

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

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

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

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

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

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

Стоимость полного кода
370,50₽ ≈ $4.53