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

RSI of (MACD-SIGNAL)

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

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

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

О программе

Индикатор «RSI of (MACD-SIGNAL)» рассчитывает индикатор относительной силы (RSI) на основе разницы между линией MACD и её сигнальной линией. Отображается в отдельном окне в диапазоне 0–100 с уровнями 30, 50 и 70.

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

Встроенная система уведомлений позволяет настраивать алерты в виде pop-up сообщений, звуковых сигналов и email-уведомлений. Уведомления срабатывают при смене направления тренда RSI и могут быть ограничены текущей свечой.

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

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

НастройкаОписание
FastEMA Период быстрой экспоненциальной скользящей средней, используемой для расчёта линии MACD.
SlowEMA Период медленной экспоненциальной скользящей средней, используемой для расчёта линии MACD.
MODE_MA Метод усреднения для расчёта скользящих средних (MODE_SMA = 0, MODE_EMA = 1, MODE_SMMA = 2, MODE_LWMA = 3).
SignalSMA Период сигнальной скользящей средней, рассчитываемой на массиве MACD.
RSIPeriod Период расчёта индикатора RSI на основе разницы MACD и сигнальной линии.
ShowArrowsForRsiLevel30_70 Переключатель отображения стрелок при пересечении RSI уровней 30 и 70.
ShowArrowsForRsiSlope Переключатель отображения стрелок при изменении направления наклона RSI.
alertsOn Главный переключатель включения системы уведомлений.
alertsOnCurrent Переключатель: уведомления срабатывают на текущей свече или на предыдущей.
alertsMessage Переключатель отображения pop-up сообщений при срабатывании алерта.
alertsSound Переключатель воспроизведения звукового сигнала при срабатывании алерта.
alertsEmail Переключатель отправки email-уведомлений при срабатывании алерта.
soundfile Путь к звуковому файлу, воспроизводимому при срабатывании звукового уведомления.
arrowsIdentifier Идентификатор объектов-стрелок на графике, используемый для их создания и удаления.
arrowsUpColor1 Цвет стрелки вверх первого набора (пересечение уровней RSI).
arrowsDnColor1 Цвет стрелки вниз первого набора (пересечение уровней RSI).
arrowsUpColor2 Цвет стрелки вверх второго набора (изменение наклона RSI).
arrowsDnColor2 Цвет стрелки вниз второго набора (изменение наклона RSI).
Получить полный код

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

#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=24;
extern int SlowEMA=48;
extern int MODE_MA =3;
extern int SignalSMA=9;

extern int RSIPeriod=5;

extern bool   ShowArrowsForRsiLevel30_70    = true;
extern bool   ShowArrowsForRsiSlope     = false;

extern string note            = "turn on Alert = true; turn off = false";
extern bool   alertsOn        = true;
extern bool   alertsOnCurrent = true;
extern bool   alertsMessage   = true;
extern bool   alertsSound     = true;
extern bool   alertsEmail     = false;
extern string soundfile       = "alert2.wav";

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;
        }
      else
        {

         rel=(MacdBuffer[i]- SignalBuffer[i])-(MacdBuffer[i+1]-SignalBuffer[i+1]);
         if(rel>0) sump=rel;
         else      sumn=-rel;
         positive=(PosBuffer[i+1]*(RSIPeriod-1)+sump)/RSIPeriod;
         negative=(NegBuffer[i+1]*(RSIPeriod-1)+sumn)/RSIPeriod;
        }
      PosBuffer[i]=positive;
      NegBuff

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

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

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

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

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

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

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