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

QQE

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

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

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

О программе

Индикатор QQE рассчитывает сглаженный RSI с динамическим порогом на основе множителя WP и отображает результат в отдельном окне. Линия QQE и линия тренда рисуются поверх гистограмм, цвет которых зависит от положения значения относительно заданных верхней и нижней границ. Гистограммы окрашиваются в зелёный, золотой и красный цвета в зависимости от зоны.

Индикатор поддерживает систему уведомлений: текстовые алерты, звуковые сигналы и email-уведомления при пересечении сигнальной линии или уровня 50. Можно выбирать, на текущую или предыдущую свечу проверять условия срабатывания. Расчёт выполняется на каждом тике в функции start().

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

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

НастройкаОписание
SF Коэффициент сглаживания для экспоненциального сглаживания значения RSI.
RSIPeriod Период расчёта индикатора RSI, используемого в качестве основы для вычислений.
WP Множитель, определяющий амплитуду динамического порога при расчёте линии QQE.
UpperBound Верхняя граница для отображения гистограммы. Значения линии выше этой границы окрашиваются в зелёный цвет.
LowerBound Нижняя граница для отображения гистограммы. Значения линии ниже этой границы окрашиваются в красный цвет.
alertsOn Общий переключатель для включения или отключения всей системы уведомлений индикатора.
alertsSignalLineCross При включённом значении алерты срабатывают при пересечении сигнальной линии. При выключенном — при пересечении уровня 50.
alertsOnCurrent При включённом значении проверка условий алерта выполняется на текущей незавершённой свече, при выключенном — на предыдущей.
alertsMessage Включает или отключает вывод текстовых оконных уведомлений при срабатывании условий алерта.
alertsSound Включает или отключает воспроизведение звукового сигнала при срабатывании условий алерта.
alertsEmail Включает или отключает отправку email-уведомлений при срабатывании условий алерта.
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers 5
#property indicator_color1  Green
#property indicator_color2  Gold
#property indicator_color3  Red
#property indicator_color4  DimGray
#property indicator_color5  Lime
#property indicator_width1  2
#property indicator_width2  2
#property indicator_width3  2
#property indicator_width4  2
#property indicator_width5  2
#property indicator_levelcolor DimGray

extern int    SF         = 5;
extern int    RSIPeriod  = 14;
extern double WP         = 4.236;
extern double UpperBound = 60; 
extern double LowerBound = 40; 

extern bool alertsOn              = true;
extern bool alertsSignalLineCross = false;
extern bool alertsOnCurrent       = true;
extern bool alertsMessage         = true;
extern bool alertsSound           = false;
extern bool alertsEmail           = false;

double RsiMa[];
double Trend[];
double HistoU[];
double HistoM[];
double HistoD[];
double work[][6];

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

#define iEma 0
#define iEmm 1
#define iQqe 2
#define iRsi 3
#define tQqe 4
#define tQqs 5

int start()
{
      // код доступен только после оплаты
   }
   int counted_bars=IndicatorCounted();
   int i,r,limit;

   if(counted_bars < 0) return(-1);
   if(counted_bars > 0) counted_bars--;
           limit = MathMin(Bars-counted_bars,Bars-1);
           if (ArrayRange(work,0) != Bars) ArrayResize(work,Bars); 

   double alpha1 = 2.0/(SF+1.0);
   double alpha2 = 2.0/(RSIPeriod*2.0);

   for (i=limit, r=Bars-i-1; i>=0; i--,r++)
   {  
      work[r][iRsi] = work[r-1][iRsi] + alpha1*(iRSI(NULL,0,RSIPeriod,PRICE_CLOSE,i)   - work[r-1][iRsi]);
      work[r][iEma] = work[r-1][iEma] + alpha2*(MathAbs(work[r-1][iRsi]-work[r][iRsi]) - work[r-1][iEma]);
      work[r][iEmm] = work[r-1][iEmm] + alpha2*(work[r][iEma] - work[r-1][iEmm]);

         double rsi0 = work[r  ][iRsi];
         double rsi1 = work[r-1][iRsi];
         double dar  = work[r  ][iEmm]*WP;
         double tr   = work[r-1][iQqe];
     

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

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

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

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

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

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

Стоимость полного кода
334,40₽ ≈ $4.09