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

one more average rsi bands mtf alerts 2_2__1.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 с возможностью мультитаймфреймного режима. Рассчитывает значения RSI с использованием адаптивной скользящей средней OMA, строит верхнюю и нижнюю границы полос на основе скользящей средней RSI и заданного расстояния между ними.

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

Встроенная система уведомлений позволяет настраивать отправку алертов в виде всплывающих сообщений, звуковых сигналов, электронной почты и push-уведомлений. Работа с ценовыми данными поддерживает стандартные типы цен, а также цены Хейкин Аши.

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

НастройкаОписание
Time frame to use (TimeFrame) Таймфрейм — Таймфрейм, на котором работает индикатор
Price to use (RsiPrice) Цена для RSI — Тип цены, используемый для расчёта RSI
Rsi Period (RsiPeriod) Период RSI — Период расчёта индикатора RSI
Oma Speed (OmaSpeed) Скорость OMA — Скорость сглаживания OMA
Use Oma Adaptive true or false (OmaAdaptive) Адаптивная OMA — Включает или отключает адаптивный расчёт периода OMA
Bands Ma Period (MaPeriod) Период MA полос — Период скользящей средней для расчёта полос
Bands Ma Method (MaMethod) Метод MA полос — Метод скользящей средней для расчёта полос
Color change on : (ColorOn) Условие изменения цвета — Условие изменения цвета линии: по изменению наклона или по пересечению сигнала
Distance between bands (koridor) Расстояние между полосами — Расстояние между верхней и нижней полосами от скользящей средней RSI
Turn alerts on (alertsOn) Включить алерты — Включает или отключает систему алертов
Alerts on current (still opened) bar (alertsOnCurrent) Алерты на текущем баре — Определяет, генерировать ли алерты на текущем открытом баре
Alerts should display alert message (alertsMessage) Всплывающие сообщения — Включает или отключает отображение всплывающих сообщений об алертах
Alerts should play alert sound (alertsSound) Звуковые алерты — Включает или отключает воспроизведение звукового сигнала при алертах
Alerts should send alert email? (alertsEmail) Email-уведомления — Включает или отключает отправку алертов по электронной почте
Alerts should send alert notification (alertsNotify) Push-уведомления — Включает или отключает отправку push-уведомлений об алертах
Alerts soundfile name (soundfile) Звуковой файл — Имя звукового файла для воспроизведения при алертах
Interpolate in multi time frame mode? (Interpolate) Интерполяция MTF — Включает интерполяцию значений при отображении на мультитаймфреймах
Draw as dots or regular line (drawDots) Отрисовка точками — Определяет отрисовку сигнальных линий точками или обычными линиями
Oversold level (levelOs) Уровень перепроданности — Уровень перепроданности для отображения горизонтальной линии
Overbought level (levelOb) Уровень перекупленности — Уровень перекупленности для отображения горизонтальной линии
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers    6
#property indicator_color1     clrYellow
#property indicator_color2     clrAqua
#property indicator_color3     clrAqua
#property indicator_color4     clrLime
#property indicator_color5     clrRed
#property indicator_color6     clrRed
#property indicator_width1     3
#property indicator_minimum    0
#property indicator_maximum    100
#property indicator_levelcolor clrDarkSlateGray
#property strict

enum enPrices
{
   pr_close,      // Close
   pr_open,       // Open
   pr_high,       // High
   pr_low,        // Low
   pr_median,     // Median
   pr_typical,    // Typical
   pr_weighted,   // Weighted
   pr_average,    // Average (high+low+open+close)/4
   pr_medianb,    // Average median body (open+close)/2
   pr_tbiased,    // Trend biased price
   pr_haclose,    // Heiken ashi close
   pr_haopen ,    // Heiken ashi open
   pr_hahigh,     // Heiken ashi high
   pr_halow,      // Heiken ashi low
   pr_hamedian,   // Heiken ashi median
   pr_hatypical,  // Heiken ashi typical
   pr_haweighted, // Heiken ashi weighted
   pr_haaverage,  // Heiken ashi average
   pr_hamedianb,  // Heiken ashi median body
   pr_hatbiased   // Heiken ashi trend biased price
};
enum enColorOn
{
   clr_slp, // Color change on slope change
   clr_sig  // Color change on signal cross
};
extern ENUM_TIMEFRAMES TimeFrame       = PERIOD_CURRENT; // Time frame to use
extern enPrices        RsiPrice        = pr_close;       // Price to use 
extern double          RsiPeriod       = 34;             // Rsi Period
extern double          OmaSpeed        = 2.0;            // Oma Speed
extern bool            OmaAdaptive     = true;           // Use Oma Adaptive true or false
extern int             MaPeriod        = 34;             // Bands Ma Period
extern ENUM_MA_METHOD  MaMethod        = 3;              // Bands Ma Method
extern enColorOn       ColorOn         = clr_slp;        // Color change on :
extern int             koridor         = 5;              // Distance between bands
extern bool            alertsOn        = true;           // Turn alerts on
extern bool            alertsOnCurrent = true;           // Alerts on current (still opened) bar
extern bool            alertsMessage   = true;           // Alerts should display alert message
extern bool            alertsSound     = true;           // Alerts should play alert sound
extern bool            alertsEmail     = false;          // Alerts should send alert email?
extern bool            alertsNotify    = false;          // Alerts should send alert notification
extern string          soundfile       = "alert2.wav";   // Alerts soundfile name
extern bool            Interpolate     = true;           // Interpolate in multi time frame mode?
extern bool            drawDots        = true;           // Draw as dots or regular line
extern double          levelOs         = 20;             // Oversold level
extern double          levelOb         = 80;             // Overbought level

