← К каталогу
Исходный код · ID 1113

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 и перейдите к оплате.

Стоимость полного кода
761,80₽ ≈ $9.31