ut_dynamic-cycle-explorer-indicator_avg @fxisignalspot.mq4
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «ut_dynamic-cycle-explorer-indicator_avg @fxisignalspot.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор для MetaTrader 4, выполняющий расчёт многоуровневой аналитической системы динамических циклов (DCE). Он объединяет несколько скользящих средних с настраиваемыми периодами и типами, применяемых к различным ценовым представлениям, и отображает результаты в отдельном окне вместе с линиями полос Боллинджера и сигнальной скользящей.
Система поддерживает два режима формирования ценового ряда: прямой расчёт по выбранной цене и альтернативный расчёт на основе CCI и ATR (аналог Super Trend). Линии индикатора сравниваются с уровнями и полосами для определения текущей тенденции и формирования сигналов.
Индикатор предоставляет гибкие средства уведомлений: графические стрелки, звуковые сигналы, email- и push-уведомления, срабатывающие при пересечении заданных уровней и экстремальных условий. Также доступна настройка видимости и внешнего вида всех визуальных элементов.
Настройки программы
| Настройка | Описание |
|---|---|
| Revers | Инверсия — Переключатель инверсии направления расчёта динамических циклов. |
| ___ DCE Parameters _____________ (a01) | DCE параметры — Разделитель группы параметров DCE. |
| DCE MA Type, default: ma_hull (DCE_MA_Type) | Тип скользящей DCE — Тип скользящей средней, используемой в расчёте динамических циклов (DCE). |
| DCE Price, default: pr_habtbiased2 (DCE_Price) | Тип цены DCE — Тип цены, используемой в расчёте динамических циклов, включая варианты Хайкин Аши. |
| Period 1, default: 34 (Period1) | Период 1 — Первый период для расчёта динамических циклов. |
| Period 2, default: 22 (Period2) | Период 2 — Второй период для расчёта динамических циклов. |
| Period 3, default: 18 (Period3) | Период 3 — Третий период для расчёта динамических циклов. |
| Period 4, default: 33 (Period4) | Период 4 — Четвёртый период для расчёта динамических циклов. |
| Period 5, default: 29 (Period5) | Период 5 — Пятый период для расчёта динамических циклов. |
| Period 6, default: 14 (Period6) | Период 6 — Шестой период для расчёта динамических циклов. |
| Smoothing Period (Signal_Period) | Период сигнальной — Период сглаживания сигнальной линии. |
| Calculation Method for Smoothing (Signal_Method) | Метод сигнальной — Метод расчёта сигнальной скользящей средней. |
| DCE Calculation By: (DCE_Pr) | Источник расчёта DCE — Источник данных для расчёта DCE: текущая цена или цена Super Trend. |
| ___ Super Trend Parameters _______ (a02) | Параметры Super Trend — Разделитель группы параметров Super Trend. |
| CCI Period (CCIperiod) | Период CCI — Период индикатора CCI, используемого для определения направления тренда в альтернативном режиме. |
| ATR Period (ATRperiod) | Период ATR — Период расчёта ATR для альтернативного формирования ценового ряда (режим Super Trend). |
| Price Type (applied_price) | Тип цены — Тип цены, используемый для расчёта CCI и ATR. |
| ___ BB Parameters _______________ (a03) | Параметры полос — Разделитель группы параметров полос Боллинджера. |
| BB Source: (BB_Source) | Источник полос — Источник данных для расчёта полос Боллинджера: линия Map или сигнальная линия. |
| BB Period (BB_Period) | Период полос — Период расчёта полос Боллинджера. |
| BB Deviation (BB_Deviation) | Отклонение полос — Отклонение полос Боллинджера от средней линии. |
| Historical Bars (History) | Исторические бары — Количество исторических баров, используемых для расчёта. |
| ___ Level Parameters __________ (a04) | Параметры уровней — Разделитель группы параметров уровней. |
| levelOb | Уровень верхний — Верхний уровень для определения перекупленности. |
| levelOs | Уровень нижний — Нижний уровень для определения перепроданности. |
| extremelevelOb | Экстремальный уровень верхний — Верхний экстремальный уровень для определения перекупленности. |
| extremelevelOs | Экстремальный уровень нижний — Нижний экстремальный уровень для определения перепроданности. |
| ___ Alert Options _______ (a05) | Параметры уведомлений — Разделитель группы параметров уведомлений. |
| alertsOn | Уведомления включены — Общий переключатель включения всех уведомлений. |
| alertsOnObOs | Уведомления обычных уровней — Включение уведомлений при пересечении обычных уровней. |
| alertsOnExtremeObOs | Уведомления экстремальных уровней — Включение уведомлений при пересечении экстремальных уровней. |
| alertsOnCurrent | Уведомления на текущем баре — Переключатель: уведомления срабатывают на текущем баре или на следующем. |
| alertsMessage | Текстовые уведомления — Включение всплывающих окон с текстовыми уведомлениями. |
| alertsSound | Звуковые уведомления — Включение звуковых уведомлений. |
| alertsEmail | Email-уведомления — Включение отправки email-уведомлений при срабатывании условий. |
| alertsNotify | Push-уведомления — Включение push-уведомлений на устройство. |
| soundfile | Звуковой файл — Имя звукового файла для воспроизведения при уведомлении. |
| ___ Arrow Options ___________ (a06) | Параметры стрелок — Разделитель группы параметров стрелок. |
| arrowsVisible | Стрелки видны — Общий переключатель видимости графических стрелок. |
| Indicator Object ID (arrowsIdentifier) | Идентификатор стрелок — Идентификатор объекта индикатора для графических стрелок. |
| arrowsUpperGap | Отступ стрелок вверх — Отступ вверх при размещении стрелок. |
| arrowsLowerGap | Отступ стрелок вниз — Отступ вниз при размещении стрелок. |
| arrowsOnObOs | Стрелки обычных уровней — Включение отображения стрелок при обычных уровнях. |
| arrowsObOsUpColor | Цвет стрелки вверх обычный — Цвет стрелки для направления вверх при обычном уровне. |
| arrowsObOsDnColor | Цвет стрелки вниз обычный — Цвет стрелки для направления вниз при обычном уровне. |
| arrowsObOsUpCode | Код стрелки вверх обычный — Код стрелки для направления вверх при обычном уровне. |
| arrowsObOsDnCode | Код стрелки вниз обычный — Код стрелки для направления вниз при обычном уровне. |
| arrowsObOsUpSize | Размер стрелки вверх обычный — Размер стрелки для направления вверх при обычном уровне. |
| arrowsObOsDnSize | Размер стрелки вниз обычный — Размер стрелки для направления вниз при обычном уровне. |
| arrowsOnExtremeObOs | Стрелки экстремальных уровней — Включение отображения стрелок при экстремальных уровнях. |
| arrowsExtremeObOsUpColor | Цвет стрелки вверх экстремум — Цвет стрелки для направления вверх при экстремальном уровне. |
| arrowsExtremeObOsDnColor | Цвет стрелки вниз экстремум — Цвет стрелки для направления вниз при экстремальном уровне. |
| arrowsExtremeObOsUpCode | Код стрелки вверх экстремум — Код стрелки для направления вверх при экстремальном уровне. |
| arrowsExtremeObOsDnCode | Код стрелки вниз экстремум — Код стрелки для направления вниз при экстремальном уровне. |
| arrowsExtremeObOsUpSize | Размер стрелки вверх экстремум — Размер стрелки для направления вверх при экстремальном уровне. |
| arrowsExtremeObOsDnSize | Размер стрелки вниз экстремум — Размер стрелки для направления вниз при экстремальном уровне. |
Поиск по коду файла
???#property copyright ""
#property description ""
#property description ""
#property strict
#property indicator_separate_window
#property indicator_buffers 6
#property indicator_color1 clrDarkGreen
#property indicator_color2 clrSeaGreen
#property indicator_color3 clrGray
#property indicator_color4 clrGray
#property indicator_color5 clrGray
#property indicator_width1 3
#property indicator_width2 1
#property indicator_levelcolor clrMediumOrchid
enum enPrices
{
pr_close, // Close
pr_open, // Open
pr_high, // High
pr_low, // Low
pr_median, // Median
pr_typical, // Typical
pr_weighted, // Weighted
pr_average, // Average (high+low+open+close)/4
pr_medianb, // Average median body (open+close)/2
pr_tbiased, // Trend biased price
pr_tbiased2, // Trend biased (extreme) price
pr_haclose, // Heiken ashi close
pr_haopen , // Heiken ashi open
pr_hahigh, // Heiken ashi high
pr_halow, // Heiken ashi low
pr_hamedian, // Heiken ashi median
pr_hatypical, // Heiken ashi typical
pr_haweighted, // Heiken ashi weighted
pr_haaverage, // Heiken ashi average
pr_hamedianb, // Heiken ashi median body
pr_hatbiased, // Heiken ashi trend biased price
pr_hatbiased2, // Heiken ashi trend biased (extreme) price
pr_habclose, // Heiken ashi (better formula) close
pr_habopen , // Heiken ashi (better formula) open
pr_habhigh, // Heiken ashi (better formula) high
pr_hablow, // Heiken ashi (better formula) low
pr_habmedian, // Heiken ashi (better formula) median
pr_habtypical, // Heiken ashi (better formula) typical
pr_habweighted,// Heiken ashi (better formula) weighted
pr_habaverage, // Heiken ashi (better formula) average
pr_habmedianb, // Heiken ashi (better formula) median body
pr_habtbiased, // Heiken ashi (better formula) trend biased price
pr_habtbiased2 // Heiken ashi (better formula) trend biased (extreme) price
};
enum maTypes
{
ma_sma, // simple moving average - SMA
ma_ema, // exponential moving average - EMA
ma_dsema, // double smoothed exponential moving average - DSEMA
ma_dema, // double exponential moving average - DEMA
ma_tema, // tripple exponential moving average - TEMA
ma_smma, // smoothed moving average - SMMA
ma_lwma, // linear weighted moving average - LWMA
ma_pwma, // parabolic weighted moving average - PWMA
ma_alxma, // Alexander moving average - ALXMA
ma_vwma, // volume weighted moving average - VWMA
ma_hull, // Hull moving average
ma_tma, // triangular moving average
ma_sine, // sine weighted moving average
ma_linr, // linear regression value
ma_ie2, // IE/2
ma_nlma, // non lag moving average
ma_zlma, // zero lag moving average
ma_lead, // leader exponential moving average
ma_ssm, // super smoother
ma_smoo // smoother
};
enum enum1
{
Prc, // Current price
ST // Super Trend price
};
enum enum2
{
DCE, // DCE
DCEs // Signal MA
};
input bool Revers = false;
extern string a01 = ""; // ___ DCE Parameters _____________
extern maTypes DCE_MA_Type = ma_linr; // DCE MA Type, default: ma_hull
extern enPrices DCE_Price = pr_habweighted; // DCE Price, default: pr_habtbiased2
extern int Period1 = 44; // Period 1, default: 34
extern int Period2 = 22; // Period 2, default: 22
extern int Period3 = 66; // Period 3, default: 18
extern int Period4 = 33; // Period 4, default: 33
extern int Period5 = 28; // Period 5, default: 29
extern int Period6 = 14; // Period 6, default: 14
extern int Signal_Period = 3; // Smoothing Period
extern ENUM_MA_METHOD Signal_Method = MODE_SMA; // Calculation Method for Smoothing
extern enum1 DCE_Pr = Prc; // DCE Calculation By:
extern string a02 = ""; // ___ Super Trend Parameters _______
extern int CCIperiod = 50; // CCI Period
extern int ATRperiod = 5; // ATR Period
extern ENUM_APPLIED_PRICE applied_price= 5; // Price Type
extern string a03 = ""; // ___ BB Parameters _______________
extern enum2 BB_Source = DCE; // BB Source:
extern int BB_Period = 89; // BB Period
extern double BB_Deviation = 1.62; // BB Deviation
extern int History = 500; // Historical Bars
extern string a04 = ""; // ___ Level Parameters __________
extern double levelOb = 0; //
extern double levelOs = 0; //
extern double extremelevelOb = 0; //
extern double extremelevelOs = 0; //
extern string a05 = ""; // ___ Alert Options _______
extern bool alertsOn = false; //
extern bool alertsOnObOs = false; //
extern bool alertsOnExtremeObOs = true; //
extern bool alertsOnCurrent = false; //
extern bool alertsMessage = true; //
extern bool alertsSound = true; //
extern bool alertsEmail = false; //
extern bool alertsNotify = false; //
extern string soundfile = "alert2.wav"; //
extern string a06 = ""; // ___ Arrow Options ___________
extern bool arrowsVisible = true; //
extern string arrowsIdentifier = "DCE_BB>i<"; // Indicator Object ID
extern double arrowsUpperGap = 2.5; //
extern double arrowsLowerGap = 0.5; //
extern bool arrowsOnObOs = true; //
extern color arrowsObOsUpColor = clrSeaGreen; //
extern color arrowsObOsDnColor = clrFireBrick; //
extern int arrowsObOsUpCode = 241; //
extern int arrowsObOsDnCode = 242; //
extern int arrowsObOsUpSize = 1; //
extern int arrowsObOsDnSize = 1; //
extern bool arrowsOnExtremeObOs = true; //
extern color arrowsExtremeObOsUpColor = clrSeaGreen; //
extern color arrowsExtremeObOsDnColor = clrFireBrick; //
extern int arrowsExtremeObOsUpCode = 159; //
extern int arrowsExtremeObOsDnCode = 159; //
extern int arrowsExtremeObOsUpSize = 5; //
extern int arrowsExtremeObOsDnSize = 5; //
double Map[];
double signal[];
double band_up[];
double band_dn[];
double band_mid[];
double bias[];
double trend1[];
double trend2[];
double prices[];
int maxPeriod,rev;
double PairPip;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
deleteArrows();
return(0);
}
int start()
{
// код доступен только после оплаты
}
datetime TimeBr=0;
void doAlert(datetime& previousTime, string& previousAlert, int forBar, string doWhat)
{
string message;
if((previousAlert != doWhat || previousTime != Time[forBar])&& TimeBr != Time[forBar])
{
previousAlert = doWhat;
previousTime = Time[forBar];
TimeBr = Time[forBar];
message = StringConcatenate(Symbol()," ",_Period, " at ",TimeToStr(TimeLocal(),TIME_SECONDS)," DCE_BB ",doWhat);
if(alertsMessage) Alert(message);
if(alertsNotify) SendNotification(message);
if(alertsEmail) SendMail(StringConcatenate(Symbol()," DCE_BB "),message);
if(alertsSound) PlaySound(soundfile);
}
}
double icTma(int period, int i)
{
int j,k;
double sumw = (period+1);
double sum = sumw* Close[i]; //(period+1)*prices[i];
for(j=1, k=period; j<period; j++,k--)
{
sumw += k;
sum += k * Close[i+j]; // prices[i+j]*k;
if(j<=i) { sum += Close[i-j]*k; sumw += k; } // { sum += prices[i-j]*k; sumw += k; }
}
return(sum/sumw);
}
void drawArrow(string nameAdd, double gapMul, int i,color theColor,int theCode,int theWidth,bool up)
{
string name = arrowsIdentifier+":"+nameAdd+":"+TimeToStr(Time[i]);
double gap = iATR(NULL,0,20,i)*gapMul;
ObjectCreate(name,OBJ_ARROW,0,Time[i],0);
ObjectSet(name,OBJPROP_ARROWCODE,theCode);
ObjectSet(name,OBJPROP_COLOR,theColor);
ObjectSet(name,OBJPROP_WIDTH,theWidth);
if(up)
ObjectSet(name,OBJPROP_PRICE1,High[i] + arrowsUpperGap * gap);
else ObjectSet(name,OBJPROP_PRICE1,Low[i] - arrowsLowerGap * gap);
WindowRedraw();
}
void deleteArrows()
{
string lookFor = arrowsIdentifier+":";
int lookForLength = StringLen(lookFor);
for(int i=ObjectsTotal()-1; i>=0; i--)
{
string objectName = ObjectName(i);
if(StringSubstr(objectName,0,lookForLength) == lookFor) ObjectDelete(objectName);
}
}
bool CheckLinesCrossing(bool IsBuySign, int i)
{
double RedLine1 = Map[i-1];
double RedLine2 = Map[i];
double BlueLine1 = signal[i-1];
double BlueLine2 = signal[i];
if(IsBuySign && RedLine1 > BlueLine1 && RedLine2 < BlueLine2 && RedLine1 < EMPTY_VALUE && BlueLine1 < EMPTY_VALUE) return(true);
if(!IsBuySign && RedLine1 < BlueLine1 && RedLine2 > BlueLine2 && RedLine1 < EMPTY_VALUE && BlueLine1 < EMPTY_VALUE) return(true);
return(false);
}
string methodNames[] = {"SMA","EMA","Double smoothed EMA","Double EMA","Triple EMA","Smoothed MA","Linear weighted MA","Parabolic weighted MA","Alexander MA","Volume weghted MA","Hull MA","Triangular MA","Sine weighted MA","Linear regression","IE/2","NonLag MA","Zero lag EMA","Leader EMA","Super smoother","Smoother"};
string getAverageName(int method)
{
int max = ArraySize(methodNames)-1;
method=MathMax(MathMin(method,max),0); return(methodNames[method]);
}
#define _maWorkBufferx1 3
#define _maWorkBufferx2 6
#define _maWorkBufferx3 9
#define _maWorkBufferx5 15
double iCustomMa(int mode, double price, double length, int i, int instanceNo=0)
{
int r = Bars-i-1;
switch(mode)
{
case 0 : return(iSma(price,(int)length,r,instanceNo));
case 1 : return(iEma(price,length,r,instanceNo));
case 2 : return(iDsema(price,length,r,instanceNo));
case 3 : return(iDema(price,length,r,instanceNo));
case 4 : return(iTema(price,length,r,instanceNo));
case 5 : return(iSmma(price,length,r,instanceNo));
case 6 : return(iLwma(price,length,r,instanceNo));
case 7 : return(iLwmp(price,length,r,instanceNo));
case 8 : return(iAlex(price,length,r,instanceNo));
case 9 : return(iWwma(price,length,r,instanceNo));
case 10 : return(iHull(price,length,r,instanceNo));
case 11 : return(iTma(price,length,r,instanceNo));
case 12 : return(iSineWMA(price,(int)length,r,instanceNo));
case 13 : return(iLinr(price,length,r,instanceNo));
case 14 : return(iIe2(price,length,r,instanceNo));
case 15 : return(iNonLagMa(price,length,r,instanceNo));
case 16 : return(iZeroLag(price,length,r,instanceNo));
case 17 : return(iLeader(price,length,r,instanceNo));
case 18 : return(iSsm(price,length,r,instanceNo));
case 19 : return(iSmooth(price,(int)length,r,instanceNo));
default : return(0);
}
}
double workSma[][_maWorkBufferx2];
doubПоказано первые 50% кода (символов: 26431)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.