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

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

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

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

О программе

Данный продукт представляет собой индикатор для MetaTrader 5, рассчитывающий значение RSI (Relative Strength Index) с возможностью работы на разных таймфреймах. Индикатор отображает расчётную линию в отдельном окне и окрашивает участки в зоне перекупленности и перепроданности в соответствующие цвета.

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

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

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

НастройкаОписание
TimeFrame Таймфрейм для расчёта индикатора. По умолчанию используется текущий таймфрейм графика. Допускаются текстовые обозначения (M1, M5, H1, D1 и др.) или специальные режимы calculateValue и returnBars.
Length Период расчёта индикатора RSI. Значение автоматически ограничивается минимумом 1.
Price Тип цены для расчёта RSI: Close (закрытие), Open (открытие), High (максимум), Low (минимум), Median (медиана), Typical (типичная), Weighted (взвешенная).
LevelUp Верхний уровень RSI, выше которого индикатор считается в зоне перекупленности.
LevelDown Нижний уровень RSI, ниже которого индикатор считается в зоне перепроданности.
alertsOn Общий переключатель включения и отключения всех типов уведомлений.
alertsOnZoneEnter Переключатель отправки уведомлений при входе в зону перекупленности или перепроданности.
alertsOnZoneExit Переключатель отправки уведомлений при выходе из зоны перекупленности или перепроданности.
alertsOnCurrent Определяет, на каком баре отслеживать изменение тренда: текущий (true) или предыдущий (false).
alertsMessage Переключатель всплывающих сообщений-оповещений на графике при срабатывании условий.
alertsSound Переключатель воспроизведения звукового сигнала при срабатывании условий оповещения.
alertsEmail Переключатель отправки уведомлений по электронной почте при срабатывании условий оповещения.
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers  5
#property indicator_color1   Gray
#property indicator_color2   LimeGreen
#property indicator_color3   LimeGreen
#property indicator_color4   Orange
#property indicator_color5   Orange
#property indicator_width1   2
#property indicator_width2   2
#property indicator_width3   2
#property indicator_width4   2
#property indicator_minimum  0
#property indicator_maximum  100

extern string TimeFrame              = "Current time frame";
extern int    Length                 = 14;
extern int    Price                  = PRICE_CLOSE;
extern double LevelUp                = 70;
extern double LevelDown              = 30;
extern bool   alertsOn               = false;
extern bool   alertsOnZoneEnter      = true;
extern bool   alertsOnZoneExit       = true;
extern bool   alertsOnCurrent        = true;
extern bool   alertsMessage          = true;
extern bool   alertsSound            = false;
extern bool   alertsEmail            = false;

double rsi[];
double rsiUa[];
double rsiUb[];
double rsiDa[];
double rsiDb[];
double trend[];

string indicatorFileName;
bool   returnBars;
bool   calculateValue;
int    timeFrame;

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

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 (returnBars) { rsi[0] = MathMin(limit+1,Bars-1); return(0); }

   if (calculateValue || timeFrame == Period())
   {
      if (!calculateValue && trend[limit]== 1) CleanPoint(limit,rsiUa,rsiUb);
      if (!calculateValue && trend[limit]==-1) CleanPoint(limit,rsiDa,rsiDb);
      for(i=limit; i >= 0; i--)
      {
         rsi[i]   = iRSI(NULL,0,Length,Price,i);
         rsiUa[i] = EMPTY_VALUE;
         rsiUb[i] = EMPTY_VALUE;
         rsiDa[i] = EMPTY_VALUE;
         rsiDb[i] = EMPTY_VALUE;
         trend[i] = trend[i+1];
            if (rsi[i]>LevelUp)                     trend[i]= 1;
            if (rsi[i]<LevelDown)                   trend[i]=-1;
            if (rsi[i]<LevelUp && rsi[i]>LevelDown) trend[i]= 0;
            if (!calculateValue && trend[i] ==  1) PlotPoint(i,rsiUa,rsiUb,rsi);
            if (!calculateValue && trend[i] == -1) PlotPoint(i,rsiDa,rsiDb,rsi);
      }
      manageAlerts();
      return(0);
   }   

   limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrame,indicatorFileName,"returnBars",0,0)*timeFrame/Period()));
   if (trend[limit]== 1) CleanPoint(limit,rsiUa,rsiUb);
   if (trend[limit]==-1) CleanPoint(limit,rsiDa,rsiDb);
   for (i=limit;i>=0;i--)
   {
  

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

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

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

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

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

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

Стоимость полного кода
571,10₽ ≈ $6.98