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

rsi experiment extended alerts.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 на выбранной цене и скользящей средней, а также определение направления тренда по сравнению с предыдущим баром.

Индикатор отображает три линии в отдельном окне: основное значение RSI и две вспомогательные линии, отмечающие точки разворота тренда. Поддерживается работа на разных таймфреймах с возможностью интерполяции данных.

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

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

НастройкаОписание
Time frame to use (TimeFrame) Таймфрейм — Используемый таймфрейм
Calculating period (pperiod) Период расчёта — Период расчёта RSI
Price (pprice) Тип цены — Тип цены для расчёта RSI
What ma method to use in rsi calculation (MaMethodToUse) Метод MA для RSI — Метод скользящей средней для расчёта RSI
Price smoothing (psmooth) Сглаживание цены — Период сглаживания цены
Price smoothing method (psmoothMethod) Метод сглаживания — Метод сглаживания цены
Lines width (linesWidth) Толщина линий — Толщина линий индикатора
Alerts on true/false? (alertsOn) Включить уведомления — Включение или выключение уведомлений
Alerts open bar true/false? (alertsOnCurrent) Уведомления для текущей свечи — Уведомления для текущей открытой свечи
Alerts message true/false? (alertsMessage) Всплывающее сообщение — Выводить всплывающее сообщение уведомления
Alerts sound true/false? (alertsSound) Звуковое уведомление — Воспроизводить звуковое уведомление
Alerts notification true/false? (alertsNotify) Пуш-уведомление — Отправлять пуш-уведомление
Alerts email true/false? (alertsEmail) Email-уведомление — Отправлять уведомление по электронной почте
Sound file to use (soundfile) Звуковой файл — Звуковой файл для уведомлений
Interpolate in multi time frame mode? (Interpolate) Интерполяция МТФ — Интерполяция в режиме нескольких таймфреймов
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1  clrDodgerBlue
#property indicator_color2  clrSandyBrown
#property indicator_color3  clrSandyBrown
#property indicator_width1  3
#property indicator_width2  3
#property indicator_width3  3
#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_tbiased2,   // Trend biased (extreme) 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
   pr_hatbiased2, // Heiken ashi trend biased (extreme) price
   pr_habclose,   // Heiken ashi (better formula) close
   pr_habopen ,   // Heiken ashi (better formula) open
   pr_habhigh,    // Heiken ashi (better formula) high
   pr_hablow,     // Heiken ashi (better formula) low
   pr_habmedian,  // Heiken ashi (better formula) median
   pr_habtypical, // Heiken ashi (better formula) typical
   pr_habweighted,// Heiken ashi (better formula) weighted
   pr_habaverage, // Heiken ashi (better formula) average
   pr_habmedianb, // Heiken ashi (better formula) median body
   pr_habtbiased, // Heiken ashi (better formula) trend biased price
   pr_habtbiased2 // Heiken ashi (better formula) trend biased (extreme) price
};
enum enRsiMaMethod
{
   rsm_original=-1, // Original RSI calculation
   rsm_sma,         // Calculate RSI using SMA
   rsm_ema,         // Calculate RSI using EMA
   rsm_smma,        // Calculate RSI using SMMA
   rsm_lwma         // Calculate RSI using LWMA
};

extern ENUM_TIMEFRAMES TimeFrame        = PERIOD_CURRENT;    // Time frame to use
extern int             pperiod          = 14;                // Calculating period
extern enPrices        pprice           = pr_close;          // Price
extern enRsiMaMethod   MaMethodToUse    = rsm_lwma;          // What ma method to use in rsi calculation
extern int             psmooth          = 32;                // Price smoothing
extern ENUM_MA_METHOD  psmoothMethod    = MODE_SMMA;         // Price smoothing method
extern int             linesWidth       =  3;                // Lines width
input bool             alertsOn         = true;              // Alerts on true/false?
input bool             alertsOnCurrent  = false;             // Alerts open bar true/false?
input bool             alertsMessage    = true;              // Alerts message true/false?
input bool             alertsSound      = true;              // Alerts sound true/false?
input bool             alertsNotify     = false;             // Alerts notification true/false?
input bool             alertsEmail      = false;             // Alerts email true/false?
input string           soundfile        = "alert2.wav";      // Sound file to use
extern bool            Interpolate      = true;              // Interpolate in multi time frame mode?

double buffer[];
double bufferda[];
double bufferdb[];
double trend[];
double prices[];
string indicatorFileName;
bool   returnBars;

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

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

double workRsi[][3];
#define _price  0
#define _change 1
#define _changa 2

double iRsi(int maMethod, double price, double period, int i, int instanceNo=0)
{
   if (ArrayRange(workRsi,0)!=Bars) ArrayResize(workRsi,Bars);
      int z = instanceNo*3; 
      int r = Bars-i-1;

   workRsi[r][z+_price] = price;
         if (r<period)
            {
               int k; double sum = 0; for (k=0; k<period && (r-k-1)>=0; k++) sum += MathAbs(workRsi[r-k][z+_price]-workRsi[r-k-1][z+_price]);
                  workRsi[r][z+_change] = (workRsi[r][z+_price]-workRsi[0][z+_price])/MathMax(k,1);
                  workRsi[r][z+_changa] =                                         sum/MathMax(k,1);
            }
         else
            {
               double alpha = 1.0/period; 
               double change = workRsi[r][z+_price]-workRsi[r-1][z+_price];
               switch (maMethod)
               {
                  case rsm_original :
                               workRsi[r][z+_change] = workRsi[r-1][z+_change] + alpha*(        change  - workRsi[r-1][z+_change]);
                               workRsi[r][z+_changa] = workRsi[r-1][z+_changa] + alpha*(MathAbs(change) - workRsi[r-1][z+_changa]);
                               break;
                  case rsm_sma :                    
                               workRsi[r][z+_change] = iSma(        change ,(int)period,r,0);
                               workRsi[r][z+_changa] = iSma(MathAbs(change),(int)period,r,1);
                               break;
                  case rsm_ema :                    
                               workRsi[r][z+_change] = iEma(        change ,period,r,0);
                               workRsi[r][z+_changa] = iEma(MathAbs(change),period,r,1);
                               break;
                  case rsm_smma :                    
                               workRsi[r][z+_c

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

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

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

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

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

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

Стоимость полного кода
1 178,50₽ ≈ $14.40