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

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

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

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

О программе

Данный продукт представляет собой пользовательский индикатор для платформы MetaTrader 4, который отображает накопленный RSI и динамические зоны вероятностей в отдельном окне графика. Индикатор поддерживает несколько методов расчёта RSI и использует внешнюю библиотеку dynamicZone.dll для определения зон покупки и продажи.

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

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

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

НастройкаОписание
Rsi period to use (RsiPeriod) Период RSI — Период RSI для расчёта
Price to use (RsiPrice) Тип цены — Тип цены для расчёта RSI
Rsi type to use (RsiType) Тип RSI — Тип RSI для расчёта
Accumulate last n rsi values (AccPeriod) Период накопления — Количество последних значений RSI для накопления
Level up (%) (LevelUp) Уровень вверх (%) — Уровень вверх в процентах
Level down (%) (LevelDown) Уровень вниз (%) — Уровень вниз в процентах
Look back bars no (LookBackBars) Количество баров назад — Количество баров для анализа назад
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 — Отправлять ли уведомления по электронной почте
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers 7
#property indicator_color1  clrLimeGreen
#property indicator_color2  clrPaleVioletRed
#property indicator_color3  clrSilver
#property indicator_color4  clrLimeGreen
#property indicator_color5  clrLimeGreen
#property indicator_color6  clrPaleVioletRed
#property indicator_color7  clrPaleVioletRed
#property indicator_width3  2
#property indicator_width4  3
#property indicator_width5  3
#property indicator_width6  3
#property indicator_width7  3
#property indicator_style1  STYLE_DOT
#property indicator_style2  STYLE_DOT
#property strict

#import "dynamicZone.dll"
   double dzBuyP(double& sourceArray[],double probabiltyValue, int lookBack, int bars, int i,double precision);
   double dzSellP(double& sourceArray[],double probabiltyValue, int lookBack, int bars, int i,double precision);
#import
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
};

extern int                RsiPeriod       = 14;           // Rsi period to use
extern ENUM_APPLIED_PRICE RsiPrice        = PRICE_CLOSE;  // Price to use
extern enRsiTypes         RsiType         = rsi_rsi;      // Rsi type to use
extern int                AccPeriod       = 5;            // Accumulate last n rsi values
extern double             LevelUp         = 90;           // Level up (%)
extern double             LevelDown       = 10;           // Level down (%)
extern int                LookBackBars    = 25;           // Look back bars no
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?

double rsi[],rsic[],rsicDa[],rsicDb[],rsicUa[],rsicUb[];
double up[],down[],bellow[];

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

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;
   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 = workRsi[r][z+_price]-workRsi[r-1][z+_price];
                                  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]);
               }
            if (workRsi[r][z+_changa] != 0)
                  return(50.0*(workRsi[r][z+_change]/workRsi[r][z+_ch

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

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

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

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

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

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

Стоимость полного кода
718₽ ≈ $8.78