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

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

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

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

О программе

Индикатор MetaTrader 4 типа «индикатор» для расчёта и отображения адаптивного QQE (Quantitative Qualitative Estimation) с использованием адаптивной сглаживающей функции CFB. Отображает гистограмму и линию тренда в отдельном окне, рассчитывает значения на основе выбранного RSI-метода и предоставляет визуальные сигналы в виде стрелок и звуковых/текстовых/email-уведомлений. Поддерживает работу на разных таймфреймах и интерполяцию данных между барами.

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

НастройкаОписание
"Current time frame"; (TimeFrame) Таймфрейм — Таймфрейм для расчёта индикатора в виде строки (например, «15», «H1») или специального служебного значения.
SF SF — Параметр скорости сглаживания, влияющий на расчёт экспоненциальных коэффициентов.
CfbPrice Цена CFB — Тип цены или источник данных, используемый для расчёта CFB-адаптивного сглаживания.
CfbDepth Глубина CFB — Глубина анализа для адаптивного сглаживающего фильтра CFB.
CfbNormLength Длина нормализации CFB — Длина окна для определения максимума и минимума при нормализации значений CFB.
CfbSmooth Сглаживание CFB — Период сглаживания внутреннего CFB-расчёта.
CfbSmoothLength Длина сглаживания CFB — Длина окна для вторичного сглаживания результата CFB.
CfbSmoothPhase Фаза сглаживания CFB — Фазовый сдвиг сглаживающего фильтра CFB.
CfbSmoothDouble Двойное сглаживание CFB — Включает или отключает двойное применение сглаживания CFB.
ShortLimit Короткий предел — Минимальное значение периода RSI, используемое в адаптивной логике.
LongLimit Длинный предел — Максимальное значение периода RSI, используемое в адаптивной логике.
RsiPrice Цена RSI — Тип цены для расчёта RSI.
_rsimethods Методы RSI — Справочный список доступных методов расчёта RSI с числовыми идентификаторами.
RsiMethod Метод RSI — Выбранный метод расчёта RSI (0 — RSI, 1 — Wilder RSI, 2 — RSX, 3 — Cuttler RSI).
WP WP — Множитель, используемый при расчёте динамического порога адаптивной линии.
UpperBound Верхняя граница — Значение верхней границы для определения зоны перекупленности гистограммы.
LowerBound Нижняя граница — Значение нижней границы для определения зоны перепроданности гистограммы.
Interpolate Интерполяция — Включает линейную интерполяцию значений индикатора между барами на выбранном таймфрейме.
_ Разделитель настроек — Текстовый разделитель для группы настроек уведомлений.
alertsOn Уведомления включены — Включает или отключает систему уведомлений индикатора.
alertsOnZeroCross Пересечение нуля — Срабатывает при пересечении трендовой линией нулевого уровня.
alertsOnSignalCross Пересечение границ — Срабатывает при пересечении верхней или нижней границы.
alertsOnRsiMaCross Пересечение RSI и тренда — Срабатывает при пересечении линии RSI и адаптивной трендовой линии.
alertsOnCurrent Текущий бар — Определяет, проверять ли пересечения на текущем незавершённом баре.
alertsMessage Сообщение — Выводит текстовое уведомление через функцию Alert.
alertsSound Звук — Воспроизводит звуковой сигнал при срабатывании уведомления.
alertsEmail Email — Отправляет email-уведомление при срабатывании.
arrowsVisible Стрелки видимы — Включает или отключает отображение графических стрелок на графике.
arrowsIdentifier Идентификатор стрелок — Префикс имён графических объектов-стрелок для их уникальной идентификации.
arrowsDisplacement Смещение стрелок — Множитель смещения стрелок от цены бара в зависимости от волатильности.
arrowsOnZeroCross Стрелки при пересечении нуля — Отображает стрелки при пересечении трендовой линией нулевого уровня.
arrowsUpZeroCrossColor Цвет стрелки вверх (нуль) — Цвет стрелки вверх при пересечении нулевого уровня.
arrowsDnZeroCrossColor Цвет стрелки вниз (нуль) — Цвет стрелки вниз при пересечении нулевого уровня.
arrowsUpZeroCrossCode Код стрелки вверх (нуль) — Код символа стрелки вверх при пересечении нулевого уровня.
arrowsDnZeroCrossCode Код стрелки вниз (нуль) — Код символа стрелки вниз при пересечении нулевого уровня.
arrowsUpZeroCrossSize Размер стрелки вверх (нуль) — Толщина стрелки вверх при пересечении нулевого уровня.
arrowsDnZeroCrossSize Размер стрелки вниз (нуль) — Толщина стрелки вниз при пересечении нулевого уровня.
arrowsOnSignalCross Стрелки при пересечении границ — Отображает стрелки при пересечении верхней или нижней границы.
arrowsUpSignalCrossColor Цвет стрелки вверх (граница) — Цвет стрелки вверх при пересечении верхней границы.
arrowsDnSignalCrossColor Цвет стрелки вниз (граница) — Цвет стрелки вниз при пересечении нижней границы.
arrowsUpSignalCrossCode Код стрелки вверх (граница) — Код символа стрелки вверх при пересечении границы.
arrowsDnSignalCrossCode Код стрелки вниз (граница) — Код символа стрелки вниз при пересечении границы.
arrowsUpSignalCrossSize Размер стрелки вверх (граница) — Толщина стрелки вверх при пересечении границы.
arrowsDnSignalCrossSize Размер стрелки вниз (граница) — Толщина стрелки вниз при пересечении границы.
arrowsOnRsiMaCross Стрелки при пересечении RSI и тренда — Отображает стрелки при пересечении линии RSI и адаптивной трендовой линии.
arrowsUpRsiMaCrossColor Цвет стрелки вверх (RSI/тренд) — Цвет стрелки вверх при пересечении RSI и трендовой линии.
arrowsDnRsiMaCrossColor Цвет стрелки вниз (RSI/тренд) — Цвет стрелки вниз при пересечении RSI и трендовой линии.
arrowsUpRsiMaCrossCode Код стрелки вверх (RSI/тренд) — Код символа стрелки вверх при пересечении RSI и трендовой линии.
arrowsDnRsiMaCrossCode Код стрелки вниз (RSI/тренд) — Код символа стрелки вниз при пересечении RSI и трендовой линии.
arrowsUpRsiMaCrossSize Размер стрелки вверх (RSI/тренд) — Толщина стрелки вверх при пересечении RSI и трендовой линии.
arrowsDnRsiMaCrossSize Размер стрелки вниз (RSI/тренд) — Толщина стрелки вниз при пересечении RSI и трендовой линии.
Получить полный код

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

