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

cfb_adaptive_qqe_histo__alertsarrows.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-подобные значения с выбором метода расчёта и динамически подстраивает период под волатильность рынка. Отображает три зоны гистограммы (выше верхней границы, между границами, ниже нижней границы), трендовую линию и визуальные стрелки сигналов. Поддерживает мультитаймфреймовый анализ с интерполяцией, а также настраиваемые оповещения о ключевых пересечениях.

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

НастройкаОписание
TimeFrame Таймфрейм — Выбор таймфрейма для расчётов или специальный режим работы индикатора
SF SF — Коэффициент сглаживания, влияющий на скорость реакции QQE-линии
CfbPrice CfbPrice — Тип цены, используемый для расчёта адаптивного сглаживания CFB
CfbDepth CfbDepth — Глубина анализа для адаптивного сглаживания CFB
CfbNormLength CfbNormLength — Длина нормализации для адаптивного сглаживания CFB
CfbSmooth CfbSmooth — Параметр сглаживания адаптивного фильтра CFB
CfbSmoothLength CfbSmoothLength — Длина сглаживания адаптивного фильтра CFB
CfbSmoothPhase CfbSmoothPhase — Фазовый сдвиг сглаживания адаптивного фильтра CFB
CfbSmoothDouble CfbSmoothDouble — Включает двойное сглаживание в адаптивном фильтре CFB
ShortLimit ShortLimit — Минимальный период для адаптивного расчёта RSI
LongLimit LongLimit — Максимальный период для адаптивного расчёта RSI
RsiPrice RsiPrice — Тип цены, используемый для расчёта RSI
_rsimethods Методы RSI — Список доступных методов расчёта RSI для выбора параметром RsiMethod
RsiMethod RsiMethod — Выбор метода расчёта RSI (RSI, Wilder RSI, RSX, Cuttler RSI)
WP WP — Коэффициент веса для расчёта QQE-линии
UpperBound UpperBound — Верхняя граница зоны перекупленности гистограммы
LowerBound LowerBound — Нижняя граница зоны перепроданности гистограммы
Interpolate Интерполяция — Включает интерполяцию значений между барами при мультитаймфреймовом анализе
_ Разделитель настроек оповещений — Текстовый разделитель в панели настроек
alertsOn Оповещения включены — Включает или отключает все типы оповещений индикатора
alertsOnZeroCross Оповещения при пересечении нуля — Срабатывает оповещение при пересечении нулевой линии
alertsOnSignalCross Оповещения при пересечении границ — Срабатывает оповещение при пересечении верхней или нижней границы
alertsOnRsiMaCross Оповещения при пересечении RSI-линии — Срабатывает оповещение при пересечении RSI-линии и трендовой линии
alertsOnCurrent Оповещения на текущем баре — Направляет оповещения на текущий бар вместо предыдущего
alertsMessage Оповещения в виде сообщений — Включает вывод pop-up сообщений при срабатывании оповещений
alertsSound Оповещения звуком — Включает воспроизведение звукового сигнала при срабатывании оповещений
alertsEmail Оповещения по email — Включает отправку email-уведомлений при срабатывании оповещений
arrowsVisible Стрелки видимы — Включает или отключает отображение стрелок сигналов на графике
arrowsIdentifier Идентификатор стрелок — Префикс имени объектов-стрелок для их идентификации на графике
arrowsDisplacement Смещение стрелок — Величина смещения стрелок от ценового уровня в пунктах
Получить полный код

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

#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 string TimeFrame                = "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                 = true;
extern bool   alertsOnZeroCross        = false;
extern bool   alertsOnSignalCross      = false;
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   = DeepSkyBlue;
extern color  arrowsDnZeroCrossColor   = Red;
extern int    arrowsUpZeroCrossCode    = 233;
extern int    arrowsDnZeroCrossCode    = 234;
extern int    arrowsUpZeroCrossSize    = 1;
extern int    arrowsDnZeroCrossSize    = 1;

extern bool   arrowsOnSignalCross      = false;
extern color  arrowsUpSignalCrossColor = DeepSkyBlue;
extern color  arrowsDnSignalCrossColor = Red;
extern int    arrowsUpSignalCrossCode  = 119;
extern int    arrowsDnSignalCrossCode  = 119;
extern int    arrowsUpSignalCrossSize  = 1;
extern int    arrowsDnSignalCrossSize  = 1;

extern bool   arrowsOnRsiMaCross       = true;
extern color  arrowsUpRsiMaCrossColor  = LimeGreen;
extern color  arrowsDnRsiMaCrossColor  = Red;
extern int    arrowsUpRsiMaCrossCode   = 119;
extern int    arrowsDnRsiMaCrossCode   = 119;
extern int    arrowsUpRsiMaCrossSize   = 2;
extern int    arrowsDnRsiMaCrossSize   = 2;

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

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

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

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

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

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

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

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 char = StringGetChar(s, length);
         if((char > 96 && char < 123) || (char > 223 && char < 256))
                     s = StringSetChar(s, length, char - 32);
         else if(char > -33 && char < 0)
                     s = StringSetChar(s, length, char + 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 = "";
      if (alertsOnZeroCross && trends[whichBar][_tmi1] != trends[whichBar-1][_tmi1])
      {
         if (trends[whichBar][_tmi1] ==  1) doAlert(time1,mess1,whichBar,"Cross zero line up");
         if (trends[whichBar][_tmi1] == -1) doAlert(time1,mess1,whichBar,"Cross zero line down");
      }

      static datetime time2 = 0;
      static string   mess2 = "";
      if (alertsOnSignalCross && trends[whichBar][_tup1] != trends[whichBar-1][_tup1])
      {
         if (trends[whichBar][_tup1] ==  1) doAlert(time2,mess2,whichBar,"Cross Upper Bound up");
         if (trends[whichBar][_tup1] == -1) doAlert(time2,mess2,whichBar,"Cross Lower Bound down");
      }

      static datetime time3 = 0;
      static string   mess3 = "";
      if (alertsOnRsiMaCross && trends[whichBar][_tdn1] != trends[whichBar-1][_tdn1])
      {
         if (trends[whichBar][_tdn1] ==  1) doAlert(time3,mess3,which

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

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

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

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

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

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

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