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

Parabolic RSI

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

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

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

О программе

Индикатор Parabolic RSI представляет собой пользовательский индикатор для MetaTrader 5, который объединяет расчёт сглаженного RSI с логикой Parabolic SAR. Значения RSI сглаживаются с помощью собственной реализации тройного скользящего среднего (TMA), после к чему к ним применяется алгоритм Parabolic SAR, определяющий точки разворота на основе экстремумов ценовых значений RSI.

Индикатор поддерживает работу на разных таймфреймах (MTF): при выборе таймфрейма, отличного от текущего, он вызывает собственную копию через iCustom и выполняет интерполяцию значений между барами для отображения данных на графике текущего таймфрейма.

Встроенная система уведомлений позволяет настраивать оповещения по сообщениям, звуку и электронной почте при появлении сигналов разворота на указанном баре. Индикатор отрисовывает пять буферов: линию RSI и стрелки Parabolic SAR для направлений вверх и вниз, включая отдельные буферы для определения разворотов на предыдущем баре.

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

НастройкаОписание
TimeFrame Таймфрейм, на котором производится расчёт индикатора. При значении текущего таймфрейма расчёт выполняется на отображаемом графике.
RsiPeriod Период расчёта индикатора RSI — количество баров, используемых для вычисления основного значения RSI.
RsiSmooth Период сглаживания RSI — длина скользящего среднего, применяемого для сглаживания значений RSI.
AccStep Шаг ускорения Parabolic SAR — начальное значение ускорения, которое увеличивается при каждом новом экстремуме.
AccLimit Предел ускорения Parabolic SAR — максимальное значение ускорения, ограничивающее скорость изменения точки SAR.
alertsOn Главный переключатель системы уведомлений — включает или отключает все типы оповещений.
alertsOnCurrent Определяет, на каком баре отслеживать разворот: на текущем (нулевом) или на предыдущем баре.
alertsMessage Включает или отключает отображение текстовых сообщений-оповещений в терминале при развороте.
alertsSound Включает или отключает звуковое оповещение при срабатывании сигнала разворота.
alertsEmail Включает или отключает отправку электронной почты при срабатывании уведомлений о развороте.
Interpolate Переключатель интерполяции между барами при отображении данных с другого таймфрейма на текущем графике.
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers 5
#property indicator_color1  DarkGray
#property indicator_color2  LimeGreen
#property indicator_color3  PaleVioletRed
#property indicator_color4  LimeGreen
#property indicator_color5  PaleVioletRed
#property indicator_width4  2
#property indicator_width5  2

extern ENUM_TIMEFRAMES TimeFrame       = PERIOD_CURRENT;
extern int             RsiPeriod       = 14;
extern int             RsiSmooth       = 3;
extern double          AccStep         = 0.01;
extern double          AccLimit        = 0.1;
extern bool            alertsOn        = false;
extern bool            alertsOnCurrent = true;
extern bool            alertsMessage   = true;
extern bool            alertsSound     = false;
extern bool            alertsEmail     = false;
extern bool            Interpolate     = true;

double rsi[];
double sarUp[];
double sarDn[];
double saraUp[];
double saraDn[];
string indicatorFileName;
bool   returnBars;

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

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

double workTma[][2];
double iTma(double price, double period, int r, int instanceNo=0)
{
   if (ArrayRange(workTma,0)!= Bars) ArrayResize(workTma,Bars); r=Bars-r-1;
   if (period<=1) return(price);

   workTma[r][instanceNo] = price;

      double half = (period+1.0)/2.0;
      double sum  = price;
      double sumw = 1;

      for(int k=1; k<period && (r-k)>=0; k++)
      {
         double weight = k+1; if (weight > half) weight = period-k;
                sumw  += weight;
                sum   += weight*workTma[r-k][instanceNo];  
      }             
      retur

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

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

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

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

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

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

Стоимость полного кода
764,10₽ ≈ $9.34