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

rsi 3 time frames & alerts.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 на трёх настраиваемых таймфреймах и отображает их в отдельном окне. Каждая RSI-линия использует собственный период и тип цены, а таймфреймы задаются либо относительно текущего (например, текущий+1, текущий+2), либо в виде абсолютных значений.

Он отслеживает совпадение трендов на всех трёх таймфреймах и отмечает конвергенции стрелочными сигналами. Два пользовательских уровня (верхний и нижний) определяют зоны для классификации тренда каждой RSI.

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

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

НастройкаОписание
RsiTimeFrame1 Таймфрейм RSI 1 — Указывает таймфрейм для первой RSI-линии (например, "c+1" для следующего от текущего или абсолютное название).
RsiPeriod1 Период RSI 1 — Период расчёта первой RSI.
RsiPrice1 Тип цены RSI 1 — Тип цены для первой RSI (например, PRICE_CLOSE).
RsiTimeFrame2 Таймфрейм RSI 2 — Указывает таймфрейм для второй RSI-линии.
RsiPeriod2 Период RSI 2 — Период расчёта второй RSI.
RsiPrice2 Тип цены RSI 2 — Тип цены для второй RSI.
RsiTimeFrame3 Таймфрейм RSI 3 — Указывает таймфрейм для третьей RSI-линии.
RsiPeriod3 Период RSI 3 — Период расчёта третьей RSI.
RsiPrice3 Тип цены RSI 3 — Тип цены для третьей RSI.
LevelUp Верхний уровень — Верхний пороговый уровень для классификации тренда RSI.
LevelDown Нижний уровень — Нижний пороговый уровень для классификации тренда RSI.
Interpolate Интерполяция — Включает или выключает интерполяцию значений между барами разных таймфреймов.
alertsOnLevelsBreak Оповещение о пробое уровней — Разрешает оповещения при пробое верхнего или нижнего уровня RSI.
alertsOnLevelsRetrace Оповещение об откате от уровней — Разрешает оповещения при откате RSI от верхнего или нижнего уровня.
alertsOn50Align Оповещение о выравнивании на 50 — Разрешает оповещения при одновременном выравнивании всех трёх RSI по уровню 50.
alertsOn Включить оповещения — Главный переключатель системы оповещений.
alertsOnCurrent Оповещение на текущем баре — Определяет, на каком баре (текущем или предыдущем) отслеживать события.
alertsMessage Оповещение сообщением — Выводить оповещения в виде сообщений на графике.
alertsSound Оповещение звуком — Воспроизводить звуковой сигнал при срабатывании оповещения.
alertsEmail Оповещение по email — Отправлять email-уведомление при срабатывании оповещения.
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers 5
#property indicator_color1  DeepSkyBlue
#property indicator_color2  Blue
#property indicator_color3  PaleVioletRed
#property indicator_color4  Gold
#property indicator_color5  PaleVioletRed
#property indicator_width1  2
#property indicator_width2  2
#property indicator_width3  2
#property indicator_width4  3
#property indicator_width5  3
#property indicator_minimum 0
#property indicator_maximum 100

extern string RsiTimeFrame1       = "c+1";
extern int    RsiPeriod1          = 2;
extern int    RsiPrice1           = PRICE_CLOSE;
extern string RsiTimeFrame2       = "c+2";
extern int    RsiPeriod2          = 2;
extern int    RsiPrice2           = PRICE_CLOSE;
extern string RsiTimeFrame3       = "c+3";
extern int    RsiPeriod3          = 2;
extern int    RsiPrice3           = PRICE_CLOSE;
extern double LevelUp             = 93;
extern double LevelDown           =  7;
extern bool   Interpolate         = true;

extern bool alertsOnLevelsBreak   = false;
extern bool alertsOnLevelsRetrace = false;
extern bool alertsOn50Align       = true;
extern bool alertsOn              = false;
extern bool alertsOnCurrent       = true;
extern bool alertsMessage         = true;
extern bool alertsSound           = false;
extern bool alertsEmail           = false;

double rsi1[];
double rsi2[];
double rsi3[];
double arrowMidUp[];
double arrowMidDn[];

string indicatorFileName;
int    timeFrame1;
int    timeFrame2;
int    timeFrame3;
bool   returnBars;

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

double trends[][7];
#define trendm1 0
#define trendm2 1
#define trendm3 2
#define trendl1 3
#define trendl2 4
#define trendl3 5
#define trendmm 6

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

void setTrends(double& rsi[], int trendm,int trendl, int i)
{
   int r = Bars-i-1;
   trends[r][trendm] = trends[r-1][trendm];
   trends[r][trendl] = trends[r-1][trendl];
      if (rsi[i]>LevelUp)                     trends[r][trendl] = -1;
      if (rsi[i]<LevelDown)                   trends[r][trendl] = -1;
      if (rsi[i]<LevelUp && rsi[i]>LevelDown) trends[r][trendl] =  0;
      if (rsi[i]>50)                          trends[r][trendm] =  1;
      if (rsi[i]<50)                          trends[r][trendm] = -1;
}

void interpolate(double& buffer[], datetime time, int i)
{
   for (int n = 1; (i+n) < Bars && Time[i+n] >= time; n++) continue;

   if (buffer[i] == EMPTY_VALUE || buffer[i+n] == EMPTY_VALUE) n=-1;
               double increment = (buffer[i+n] - buffer[i])/ n;
   for (int k = 1; k < n; k++)     buffer[i+k] = buffer[i] + k*increment;
}

void manageAlerts()
{
   if (alertsOn)
   {
      if (alertsOnCurrent)
           int whichBar = 0;
      else     whichBar = 1;

      if (alertsOnLevelsBreak || alertsOnLevelsRetrace)
      {
         static datetime time1 = 0;
         static string   mess1 = "";
            int tfBar  = iBarShift(NULL,0,iTime(NULL,timeFrame1,whichBar));
            int forBar = Bars-whichBar-1;      

           

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

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

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

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

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

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

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