zerolag macd - alerts arrows.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «zerolag macd - alerts arrows.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор «Zero lag MACD — alerts arrows» рассчитывает аналитический индикатор MACD с нулевым лагом для платформы MetaTrader 5. Он строит гистограмму MACD, сигнальную линию и осциллятор (разность MACD и сигнальной линии), отображая их в отдельном окне графика.
Индикатор поддерживает отрисовку стрелок при смене направления тренда. Условия определения тренда настраиваются: пересечение MACD сигнальной линии, пересечение MACD нулевой линии или пересечение сигнальной линии нулевой линией. Стрелки можно настраивать по цвету, размеру и видимости.
Встроена система уведомлений: всплывающие сообщения, звуковые сигналы и электронная почта. Уведомления срабатывают при смене направления тренда. Доступна интерполяция данных для мультитаймфреймного отображения.
Индикатор позволяет выбирать таймфрейм расчёта, тип цены для расчёта MACD, а также режим работы (расчёт MACD, возврат количества баров или обычный режим отображения).
Настройки программы
| Настройка | Описание |
|---|---|
| timeFrame | Таймфрейм — Таймфрейм для расчёта индикатора (например, M1, M5, H1, D1 и т. д.). |
| FastEMA | Период быстрой EMA — Период быстрой экспоненциальной скользящей средней (EMA) для расчёта MACD. |
| SlowEMA | Период медленной EMA — Период медленной экспоненциальной скользящей средней (EMA) для расчёта MACD. |
| SignalEMA | Период сигнальной EMA — Период сигнальной экспоненциальной скользящей средней (EMA) для расчёта сигнальной линии MACD. |
| AlertsArrowsOn | Тип перекрёстия для стрелок — Тип индикатора перекрёстия для отображения стрелок и определения тренда: 0 — MACD пересекает сигнальную линию, 1 — MACD пересекает нулевую линию, 2 — сигнальная линия пересекает нулевую линию. |
| MacdPrice | Тип цены для MACD — Тип цены, используемый для расчёта индикатора MACD. |
| Interpolate | Интерполяция данных — Включает или отключает интерполяцию данных при отображении на меньшем таймфрейме. |
| arrowsVisible | Видимость стрелок — Включает или отключает отображение стрелок на графике. |
| arrowsIdentifier | Идентификатор стрелок — Идентификатор объектов стрелок на графике (префикс для имен объектов). |
| UpArrowSymbolCode | Код символа стрелки вверх — Код символа стрелки вверх. |
| DownArrowSymbolCode | Код символа стрелки вниз — Код символа стрелки вниз. |
| arrowsUpColor | Цвет стрелки вверх — Цвет стрелки вверх. |
| arrowsDnColor | Цвет стрелки вниз — Цвет стрелки вниз. |
| UpArrowSize | Размер стрелки вверх — Размер стрелки вверх. |
| DownArrowSize | Размер стрелки вниз — Размер стрелки вниз. |
| alertsOn | Система уведомлений — Включает или отключает систему уведомлений индикатора. |
| alertsOnCurrent | Отслеживание на текущем баре — Определяет, на каком баре отслеживать смену тренда: на текущем баре или на предыдущем. |
| alertsMessage | Всплывающие сообщения — Включает или отключает всплывающие текстовые сообщения при смене тренда. |
| alertsSound | Звуковой сигнал — Включает или отключает звуковой сигнал при смене тренда. |
| alertsEmail | Уведомления по электронной почте — Включает или отключает отправку уведомлений по электронной почте при смене тренда. |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1 clrDeepSkyBlue
#property indicator_color2 clrDimGray
#property indicator_color3 clrDeepSkyBlue
#property indicator_color4 clrRed
#property indicator_width2 2
#property indicator_width3 2
extern string timeFrame = "current time frame";
extern int FastEMA = 12;
extern int SlowEMA = 26;
extern int SignalEMA = 9;
extern int AlertsArrowsOn = 0;
extern int MacdPrice = PRICE_CLOSE;
extern bool Interpolate = true;
extern bool arrowsVisible = true;
extern string arrowsIdentifier = "ZLMacdArrows";
extern int UpArrowSymbolCode = 241;
extern int DownArrowSymbolCode = 242;
extern color arrowsUpColor = clrDeepSkyBlue;
extern color arrowsDnColor = clrRed;
extern int UpArrowSize = 1;
extern int DownArrowSize = 1;
extern bool alertsOn = false;
extern bool alertsOnCurrent = false;
extern bool alertsMessage = false;
extern bool alertsSound = false;
extern bool alertsEmail = false;
double macdBuffer[], machBuffer[], signBuffer[], osmaBuffer[], trend[];
double workBuffer[][6];
string CrossDescription, IndicatorFileName;
bool calculatingMacd = false;
bool returningBars = false;
int TimeFrame;
int OnInit()
{
// код доступен только после оплаты
}
int deinit()
{
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);
}
return(0);
}
int start()
{
// код доступен только после оплаты
}
int counted_bars = IndicatorCounted();
int limit,i;
if(counted_bars < 0) return(-1);
if(counted_bars > 0) counted_bars--;
limit = MathMin(Bars-counted_bars,Bars-1);
if (returningBars) { macdBuffer[0] = limit; return(0); }
if (calculatingMacd) { CalculateMacd(limit); return(0); }
if (TimeFrame > Period()) limit = MathMax(limit,MathMin(Bars,iCustom(NULL,TimeFrame,IndicatorFileName,"returnBars",0,0)*TimeFrame/Period()));
for(i = limit; i >= 0; i--)
{
int shift1 = iBarShift(NULL,TimeFrame,Time[i]);
datetime time1 = iTime (NULL,TimeFrame,shift1);
macdBuffer[i] = iCustom(NULL,TimeFrame,IndicatorFileName,"calculateMACD",FastEMA,SlowEMA,SignalEMA,MacdPrice,2,shift1);
signBuffer[i] = iCustom(NULL,TimeFrame,IndicatorFileName,"calculateMACD",FastEMA,SlowEMA,SignalEMA,MacdPrice,3,shift1);
machBuffer[i] = macdBuffer[i];
osmaBuffer[i] = macdBuffer[i]-signBuffer[i];
switch(AlertsArrowsOn)
{
case 0 :
if (osmaBuffer[i]>0) trend[i] = 1;
if (osmaBuffer[i]<0) trend[i] = -1;
break;
case 1 :
if (macdBuffer[i]>0) trend[i] = 1;
if (macdBuffer[i]<0) trend[i] = -1;
break;
case 2 :
if (signBuffer[i]>0) trend[i] = 1;
if (signBuffer[i]<0) trend[i] = -1;
break;
}
manageArrow(i);
if (TimeFrame <= Period() || shift1==iBarShift(NULL,TimeFrame,Time[i-1])) continue;
if (!Interpolate) continue;
for(int n = 1; i+n < Bars && Time[i+n] >= time1; n++) continue;
double factor = 1.0 / n;
for(int k = 1; k < n; k++)
{
macdBuffer[i+k] = k*factor*macdBuffer[i+n] + (1.0-k*factor)*macdBufferПоказано первые 50% кода (символов: 7597)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.