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

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

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

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

О программе

Индикатор rsi_zones1.mq5 рассчитывает значение RSI (Relative Strength Index) заданного периода и применённой цены, а затем визуально отображает зоны тренда на графике. Прямоугольники рисуются в цвете ColorUp при значении RSI выше 50 и в цвете ColorDown при значении ниже 50, формируя наглядное представление о направлении тренда.

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

Система уведомлений позволяет настраивать оповещения при смене тренда RSI. Доступны текстовые сообщения, звуковые сигналы и email-уведомления. Оповещения срабатывают при переходе RSI через уровень 50 и могут быть настроены как на текущий бар, так и на предыдущий.

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

НастройкаОписание
TimeFrame Таймфрейм, на котором рассчитывается и отображается индикатор (строковый параметр, например M1, H1, D1 или current time frame)
RSIPeriod Период расчёта индикатора RSI (количество баров, используемых для усреднения)
RSIPrice Код применяемой цены для расчёта RSI (целочисленное значение, соответствующее константе применённой цены)
UniqueID Уникальный идентификатор объектов индикатора на графике, используемый для именования и удаления прямоугольников
ColorUp Цвет прямоугольников, отображающих восходящий тренд (RSI выше 50)
ColorDown Цвет прямоугольников, отображающих нисходящий тренд (RSI ниже 50)
alertsOn Главный переключатель включения всех уведомлений индикатора
alertsOnCurrent Переключатель, определяющий, на каком баре отслеживать смену тренда: на текущем (true) или на предыдущем (false)
alertsMessage Переключатель включения текстовых сообщений-оповещений при смене тренда RSI
alertsSound Переключатель включения звуковых уведомлений при смене тренда RSI
alertsEmail Переключатель включения email-уведомлений при смене тренда RSI
Dummy Служебный параметр типа double, используемый для управления временной привязкой отрисовки зон на графике
Получить полный код

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

#property indicator_chart_window

extern string TimeFrame        = "current time frame";
extern int    RSIPeriod        = 12;
extern int    RSIPrice         = 5;
extern string UniqueID         = "RSI zones";
extern color  ColorUp          = Gold;
extern color  ColorDown        = Orange;
extern bool   alertsOn         = false;
extern bool   alertsOnCurrent  = true;
extern bool   alertsMessage    = true;
extern bool   alertsSound      = false;
extern bool   alertsEmail      = false;
extern double Dummy            = -1;

double colors[];

int    timeFrame;
string indicatorFileName;

int init()
{
      // код доступен только после оплаты
   }
int deinit()
{
   string lookFor       = UniqueID+":";
   int    lookForLength = StringLen(lookFor);
   for (int i=ObjectsTotal()-1; i>=0; i--)
   {
      string objectName = ObjectName(i);
         if (StringSubstr(objectName,0,lookForLength) == lookFor) ObjectDelete(objectName);
   }
   return(0);
}

int start()
{
      // код доступен только после оплаты
   }
   int i,counted_bars=IndicatorCounted();
      if(counted_bars<0) return(-1);
      if(counted_bars>0) counted_bars--;
         int limit = MathMin(Bars-counted_bars,Bars-1);

         datetime tDummy = Dummy;
         if (timeFrame!=Period()) 
         { 
            iCustom(NULL,timeFrame,indicatorFileName,"",RSIPeriod,RSIPrice,UniqueID,ColorUp,ColorDown,alertsOn,alertsOnCurrent,alertsMessage,alertsSound,alertsEmail,Time[0],0,0); 
            return(0); 
         }
         else if (Dummy<=Time[0]) tDummy = Time[0];
         static bool secondTime=false;
         if (secondTime)
         {
            int count=0;
            for (;limit<Bars; limit++) if (colors[limit]!=colors[limit+1]) { count++; if (count>1) break; }
         }
         else secondTime=true;

      double MaxValue = High[0]*10.0;   
      for(i = limit; i>=0 ; i--)
      {
         if (i>Bars-2) continue;

         double cci = iRSI(NULL, 0, RSIPeriod, RSIPrice, i);
         colors[i]  = colors[i+1];

               if (cci>50) colors[i] =  1;
               if (cci<50) colors[i] = -1;
               for (int index=i; index<Bars; index++) if (colors[index]!=colors[index+1]) break;
               string name = UniqueID+":"+Time[index+1]; ObjectDelete(name); ObjectDelete(UniqueID+":"+Time[1]);

               datetime lastTime = Time[i-1]; i

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

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

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

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

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

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

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