dema_macd_zones_amp_alerts_arrows_2.02.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «dema_macd_zones_amp_alerts_arrows_2.02.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор рассчитывает MACD на основе двойных экспоненциальных скользящих средних (DEMA). Основная линия формируется как разность DEMA с быстрым и медленным периодами, а сигнальная линия — это DEMA от основной линии с заданным сигналовым периодом. На основе соотношения MACD и сигнала, а также положения MACD относительно нуля, индикатор раскрашивает зоны на графике четырьмя способами.
На графике отрисовываются прямоугольные зоны с цветовой индикацией, привязанные к моментам смены состояния. При необходимости отображаются стрелки в точках переключения. Индикатор поддерживает работу на различных таймфреймах и может автоматически переключаться на нужный период.
Система уведомлений позволяет получать всплывающие сообщения, звуковые сигналы и email-оповещения при смене тренда MACD. Настраивается, будут ли уведомления срабатывать на текущем баре или на предыдущем.
Настройки программы
| Настройка | Описание |
|---|---|
| TimeFrame | Таймфрейм — Таймфрейм, на котором работает индикатор |
| FastEMA | Период быстрой EMA — Период быстрой экспоненциальной скользящей средней для расчёта DEMA |
| SlowEMA | Период медленной EMA — Период медленной экспоненциальной скользящей средней для расчёта DEMA |
| SignalEMA | Период сигнальной EMA — Период сигнальной экспоненциальной скользящей средней для расчёта DEMA сигнальной линии |
| Price | Тип цены — Тип цены, используемой для расчёта индикатора |
| UniqueID | Уникальный идентификатор — Уникальный идентификатор для именования объектов на графике |
| ColorUp | Цвет зоны Up — Цвет зоны при бычьем сигнале |
| ColorNeutralUp | Цвет нейтральной зоны Up — Цвет нейтральной зоны при бычьем сигнале |
| ColorDown | Цвет зоны Down — Цвет зоны при медвежьем сигнале |
| ColorNeutralDown | Цвет нейтральной зоны Down — Цвет нейтральной зоны при медвежьем сигнале |
| Вариант отображения боксов (ShowBox) | Вариант отображения боксов — Вариант отображения боксов на графике |
| MaxValue | Максимальное значение — Максимальное значение для начальной настройки диапазона цен |
| Показать стрелки (Arr_On) | Показать стрелки — Включает или отключает отображение стрелок на графике |
| Отступ стрелок (Arr_otstup) | Отступ стрелок — Отступ стрелок от цены в пунктах |
| Размер стрелок (Arr_width) | Размер стрелок — Размер стрелок на графике |
| Цвет стрелки Up (Arr_Up_col) | Цвет стрелки Up — Цвет стрелки, указывающей направление вверх |
| Цвет стрелки Dn (Arr_Dn_col) | Цвет стрелки Dn — Цвет стрелки, указывающей направление вниз |
| alertsOn | Включить уведомления — Включает или отключает систему уведомлений |
| alertsOnCurrent | Уведомления на текущем баре — Определяет, на каком баре срабатывают уведомления: на текущем или на предыдущем |
| alertsMessage | Всплывающие сообщения — Включает всплывающие сообщения при смене тренда |
| alertsSound | Звуковые уведомления — Включает звуковое уведомление при смене тренда |
| alertsEmail | Email-уведомления — Включает отправку email-уведомлений при смене тренда |
| Dummy | Служебный параметр — Служебный параметр для управления обновлением на текущем баре |
Поиск по коду файла
#property description "modif. by Mobidik"
#property indicator_chart_window
#property indicator_buffers 0
#property strict
enum MyEnum
{
v0, // стандартный
v1, // по H/L
v2 // по H/L 1 бара
};
extern string TimeFrame = "current time frame";
extern int FastEMA = 12;
extern int SlowEMA = 26;
extern int SignalEMA = 9;
extern int Price = PRICE_CLOSE;
extern string UniqueID = "MACD zones";
extern color ColorUp = C'165,245,216';
extern color ColorNeutralUp = C'249,227,225';
extern color ColorDown = C'249,200,225';
extern color ColorNeutralDown = C'216,245,216';
extern MyEnum ShowBox = 0; // Вариант отображения боксов
extern double MaxValue = 200; //
extern bool Arr_On = false; // Показать стрелки
extern int Arr_otstup = 0; // Отступ стрелок
extern int Arr_width = 2; // Размер стрелок
extern color Arr_Up_col = clrBlue; // Цвет стрелки Up
extern color Arr_Dn_col = clrRed; // Цвет стрелки Dn
extern bool alertsOn = false;
extern bool alertsOnCurrent = true;
extern bool alertsMessage = true;
extern bool alertsSound = false;
extern bool alertsEmail = false;
extern datetime Dummy = 0;
double macd[];
double signal[];
double colors[];
int timeFrame;
string indicatorFileName;
double PrH,PrL;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
string lookFor = UniqueID+":";
int lookForLength = StringLen(lookFor);
for (int i=ObjectsTotal()-1; i>=0; i--)
{
string objectName = ObjectName(i);
if (StringSubstr(objectName,0,lookForLength) == lookFor) ObjectDelete(objectName);
}
return(0);
}
int start()
{
// код доступен только после оплаты
}
int i,counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(Bars-counted_bars,Bars-1);
datetime tDummy = Dummy;
if (timeFrame!=Period())
{
iCustom(NULL,timeFrame,indicatorFileName,"",FastEMA,SlowEMA,SignalEMA,Price,UniqueID,ColorUp,ColorNeutralUp,ColorDown,ColorNeutralDown,MaxValue,alertsOn,alertsOnCurrent,alertsMessage,alertsSound,alertsEmail,Time[0],0,0);
return(0);
}
else if (Dummy<=Time[0]) tDummy = Time[0];
static bool secondTime=false;
if (secondTime)
{
int count=0;
for (;limit<Bars; limit++) if (colors[limit]!=colors[limit+1]) { count++; if (count>1) break; }
}
else secondTime=true;
for(i = limit; i>=0 ; i--)
{
double price = iMA(NULL,0,1,0,MODE_SMA,Price,i);
if (i>Bars-2)
{
macd[i] = 0;
signal[i] = 0;
continue;
}
macd[i] = iDema(price,FastEMA,i,0)-iDema(price,SlowEMA,i,1);
signal[i] = iDema(macd[i],SignalEMA,i,2);
colors[i] = colors[i+1];
if (macd[i]>signal[i] && macd[i]> 0) colors[i] = 1;
if (macd[i]>signal[i] && macd[i]< 0) colors[i] = 2;
if (macd[i]<signal[i] && macd[i]< 0) colors[i] = -1;
if (macd[i]<signal[i] && macd[i]> 0) colors[i] = -2;
int index;
for (index=i; index<Bars; index++)
if (colors[index]!=colors[index+1]) break;
string name = UniqueID+":"+TimeToStr(Time[index+1]);
ObjectDelete(name);
ObjectDelete(UniqueID+":"+TimeToStr(Time[1]));
if(ShowBox>0)
{
if(colors[i]!=colors[i+1])
{
PrH = High[i];
PrL = Low[i];
}else{
if(ShowBox<2)
{
if(PrH < High[i]) PrH = High[i];
if(PrL > Low[i]) PrL = Low[i];
}
}
}
datetime lastTime = Time[i]; if (i==0) lastTime = tDummy;
ObjectCreate(name,OBJ_RECTANGLE,0,Time[index+1],PrL,lastTime,PrH);
ObjectSet(name,OBJPROP_BACK,true);
ObjectSet(name,OBJPROP_SELECTABLE,false);
int col = (int)colors[i];
switch (col)
{
case -1 : ObjectSet(name,OBJPROP_COLOR,ColorDown); break;
Показано первые 50% кода (символов: 6704)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.