cfb-adaptive qqe histo alerts + arrows.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «cfb-adaptive qqe histo alerts + arrows.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор 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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.