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

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

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

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

О программе

Данный продукт представляет собой пользовательский индикатор для платформы MetaTrader 5, который рассчитывает накопленные значения RSI и отображает их в отдельном окне с настраиваемыми уровнями. Индикатор накапливает последние N значений RSI и сравнивает их с верхним и нижним уровнями, которые могут рассчитываться как плавающие (на основе максимумов и минимумов) или квантильные.

Поддерживаются различные типы RSI, включая стандартный, медленный, быстрый, Харриса, RSX и Cuttler RSI, а также множество вариантов ценовых данных, включая цены Хайкин Аши. При пересечении накопленным значением заданных уровней индикатор меняет цвет свечей.

Индикатор оснащён системой уведомлений, которая срабатывает при изменении состояния: поддерживаются всплывающие сообщения, звуковые сигналы и email-уведомления. Также реализована возможность работы в многотаймфреймовом режиме с интерполяцией данных.

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

НастройкаОписание
Time frame to use (TimeFrame) Таймфрейм, на котором рассчитывается индикатор
Rsi period to use (RsiPeriod) Период расчёта индикатора RSI
Price to use (RsiPrice) Тип цены, используемой для расчёта RSI, включая стандартные OHLC и цены Хайкин Аши
Rsi price filter (RsiPriceFilter) Параметр фильтра цены, используемый при предварительном сглаживании данных перед расчётом RSI
Rsi price filter type (RsiPriceFilterType) Тип сглаживания для фильтра цены (например, экспоненциальное скользящее среднее)
Rsi type to use (RsiType) Вариант расчёта RSI: стандартный, медленный, быстрый, Харриса, RSX или Cuttler RSI
Accumulate last n rsi values (AccPeriod) Количество последних значений RSI, которые накапливаются для расчёта
Levels type (LevelsType) Тип уровней: плавающие (на основе максимумов и минимумов) или квантильные
Levels period (LevelsPeriod) Период, за который рассчитываются плавающие или квантильные уровни
Upper level % (LevelsUp) Процентное значение верхнего уровня относительно диапазона накопленных значений
Lower level % (LevelsDown) Процентное значение нижнего уровня относительно диапазона накопленных значений
Color change on : (ColorOn) Задаёт условие изменения цвета линий индикатора: при пересечении уровней, при пересечении средней линии или при изменении наклона
Turn alerts on (alertsOn) Включает или отключает систему уведомлений индикатора
Alerts on current (still opened) bar? (alertsOnCurrent) Определяет, будут ли уведомления проверяться на текущем (открытом) баре или на следующем закрытом баре
Alerts should display a pop-up message (alertsMessage) Включает или отключает отображение всплывающего сообщения при срабатывании алерта
Alerts should play an alert sound? (alertsSound) Включает или отключает воспроизведение звукового сигнала при срабатывании алерта
Alerts should send an email? (alertsEmail) Включает или отключает отправку email-уведомлений при срабатывании алерта
Interpolate in multi time frame mode? (Interpolate) Включает или отключает интерполяцию значений при работе в многотаймфреймовом режиме
Получить полный код

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

???//------------------------------------------------------------------

#property indicator_separate_window
#property indicator_buffers 8
#property indicator_color1  clrLimeGreen
#property indicator_color2  clrSilver
#property indicator_color3  clrPaleVioletRed
#property indicator_color4  clrSilver
#property indicator_color5  clrLimeGreen
#property indicator_color6  clrLimeGreen
#property indicator_color7  clrPaleVioletRed
#property indicator_color8  clrPaleVioletRed
#property indicator_width4  2
#property indicator_width5  3
#property indicator_width6  3
#property indicator_width7  3
#property indicator_width8  3
#property indicator_style1  STYLE_DOT
#property indicator_style2  STYLE_DOT
#property indicator_style3  STYLE_DOT
#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
};
enum enRsiTypes
{
   rsi_rsi,  // Regular RSI
   rsi_slow, // Slow RSI
   rsi_rap,  // Rapid RSI
   rsi_har,  // Harris RSI
   rsi_rsx,  // RSX
   rsi_cut   // Cuttlers RSI
};
enum enColorOn
{
   cc_onSlope,   // Change color on slope change
   cc_onMiddle,  // Change color on middle line cross
   cc_onLevels   // Change color on outer levels cross
};
enum enLevelType
{
   lvl_floa,  // Floating levels
   lvl_quan   // Quantile levels
};

extern ENUM_TIMEFRAMES    TimeFrame       = PERIOD_CURRENT; // Time frame to use
extern int                RsiPeriod       = 14;           // Rsi period to use
extern enPrices           RsiPrice        = pr_close;     // Price to use
extern int                RsiPriceFilter  = 1;            // Rsi price filter
extern ENUM_MA_METHOD     RsiPriceFilterType = MODE_EMA;  // Rsi price filter type
extern enRsiTypes         RsiType         = rsi_rsi;      // Rsi type to use
extern int                AccPeriod       = 5;            // Accumulate last n rsi values
extern enLevelType        LevelsType      = lvl_floa;     // Levels type
extern int                LevelsPeriod    = 25;           // Levels period
extern double             LevelsUp        = 80;           // Upper level %
extern double             LevelsDown      = 20;           // Lower level %
extern enColorOn          ColorOn         = cc_onLevels;    // Color change on :
extern bool               alertsOn        = false;        // Turn alerts on
extern bool               alertsOnCurrent = false;        // Alerts on current (still opened) bar?
extern bool               alertsMessage   = true;         // Alerts should display a pop-up message
extern bool               alertsSound     = true;         // Alerts should play an alert sound?
extern bool               alertsEmail     = false;        // Alerts should send an email?
extern bool               Interpolate     = true;         // Interpolate in multi time frame mode?

double rsi[],rsic[],rsicDa[],rsicDb[],rsicUa[],rsicUb[],levup[],levmi[],levdn[],state[],prices[],count[];
string indicatorFileName;
#define _mtfCall(_buff,_ind) iCustom(NULL,TimeFrame,indicatorFileName,PERIOD_CURRENT,RsiPeriod,RsiPrice,RsiPriceFilter,RsiPriceFilterType,RsiType,AccPeriod,LevelsType,LevelsPeriod,LevelsUp,LevelsDown,ColorOn,alertsOn,alertsOnCurrent,alertsMessage,alertsSound,alertsEmail,_buff,_ind)

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

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

string rsiMethodNames[] = {"RSI","Slow RSI","Rapid RSI","Harris RSI","RSX","Cuttler RSI"};
string getRsiName(int method)
{
   int max = ArraySize(rsiMethodNames)-1;
      method=MathMax(MathMin(method,max),0); return(rsiMethodNames[method]);
}

double workRsi[][13];
#define _price  0
#define _change 1
#define _changa 2
#define _rsival 1
#define _rsval  1

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

   workRsi[r][z+_price] = price;
   period = MathMax(period,1);
   switch (rsiMode)
   {
      case rsi_rsi:
         {
            double alpha = 1.0/period; 
            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 change = wo

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

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

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

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

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

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

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