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

QQE

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

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

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

О программе

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

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

Входные параметры позволяют настроить период и коэффициент сглаживания RSI, множители для уровней и тип цены. Индикатор подходит для анализа ценовых данных и технических показателей на платформе MetaTrader 5.

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

НастройкаОписание
inpRsiPeriod Период расчёта RSI — задаёт количество баров, используемых для вычисления индикатора относительной силы.
inpRsiSmoothingFactor Коэффициент сглаживания RSI — определяет период экспоненциального сглаживания значения RSI.
inpWPFast Множитель для быстрой линии уровней — задаёт коэффициент, определяющий ширину верхнего уровня.
inpWPSlow Множитель для медленной линии уровней — задаёт коэффициент, определяющий ширину нижнего уровня.
inpPrice Тип цены, используемый для расчёта индикатора (например, закрытие, открытие, максимум, минимум и др.).
Получить полный код

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

#property description "QQE"

#property indicator_separate_window
#property indicator_buffers 4
#property indicator_plots   3
#property indicator_label1  "QQE fast"
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrDarkGray
#property indicator_style1  STYLE_DOT
#property indicator_label2  "QQE slow"
#property indicator_type2   DRAW_LINE
#property indicator_color2  clrDarkGray
#property indicator_label3  "QQE"
#property indicator_type3   DRAW_COLOR_LINE
#property indicator_color3  clrDarkGray,clrDeepSkyBlue,clrLightSalmon
#property indicator_width3  2

input int                inpRsiPeriod          = 14;         // RSI period
input int                inpRsiSmoothingFactor =  5;         // RSI smoothing factor
input double             inpWPFast             = 2.618;      // Fast period
input double             inpWPSlow             = 4.236;      // Slow period
input ENUM_APPLIED_PRICE inpPrice=PRICE_CLOSE; // Price 

double val[],valc[],levs[],levf[];

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

void OnDeinit(const int reason)
  {
  }

int OnCalculate(const int rates_total,const int prev_calculated,const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
      // код доступен только после оплаты
   }
   if(Bars(_Symbol,_Period)<rates_total) return(prev_calculated);
   int i=(int)MathMax(prev_calculated-1,0); for(; i<rates_total && !_StopFlag; i++)
     {
      val[i]=iEma(iRsi(getPrice(inpPrice,open,close,high,low,i,rates_total),inpRsiPeriod,i,rates_total),inpRsiSmoothingFactor,i,rates_total,0);
      double _iEma = iEma((i>0 ? MathAbs(val[i-1]-val[i]) : 0),inpRsiPeriod,i,rates_total,1);
      double _iEmm = iEma(                               _iEma,inpRsiPeriod,i,rates_total,2);
      double _iEmf = _iEmm*inpWPFast;
      double _iEms = _iEmm*inpWPSlow;

        {
         double tr = (i>0) ? levs[i-1] : 0;
         double dv = tr;
         if(val[i] < tr) { tr = val[i] + _iEms; if((i>0 && val[i-1] < dv) && (tr > dv)) tr = dv; }
         if(val[i] > tr) { tr = val[i] - _iEms; if((i>0 && val[i-1] > dv) && (tr < dv)) tr = d

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

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

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

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

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

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

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