???/*

*/

#property indicator_separate_window

#property indicator_buffers    7
#property indicator_color1     clrBlue
#property indicator_color2     clrDimGray
#property indicator_color3     clrYellow
#property indicator_color4     clrGray
#property indicator_color5     clrLimeGreen
#property indicator_color6     clrRed
#property indicator_color7     clrRed 
#property indicator_width1     3
#property indicator_width2     1
#property indicator_width3     3
#property indicator_width4     1
#property indicator_width5     3
#property indicator_width6     3
#property indicator_width7     3

#property indicator_levelstyle STYLE_DASHDOT
#property indicator_levelcolor clrDarkGray

extern string TimeFrame                = 15;    //"Current time frame";
extern int    SF                       = 5;
extern int    CfbPrice                 = 5;
extern int    CfbDepth                 = 1;
extern int    CfbNormLength            = 50;
extern int    CfbSmooth                = 8;
extern int    CfbSmoothLength          = 10;
extern double CfbSmoothPhase           = 0.0;
extern bool   CfbSmoothDouble          = false;
extern int    ShortLimit               = 10;
extern int    LongLimit                = 20;
extern int    RsiPrice                 = 0;
extern string _rsimethods              = "0=rsi,1=wilder rsi,2=rsx,3=cuttler rsi ";
extern int    RsiMethod                = 0;
extern double WP                       = 4.236;
extern double UpperBound               = 60; 
extern double LowerBound               = 40; 
extern bool   Interpolate              = true;

extern string _                        = "Alerts Settings";
extern bool   alertsOn                 = false; 
extern bool   alertsOnZeroCross        = false; 
extern bool   alertsOnSignalCross      = true;  
extern bool   alertsOnRsiMaCross       = true; 
extern bool   alertsOnCurrent          = false;   
extern bool   alertsMessage            = true;
extern bool   alertsSound              = true;
extern bool   alertsEmail              = false;

extern bool   arrowsVisible            = true;  
extern string arrowsIdentifier         = "qqe cfb adapt Arrows1";
extern double arrowsDisplacement       = 1.0;

extern bool   arrowsOnZeroCross        = false;   
extern color  arrowsUpZeroCrossColor   = clrDeepSkyBlue;
extern color  arrowsDnZeroCrossColor   = clrDeepPink;
extern int    arrowsUpZeroCrossCode    = 116;
extern int    arrowsDnZeroCrossCode    = 116;
extern int    arrowsUpZeroCrossSize    = 1;
extern int    arrowsDnZeroCrossSize    = 1;

extern bool   arrowsOnSignalCross      = true;  
extern color  arrowsUpSignalCrossColor = clrBlue;
extern color  arrowsDnSignalCrossColor = clrYellow;
extern int    arrowsUpSignalCrossCode  = 174;
extern int    arrowsDnSignalCrossCode  = 174;
extern int    arrowsUpSignalCrossSize  = 1;
extern int    arrowsDnSignalCrossSize  = 1;

