macd_tradingview_style_mt4.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «macd_tradingview_style_mt4.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор рассчитывает MACD (Moving Average Convergence Divergence) в стиле TradingView для платформы MetaTrader 4. Использует четыре цветовых варианта гистограммы: тёмно-зелёный и светло-зелёный для положительных значений, коралловый и красный для отрицательных, с цветом, зависящим от направления изменения текущего значения относительно предыдущего. Линия сигнала инициализируется скользящим средним (SMA-seed), что обеспечивает совпадение значений с TradingView бар за баром. Расчёт экспоненциальных скользящих средних (EMA) выполняется внутренне без внешних зависимостей от других индикаторов.
Настройки программы
| Настройка | Описание |
|---|---|
| Fast EMA Length (InpFastEMA) | Быстрая EMA — Длина периода быстрой экспоненциальной скользящей средней, используемой для расчёта быстрой линии MACD. |
| Slow EMA Length (InpSlowEMA) | Медленная EMA — Длина периода медленной экспоненциальной скользящей средней, используемой для расчёта медленной линии MACD. |
| Signal EMA Length (InpSignalSMA) | Сигнальная SMA — Длина периода для инициализации сигнальной линии скользящим средним перед переходом к экспоненциальному сглаживанию. |
| Source (InpPrice) | Источник цены — Выбирает тип ценового значения (Open, High, Low, Close, Median, Typical или Weighted), используемого при расчёте индикатора. |
Поиск по коду файла
#property version "1.00"
#property strict
#property description "MACD indicator styled after TradingView's implementation."
#property description "Features a 4-color histogram (dark/light green and coral/red)"
#property description "and a Signal line seeded with SMA — identical to Pine Script's ta.ema() initialisation,"
#property description "ensuring values match TradingView bar-for-bar."
#property indicator_separate_window
#property indicator_buffers 8
#property indicator_color1 DodgerBlue
#property indicator_color2 Orange
#property indicator_color3 DarkGreen
#property indicator_color4 LimeGreen
#property indicator_color5 LightCoral
#property indicator_color6 Red
#property indicator_color7 CLR_NONE
#property indicator_color8 CLR_NONE
#property indicator_width1 1
#property indicator_width2 1
#property indicator_width3 5
#property indicator_width4 5
#property indicator_width5 5
#property indicator_width6 5
#property indicator_type3 DRAW_HISTOGRAM
#property indicator_type4 DRAW_HISTOGRAM
#property indicator_type5 DRAW_HISTOGRAM
#property indicator_type6 DRAW_HISTOGRAM
input int InpFastEMA = 12; // Fast EMA Length
input int InpSlowEMA = 26; // Slow EMA Length
input int InpSignalSMA = 9; // Signal EMA Length
input ENUM_APPLIED_PRICE InpPrice = PRICE_CLOSE; // Source
double MACDBuffer[];
double SignalBuffer[];
double HistDarkGreen[];
double HistLimeGreen[];
double HistLightCoral[];
double HistRed[];
double FastEMABuffer[];
double SlowEMABuffer[];
int GetHistogramColor(double cur, double prev)
{
if(cur > 0)
return (cur >= prev) ? 0 : 1;
if(cur < 0)
return (cur <= prev) ? 3 : 2;
return 1;
}
double GetPrice(int i)
{
switch(InpPrice)
{
case PRICE_OPEN:
return Open[i];
case PRICE_HIGH:
return High[i];
case PRICE_LOW:
return Low[i];
case PRICE_MEDIAN:
return (High[i] + Low[i]) / 2.0;
case PRICE_TYPICAL:
return (High[i] + Low[i] + Close[i]) / 3.0;
case PRICE_WEIGHTED:
return (High[i] + Low[i] + Close[i] + Close[i]) / 4.0;
default:
return Close[i];
}
}
int OnInit()
{
// код доступен только после оплаты
}
IndicatorBuffers(8);
SetIndexBuffer(0, MACDBuffer);
SetIndexBuffer(1, SignalBuffer);
SetIndexBuffer(2, HistDarkGreen);
SetIndexBuffer(3, HistLimeGreen);
SetIndexBuffer(4, HistLightCoral);
SetIndexBuffer(5, HistRed);
SetIndexBuffer(6, FastEMABuffer);
SetIndexBuffer(7, SlowEMABuffer);
SetIndexStyle(6, DRAW_NONE);
SetIndexStyle(7, DRAW_NONE);
SetIndexLabel(0, "MACD");
SetIndexLabel(1, "Signal");
SetIndexLabel(2, "Hist+Rise");
SetIndexLabel(3, "Hist+Fall");
SetIndexLabel(4, "Hist-Rise");
SetIndexLabel(5, "Hist-Fall");
SetIndexLabel(6, NULL);
SetIndexLabel(7, NULL);
SetIndexEmptyValue(0, 0.0);
SetIndexEmptyValue(1, 0.0);
SetIndexEmptyValue(2, 0.0);
SetIndexEmptyValue(3, 0.0);
SetIndexEmptyValue(4, 0.0);
SetIndexEmptyValue(5, 0.0);
IndicatorShortName("MACD TV(" + Показано первые 50% кода (символов: 4458)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.