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

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

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

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

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

НастройкаОписание
Time frame to use (TimeFrame) Таймфрейм — Таймфрейм, на котором работает индикатор.
Price to use (RsiPrice) Цена для RSI — Тип цены для расчёта RSI (Close, Open, High, Low и другие варианты перечисления enPrices).
Rsi Period (RsiPeriod) Период RSI — Период расчёта индикатора RSI.
Oma Speed (OmaSpeed) Скорость OMA — Параметр скорости сглаживания OMA.
Use Oma Adaptive true or false (OmaAdaptive) Адаптивная OMA — Переключатель адаптивного режима расчёта OMA.
Bands Ma Period (MaPeriod) Период скользящей средней полос — Период скользящей средней для расчёта полос.
Bands Ma Method (MaMethod) Метод скользящей средней — Метод расчёта скользящей средней для полос (внутренний перечисление ENUM_MA_METHOD).
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_sig;        // 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 (rsiMa[i]>rsiMa[i+1]) trend[i]= 1;
               if (rsiMa[i]<rsiMa[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 < Bars && 

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

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

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

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

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

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

Стоимость полного кода
1 107,90₽ ≈ $13.54