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

parabolic_rsi.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 с заданным периодом и типом цены, применяет к ним сглаживание и обрабатывает результат через параболическую систему разворотов. Индикатор отображает результаты расчёта в отдельном окне с использованием четырёх буферов отображения.

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

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

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

НастройкаОписание
RsiPeriod Период RSI — Задаёт количество баров для расчёта индикатора RSI
RsiPrice Цена для RSI — Определяет тип цены, используемой при расчёте RSI
Step Шаг ускорения — Задаёт приращение ускорения параболической системы
Maximum Максимальное ускорение — Устанавливает верхний предел ускорения параболической системы
SmoothRsi Сглаживание RSI — Задаёт период сглаживания значения RSI
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1 DarkGray
#property indicator_color2 DarkGray
#property indicator_color3 LimeGreen
#property indicator_color4 PaleVioletRed

extern int       RsiPeriod = 13;
extern int       RsiPrice  = PRICE_CLOSE;
extern double    Step      = 0.01;
extern double    Maximum   = 0.1;
extern int       SmoothRsi = 3;

double SarBuffer[];
double SarUp[];
double SarDn[];
double Rsi[];

int    save_lastreverse;
bool   save_dirlong;
double save_start;
double save_last_high;
double save_last_low;
double save_ep;
double save_sar;

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

void SaveLastReverse(int last,int dir,double start,double low,double high,double ep,double sar)
  {
   save_lastreverse=last;
   save_dirlong=dir;
   save_start=start;
   save_last_low=low;
   save_last_high=high;
   save_ep=ep;
   save_sar=sar;
  }

int start()
  {
      // код доступен только после оплаты
   }
   static bool first=true;
   bool   dirlong;
   double start,last_high,last_low;
   double ep,sar,price_low,price_high,price;
   int    i,counted_bars=IndicatorCounted();
   int    limit = MathMin(Bars-counted_bars,Bars-1);

   if(Bars<3) return(0);

   for (i=limit; i>=0; i--) Rsi[i] = iTma(iRSI(NULL, 0, RsiPeriod,RsiPrice,i),SmoothRsi,i); 

   i=Bars-2;
   if(counted_bars==0 || first)
     {
      first=false;
      dirlong=true;
      start=Step;
      last_high=-10000000.0;
      last_low=10000000.0;
      while(i>0)
        {
         save_lastreverse=i;
         price_low=Rsi[i];
         if(last_low>price_low)   last_low=price_low;
         price_high=Rsi[i];
         if(last_high<price_high) last_high=price_high;
         if(price_high>Rsi[i+1] && price_low>Rsi[i+1]) break;
         if(price_high<Rsi[i+1] && price_low<Rsi[i+1]) { dirlong=false; break; }
         i--;
        }

      int k=i;
      while(k<Bars)
        {
         SarBuffer[k]=0.0;
         k++;
        }

      if(dirlong) { SarBuffer[i]=Rsi[i+1]; ep=Rsi[i]; }
      else        { SarBuffer[i]=Rsi[i+1]; ep=Rsi[i]; }
      i--;
     }
    else
     {
      i=save_lastreverse;
      start=save_start;
      dirlong=save_dirlong;
      last_high=save_last_high;
      last_low=save_last_low;
      ep=save_ep;
      sar=save_sar;
     }

   while(i>=0)
     {
      SarUp[i] = EMPTY_VALUE;
      SarDn[i] = EMPTY_VALUE;
      price_low=Rsi[i];
      p

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

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

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

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

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

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

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