double rsi[];
double upBand[];
double dnBand[];
double rsiMaDa[];
double rsiMaDb[];
double rsiMa[];
double trend[];
string indicatorFileName;
bool   returnBars;

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 (TimeFrame==Period())
   {
     if (!drawDots) if (trend[limit] == -1) CleanPoint(limit,rsiMaDa,rsiMaDb);
     for (i=limit; i>=0; i--) rsi[i] = iRsi(getPrice(RsiPrice,Open,Close,High,Low,i),RsiPeriod,OmaSpeed,OmaAdaptive,i);
     for (i=limit; i>=0; i--) 
     {
        rsiMa[i]  = iMAOnArray(rsi,0,MaPeriod,0,MaMethod,i);
        upBand[i] = rsiMa[i]+koridor;
        dnBand[i] = rsiMa[i]-koridor;
        rsiMaDa[i] = EMPTY_VALUE;
        rsiMaDb[i] = EMPTY_VALUE;
        if (i<Bars-1)
        {
            trend[i] = trend[i+1];
            if (ColorOn==clr_sig)
            {
               if (rsi[i]>rsiMa[i]) trend[i]= 1;
               if (rsi[i]<rsiMa[i]) trend[i]=-1;
            }
            else
            {
               if (rsi[i]>rsi[i+1]) trend[i]= 1;
               if (rsi[i]<rsi[i+1]) trend[i]=-1;
            }               
            if (trend[i]==-1) 
               if    (drawDots) rsiMaDa[i] = rsiMa[i];
               else  PlotPoint(i,rsiMaDa,rsiMaDb,rsiMa);
         }                             
      }

   if (alertsOn)
   {
      int whichBar = 1; if (alertsOnCurrent) whichBar = 0;
      if (trend[whichBar] != trend[whichBar+1])
      {
         if (trend[whichBar] ==  1) doAlert(whichBar,"up");
         if (trend[whichBar] == -1) doAlert(whichBar,"down");
      }
   }
   return(0);
   }

   limit = (int)MathMax(limit,MathMin(Bars-1,iCustom(NULL,TimeFrame,indicatorFileName,-99,0,0)*TimeFrame/Period()));
   if (trend[limit]==-1) CleanPoint(limit,rsiMaDa,rsiMaDb);
   for(i=limit; i>=0; i--)
   {
      int y = iBarShift(NULL,TimeFrame,Time[i]);
         rsi[i]     = iCustom(NULL,TimeFrame,indicatorFileName,PERIOD_CURRENT,RsiPrice,RsiPeriod,OmaSpeed,OmaAdaptive,MaPeriod,MaMethod,ColorOn,koridor,alertsOn,alertsOnCurrent,alertsMessage,alertsSound,alertsEmail,alertsNotify,soundfile,0,y);
         upBand[i]  = iCustom(NULL,TimeFrame,indicatorFileName,PERIOD_CURRENT,RsiPrice,RsiPeriod,OmaSpeed,OmaAdaptive,MaPeriod,MaMethod,ColorOn,koridor,alertsOn,alertsOnCurrent,alertsMessage,alertsSound,alertsEmail,alertsNotify,soundfile,1,y);
         dnBand[i]  = iCustom(NULL,TimeFrame,indicatorFileName,PERIOD_CURRENT,RsiPrice,RsiPeriod,OmaSpeed,OmaAdaptive,MaPeriod,MaMethod,ColorOn,koridor,alertsOn,alertsOnCurrent,alertsMessage,alertsSound,alertsEmail,alertsNotify,soundfile,2,y);
         rsiMa[i]   = iCustom(NULL,TimeFrame,indicatorFileName,PERIOD_CURRENT,RsiPrice,RsiPeriod,OmaSpeed,OmaAdaptive,MaPeriod,MaMethod,ColorOn,koridor,alertsOn,alertsOnCurrent,alertsMessage,alertsSound,alertsEmail,alertsNotify,soundfile,3,y);
         rsiMaDa[i] = EMPTY_VALUE;
         rsiMaDb[i] = EMPTY_VALUE;
         trend[i]   = iCustom(NULL,TimeFrame,indicatorFileName,PERIOD_CURRENT,RsiPrice,RsiPeriod,OmaSpeed,OmaAdaptive,MaPeriod,MaMethod,ColorOn,koridor,alertsOn,alertsOnCurrent,alertsMessage,alertsSound,alertsEmail,alertsNotify,soundfile,6,y);
         if (drawDots && trend[i]==-1) rsiMaDa[i] = rsiMa[i]; 

         if (!Interpolate || (i>0 && y==iBarShift(NULL,TimeFrame,Time[i-1]))) continue;

         int n,k; datetime time = iTime(NULL,TimeFrame,y);
            for(n = 1; i+n <

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

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

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

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

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

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

Стоимость полного кода
1 105,10₽ ≈ $13.51