multi pair macd mtf.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «multi pair macd mtf.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор отображает аналитические данные MACD для нескольких валютных пар одновременно в отдельном окне графика. Для каждой пары рассчитываются гистограмма MACD, сигнальная линия и индикаторы пересечения нуля, что позволяет визуально сравнивать динамику множества инструментов на одном графике.
Индикатор поддерживает работу на различных таймфреймах и использует экспоненциальные скользящие средние с настраиваемыми периодами. Встроена функция нормализации значений, позволяющая сопоставлять MACD-показатели пар с различной волатильностью на единой шкале.
Для каждой валютной пары создаются графические объекты-метки с названием инструмента и цветовой индикацией пересечения сигнальной линии. Разделитель между блоками пар настраивается пользователем.
Настройки программы
| Настройка | Описание |
|---|---|
| FastEma | Период быстрой экспоненциальной скользящей средней, используемой для расчёта линии MACD. |
| SlowEma | Период медленной экспоненциальной скользящей средней, используемой для расчёта линии MACD. |
| SignalEma | Период сигнальной экспоненциальной скользящей средней, применяемой для сглаживания линии MACD. |
| barsPerPair | Количество баров, отображаемых для каждой валютной пары в окне индикатора. |
| TimeFrame | Таймфрейм, на котором рассчитываются значения индикатора. Допускается указание в виде текстовой строки, например M1, H1, D1 или Current time frame. |
| equalize | Переключатель нормализации значений MACD для всех пар, позволяющий сравнивать их на единой шкале. |
| text | Текстовый параметр, определяющий дополнительные настройки отображения меток. |
| textColor | Цвет текста названий валютных пар в метках индикатора. |
| backColor | Цвет фона графических меток названий валютных пар в окне индикатора. |
| separatorWidth | Ширина разделителя между блоками разных валютных пар в окне индикатора. |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 6
#property indicator_color1 Green
#property indicator_color2 Green
#property indicator_color3 Red
#property indicator_color4 Red
#property indicator_color5 Gray
#property indicator_color6 Gold
#property indicator_width1 2
#property indicator_width3 2
extern int FastEma = 12;
extern int SlowEma = 26;
extern int SignalEma = 9;
extern int barsPerPair = 70;
extern string pairs = "EURUSD;GBPUSD;USDCAD";
extern string TimeFrame = "Current time frame";
extern bool equalize = false;
extern string text = "color";
extern color textColor = Silver;
extern color backColor = C'48,48,48';
extern int separatorWidth = 6;
double ind_buffer1[];
double ind_buffer2[];
double ind_buffer3[];
double ind_buffer4[];
double ind_buffer5[];
double ind_buffer6[];
double ind_buffer7[];
double ind_buffer8[];
double ind_buffer9[];
double minMacd;
double maxMacd;
double maxValues[];
string aPairs[];
string shortName;
int window;
int add;
int timeFrame;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
for (int i = 0; i < ArraySize(aPairs); i++) {
ObjectDelete(shortName+i);
ObjectDelete(shortName+i+i);
}
return(0);
}
int start()
{
// код доступен только после оплаты
}
void plotGraph(string symbol,int limit, int& shift,int element, double max)
{
double koef = 1;
if (equalize) koef = max/maxValues[element];
for(int i=limit-1; i>=0; i--) {
ind_buffer5[i+shift] = ind_buffer5[i+shift]*koef;
ind_buffer6[i+shift] = ind_buffer6[i+shift]*koef;
if (ind_buffer7[i+shift] > 0) {
ind_buffer3[i+shift] = EMPTY_VALUE;
ind_buffer4[i+shift] = EMPTY_VALUE;
ind_buffer1[i+shift] = ind_buffer1[i+shift+1];
ind_buffer2[i+shift] = ind_buffer2[i+shift+1];
if (ind_buffer7[i+shift] > ind_buffer7[i+shift+1])
{
ind_buffer1[i+shift] = ind_buffer7[i+shift]*koef;
ind_buffer2[i+shift] = EMPTY_VALUE;
}
if (ind_buffer7[i+shift] < ind_buffer7[i+shift+1])
{
ind_buffer2[i+shift] = ind_buffer7[i+shift]*koef;
ind_buffer1[i+shift] = EMPTY_VALUE;
}
}
else {
ind_buffer1[i+shift] = EMPTY_VALUE;
ind_buffer2[i+shift] = EMPTY_VALUE;
ind_buffer3[i+shift] = ind_buffer3[i+shift+1];
ind_buffer4[i+shift] = ind_buffer4[i+shift+1];
if (ind_buffer7[i+shift] < ind_buffer7[i+shift+1])
{
Показано первые 50% кода (символов: 7618)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.