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

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

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

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

О программе

Параметр TimeFrame задаёт таймфрейм для расчёта индикатора. По умолчанию используется текущий таймфрейм, но также доступны все стандартные периоды (M1–MN). Параметр Length определяет период расчёта RSI, а Price выбирает тип цены (Close, Open, High, Low и др.). RSIModifier позволяет умножить полученное значение RSI на заданный коэффициент.

Индикатор отображает два уровня — LevelUp и LevelDown — и рисует линии тренда при пересечении RSI этих уровней. Зоны выше LevelUp и ниже LevelDown выделены цветом, что позволяет визуально оценить силу тренда.

Система уведомлений поддерживает срабатывание при входе и выходе из зон (alertsOnZoneEnter, alertsOnZoneExit). Можно выбрать, на каком баре срабатывает оповещение (текущий или предыдущий). Доступны различные типы уведомлений: всплывающие сообщения, звуковые сигналы, push-уведомления и email.

Реализована поддержка мультитаймфреймного режима через специальные режимы работы calculateValue и returnBars, позволяющие передавать данные между таймфреймами.

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

НастройкаОписание
TimeFrame Таймфрейм для расчёта индикатора. Может принимать названия периодов (M1, M5, M15, M30, H1, H4, D1, W1, MN) или специальные значения calculateValue и returnBars для межтаймфреймной передачи данных. По умолчанию — текущий таймфрейм.
Length Период расчёта индикатора RSI. Устанавливается целым числом, по умолчанию 14. Значение автоматически ограничивается снизу до 1.
Price Тип цены для расчёта RSI. 0 — Close, 1 — Open, 2 — High, 3 — Low, 4 — Median, 5 — Typical, 6 — Weighted. По умолчанию 0 (Close).
RSIModifier Множитель для значения RSI. Позволяет скорректировать результат расчёта. Устанавливается числом, по умолчанию 1.0.
LevelUp Верхний уровень RSI. При значении индикатора выше этого уровня определяется медвежий тренд. Устанавливается числом, по умолчанию 50.
LevelDown Нижний уровень RSI. При значении индикатора ниже этого уровня определяется бычий тренд. Устанавливается числом, по умолчанию 50.
alertsOn Главный переключатель системы уведомлений. При значении false все алерты отключены. Переключатель, по умолчанию включён (true).
alertsOnZoneEnter Включает срабатывание алертов при входе RSI в зону (пересечение уровня вверх или вниз). Переключатель, по умолчанию включён (true).
alertsOnZoneExit Включает срабатывание алертов при выходе RSI из зоны (пересечение уровня в обратном направлении). Переключатель, по умолчанию включён (true).
alertsOnCurrent Определяет, на каком баре срабатывают алерты: true — на текущем баре, false — на предыдущем. Переключатель, по умолчанию включён (true).
alertsMessage Включает или отключает всплывающие сообщения при срабатывании алертов. Переключатель, по умолчанию включён (true).
alertsSound Включает или отключает звуковой сигнал при срабатывании алертов. Переключатель, по умолчанию включён (true).
alertsNotify Включает или отключает push-уведомления при срабатывании алертов. Переключатель, по умолчанию отключён (false).
alertsEmail Включает или отключает отправку email-уведомлений при срабатывании алертов. Переключатель, по умолчанию отключён (false).
Получить полный код

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

#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 RSIModifier       = 1.0;
extern double LevelUp           = 50;
extern double LevelDown         = 50;
extern bool   alertsOn          = true;
extern bool   alertsOnZoneEnter = true;
extern bool   alertsOnZoneExit  = true;
extern bool   alertsOnCurrent   = true;
extern bool   alertsMessage     = true;
extern bool   alertsSound       = true;
extern bool   alertsNotify      = 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();
      if(counted_bars<0) return(-1);
      if(counted_bars>0) counted_bars--;
         int 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(int i=limit; i >= 0; i--)
      {
         rsi[i]   = RSIModifier*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--)
   {
      int y = iBarShift(NULL,timeFrame,Time[i]);
        

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

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

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

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

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

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

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