extern bool   arrowsOnRsiMaCross       = false; 
extern color  arrowsUpRsiMaCrossColor  = clrDeepSkyBlue;
extern color  arrowsDnRsiMaCrossColor  = clrDeepPink;
extern int    arrowsUpRsiMaCrossCode   = 119;
extern int    arrowsDnRsiMaCrossCode   = 119;
extern int    arrowsUpRsiMaCrossSize   = 2;
extern int    arrowsDnRsiMaCrossSize   = 2;

double RsiMa[],vala[],valb[],valc[];
double cfb[];
double Trend[];
double HistoU[];
double HistoM[];
double HistoD[];

string indicatorFileName;
int    timeFrame;
bool   returnBars;
bool   calculateValue;

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

int deinit() {  if (!calculateValue && arrowsVisible) deleteArrows(); return(0); }

double trends[][3];
#define _tmi1 0
#define _tup1 1
#define _tdn1 2

double work[][6];
#define iEma 0
#define iEmm 1
#define iQqe 2
#define iRsi 3
#define tQqe 4
#define tQqs 5

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

void CleanPoint(int i,int bars,double& first[],double& second[])
{
   if (i>=bars-3) return;
   if ((second[i]  != EMPTY_VALUE) && (second[i+1] != EMPTY_VALUE))
        second[i+1] = EMPTY_VALUE;
   else
      if ((first[i] != EMPTY_VALUE) && (first[i+1] != EMPTY_VALUE) && (first[i+2] == EMPTY_VALUE))
          first[i+1] = EMPTY_VALUE;
}

void PlotPoint(int i,int bars,double& first[],double& second[],double& from[])
{
   if (i>=bars-2) return;
   if (first[i+1] == EMPTY_VALUE)
      if (first[i+2] == EMPTY_VALUE) 
            { first[i]  = from[i];  first[i+1]  = from[i+1]; second[i] = EMPTY_VALUE; }
      else  { second[i] =  from[i]; second[i+1] = from[i+1]; first[i]  = EMPTY_VALUE; }
   else     { first[i]  = from[i];                           second[i] = EMPTY_VALUE; }
}

string sTfTable[] = {"M1","M5","M15","M30","H1","H4","D1","W1","MN"};
int    iTfTable[] = {1,5,15,30,60,240,1440,10080,43200};

int stringToTimeFrame(string tfs)
{
   tfs = stringUpperCase(tfs);
   for (int i=ArraySize(iTfTable)-1; i>=0; i--)
         if (tfs==sTfTable[i] || tfs==""+iTfTable[i]) return(MathMax(iTfTable[i],Period()));
                                                      return(Period());
}

string timeFrameToString(int tf)
{
   for (int i=ArraySize(iTfTable)-1; i>=0; i--) 
         if (tf==iTfTable[i]) return(sTfTable[i]);
                              return("");
}

string stringUpperCase(string str)
{
   string   s = str;

   for (int length=StringLen(str)-1; length>=0; length--)
   {
      int tchar = StringGetChar(s, length);
         if((tchar > 96 && tchar < 123) || (tchar > 223 && tchar < 256))
                     s = StringSetChar(s, length, tchar - 32);
         else if(tchar > -33 && tchar < 0)
                     s = StringSetChar(s, length, tchar + 224);
   }
   return(s);
}

void setTrends(int i, int r)
{
   trends[r][_tmi1] = trends[r-1][_tmi1];
   trends[r][_tup1] = trends[r-1][_tup1];
   trends[r][_tdn1] = trends[r-1][_tdn1];

      if (RsiMa[i] > 0)               trends[r][_tmi1] =  1;
      if (RsiMa[i] < 0)               trends[r][_tmi1] = -1;
      if (RsiMa[i] > (UpperBound-50)) trends[r][_tup1] =  1;
      if (RsiMa[i] < (LowerBound-50)) trends[r][_tup1] = -1;
      if (RsiMa[i] > Trend[i])        trends[r][_tdn1] =  1;
      if (RsiMa[i] < Trend[i])        trends[r][_tdn1] = -1;

}

void manageAlerts()
{
   if (!calculateValue && alertsOn)
   {
      if (alertsOnCurrent)
           int whichBar = 0;
      else     whichBar = 1; whichBar = iBarShift(NULL,0,iTime(NULL,timeFrame,whichBar)); 
                             whichBar = Bars-whichBar-1;

      static datetime time1 = 0;
      static string   mess1

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

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

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

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

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

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

Стоимость полного кода
1 858,70₽ ≈ $22.72