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

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

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

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

О программе

Индикатор «RSI Smoothed BandsFBA Oscillator» рассчитывает значение RSI по выбранной цене, сглаживает его скользящей средней и строит полосы отклонения на основе стандартного отклонения от уровня 50. Дополнительно применяются полосы Боллинджера с адаптацией по методу FBA (Forward Backward Adaptation), что позволяет сглаживать компоненты полос в зависимости от направления цены.

На основе адаптированных полос формируется осциллятор, показывающий позицию цены относительно нижней и верхней границы в процентах. Значения осциллятора могут использоваться для оценки экстремумов и разворотов цены.

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

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

НастройкаОписание
RSIPrice Тип цены для расчёта RSI: 0 — Close, 1 — Open, 2 — High и другие значения.
RSIPeriod Период расчёта индикатора RSI. Определяет количество баров, используемых для вычисления RSI.
MA_Period Период сглаживания скользящей средней, применяемой к значениям RSI.
MA_Mode Метод сглаживания для скользящей средней RSI: 0 — SMA, 1 — EMA, 2 — SMMA, 3 — LWMA.
BandsPeriod Период расчёта полос отклонения на основе скользящей средней RSI. Определяет ширину расчётного окна.
K_Dev Множитель стандартного отклонения для расчёта ширины полос отклонения RSI. Определяет расстояние верхней и нижней полос от центрального уровня 50.
BandsFBAPeriod Период расчёта адаптированных полос Боллинджера (FBA). Используется для определения верхней и нижней границ с учётом сглаживания.
BandsShift Сдвиг полос Боллинджера по горизонтали. Позволяет смещать отображение полос относительно текущего бара.
OscPrice Тип цены для расчёта осциллятора: 0 — Close, 1 — Open, 2 — High, 3 — Low, 4 — Middle, 5 — Typical, 6 — Weighted.
FrontPeriod Период передней EMA для адаптации; при значении больше 1 преобразуется в коэффициент сглаживания (2/(1+значение)). Должен быть меньше или равен BackPeriod.
BackPeriod Период задней EMA для адаптации; при значении больше 1 преобразуется в коэффициент сглаживания (2/(1+значение)). Должен быть больше или равен FrontPeriod для корректной работы.
Sens Чувствительность — множитель минимального стандартного отклонения. Используется для ограничения нижней границы стандартного отклонения полос Боллинджера.
Получить полный код

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

#property indicator_separate_window                         // ????????? ? ????????? ????
#property indicator_buffers 5                                     // ?????????? ??????? 5

#property indicator_color3 Blue                                  // ???? ??????? ????? ??
#property indicator_color4 Red                                    // ???? ?????? ????? ??
#property indicator_color5 MediumSeaGreen       // ???? ??????? ????? BandsFBA Oscillator

extern int RSIPrice = PRICE_CLOSE;    // ???? RSI: 0 - Close, 1 - Open, 2 - High ? ?. ?.
extern int RSIPeriod = 11;                                     // ?????? ??? ??????? RSI
extern int MA_Period = 8;                                 // ?????? ???????????? ???????
extern int MA_Mode = MODE_LWMA;              // ????? ???????????? ???????: 0 - ???????,

extern int BandsPeriod = 27;                                    // ?????? ??? ??????? ??
extern double K_Dev = 3.6;                      // ??????????? ??????. ??? ??????? ?????
extern int BandsFBAPeriod = 20;                                 // ?????? ??????????? BB
extern int BandsShift = 0;                                       // ????? ??????????? ??
extern int OscPrice = 0;                                   // ??? ???? (?????. ????????)
extern double FrontPeriod = 1;                     // ?????? ??????????? ??????; ?.?. <1
extern double BackPeriod = 55;                  // ?????? ??????????? ?????????; ?.?. <1
extern int Sens = 0;                                     // ????? ???????????????? ? ??.

double RSIBuffer[];               // ??????????? ????? ??? ??????? ????? ??????????? RSI
double RSI[];                                 // ??????????? ????? ??? ??????? ????? RSI

double Up_Buffer[];                                // ????? ??? ??????? ??????? ????? ??
double Dn_Buffer[];                                 // ????? ??? ??????? ?????? ????? ??
double Main[];                                 // ????? ??? ??????? ????? ??????????? ??

bool first = 1;                                                  // ???? ??????? ???????
double per0,per1;                                                        // ?????-?? EMA
int FBA=0;         // 1 - ??????????? ??????, -1 - ??????????? ?????????, 0 - ??????? MA
double sens;                                           // ????? ???????????????? ? ?????

int init()
   {
      // код доступен только после оплаты
   }
   string short_name="RSI_Smoothed_BB("+RSIPeriod+","+BandsPeriod+","+
                     DoubleToStr(K_Dev, 2)+")";
   IndicatorShortName(short_name);                           // ????????? ????????? ?????

   SetIndexStyle(0, DRAW_NONE);      // ????? ????? - ???, ????? ???????? ?? ????????????
   SetIndexBuffer(0, RSIBuffer);                   // ????? ?????? ?????? ? ????. ???????

   SetIndexBuffer(1, RSI);                         // ????? ?????? ?????? ? ????. ???????
   SetIndexStyle(1, DRAW_NONE);      // ????? ????? - ???, ????? ???????? ?? ????????????

   SetIndexStyle(2, DRAW_LINE);                                            // ????? ?????
   SetIndexBuffer(2, Up_Buffer);                   // ????? ?????? ?????? ? ????. ???????
   SetIndexDrawBegin(2, BandsPeriod);                // ?????? ????????? ??????? ????? BB

   SetIndexStyle(3, DRAW_LINE);                                            // ????? ?????
   SetIndexBuffer(3, Dn_Buffer);                   // ????? ?????? ?????? ? ????. ???????
   SetIndexDrawBegin(3, BandsPeriod);                 // ?????? ????????? ?????? ????? BB

   SetIndexBuffer(4, Main);                        // ????? ?????? ?????? ? ????. ???????
   SetIndexStyle(4, DRAW_LINE);                                            // ????? ?????

   first = 1;
   sens = Sens*Point;                                   // ????? ???????????????? ? ?????

   if(FrontPeriod>1) FrontPeriod=2.0/(1+FrontPeriod);       // ?????. ??????????????? EMA
   if(BackPeriod>1) BackPeriod=2.0/(1+BackPeriod);               // ?????. ?????????? EMA

   while(true) 
     {
      if (FrontPeriod==BackPeriod) 
        {
         per0=FrontPeriod; 
         per1=1; 
         break;
        }
      if (FrontPeriod>BackPeriod) 
        {
         FBA = -1;
         per0 = FrontPe

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

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

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

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

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

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

Стоимость полного кода
488,50₽ ≈ $5.97