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

Correl8

correl8.mq5
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Correl8 — индикатор для MetaTrader 4, рассчитывающий корреляционные индексы валютных пар относительно доллара США. Он вычисляет значения Percent Range Index для восьми основных валют и отображает их в отдельном окне графика в виде цветных линий. Индикатор поддерживает выбор периода расчёта, источника цены и режима корреляции, а также гибкую настройку отображаемых валют.

Настройки программы

НастройкаОписание
PRIPeriod Период PRI — Период, используемый для расчёта индекса Percent Range Index.
_ Подсказка источника цены — Текстовая подсказка в диалоге настроек, обозначающая доступные варианты источника цены.
Price Источник цены — Тип цены для расчётов: Close, High, Low, Median, Typical или Weighted.
__ Подсказка режима корреляции — Текстовая подсказка в диалоге настроек, обозначающая доступные режимы корреляции.
PRIMode Режим корреляции — Режим расчёта корреляции: High/Low, Close/Close или High/Low/Close.
TimeFrame Таймфрейм — Таймфрейм для расчётов; 0 означает текущий таймфрейм графика с автоматической подстройкой периода.
ShowAuto Автоотбор валют — Автоматически включает отображение валют на основе базовой и котируемой валюты текущего символа.
ShowAll Показать все валюты — Включает отображение всех восьми валютных пар.
ShowEUR Показать EUR — Отображает линию корреляции для евро.
ShowGBP Показать GBP — Отображает линию корреляции для фунта стерлингов.
ShowAUD Показать AUD — Отображает линию корреляции для австралийского доллара.
ShowNZD Показать NZD — Отображает линию корреляции для новозеландского доллара.
ShowCHF Показать CHF — Отображает линию корреляции для швейцарского франка.
ShowCAD Показать CAD — Отображает линию корреляции для канадского доллара.
ShowJPY Показать JPY — Отображает линию корреляции для японской иены.
ShowUSD Показать USD — Отображает линию корреляции для доллара США.
Получить полный код

Поиск по коду файла

#property version   "1.00"
#property strict
#property indicator_separate_window
#property indicator_buffers 8

#property indicator_color1 clrRoyalBlue
#property indicator_color2 clrSilver
#property indicator_color3 clrDarkOrange
#property indicator_color4 clrDarkViolet
#property indicator_color5 clrFireBrick
#property indicator_color6 clrMagenta
#property indicator_color7 clrYellow
#property indicator_color8 clrLimeGreen

#property indicator_width1  2
#property indicator_width2  2
#property indicator_width3  2
#property indicator_width4  2
#property indicator_width5  2
#property indicator_width6  2
#property indicator_width7  2
#property indicator_width8  3

#define      LEVELS         7 

#define      HIGH_LOW       0
#define      CLOSE_CLOSE    1
#define      HIGH_LOW_CLOSE 2

extern int   PRIPeriod  = 14;
input string _          = "0=Close 4=Median 5=Typical 6=Weighted";
input int    Price      = PRICE_CLOSE;
input string __         = "0=High/Low 1=Close/Close 2=High/Low/Close";
input int    PRIMode    = HIGH_LOW;
input int    TimeFrame  = 0;

input bool   ShowAuto = true;

extern bool  ShowAll = false;
extern bool  ShowEUR = false;
extern bool  ShowGBP = false;
extern bool  ShowAUD = false;
extern bool  ShowNZD = false;
extern bool  ShowCHF = false;
extern bool  ShowCAD = false;
extern bool  ShowJPY = false;
extern bool  ShowUSD = false;

double Idx1[],Idx2[],Idx3[],Idx4[],Idx5[],Idx6[],Idx7[],Idx8[];

int BufferLevel[LEVELS] = {-50,-26,-12,  0, 12, 26, 50};

int EUR,GBP,AUD,NZD,CHF,CAD,JPY,USD;

string Currencies[indicator_buffers] = {"EUR","GBP","AUD","NZD",
                                        "CHF","CAD","JPY","USD"};
int Colors[indicator_buffers] = {indicator_color1,indicator_color2,
                                 indicator_color3,indicator_color4,
                                 indicator_color5,indicator_color6,
                                 indicator_color7,indicator_color8};
string ShortName;
int    BarsWindow;

int OnInit()
  {
      // код доступен только после оплаты
   }

   IndicatorDigits(0);
   IndicatorBuffers(indicator_buffers);

   if(TimeFrame==0)
     {
      switch(Period())
        {
         case PERIOD_M30: PRIPeriod*=2;break;
         case PERIOD_M15: PRIPeriod*=4;break;
         case PERIOD_M5:  PRIPeriod*=12;break;
         case PERIOD_M1:  PRIPeriod*=60;break;
        }
     }
   if(TimeFrame>0)
     {
      switch(TimeFrame)
        {
         case PERIOD_M30: PRIPeriod*=2;break;
         case PERIOD_M15: PRIPeriod*=4;break;
         case PERIOD_M5:  PRIPeriod*=12;break;
         case PERIOD_M1:  PRIPeriod*=60;break;
        }
     }
   string sTimeFrame;
   switch(TimeFrame)
      {
       case PERIOD_MN1: sTimeFrame = "MN1 ";break;
       case PERIOD_W1:  sTimeFrame = "W1 "; break;
       case PERIOD_D1:  sTimeFrame = "D1 "; break;
       case PERIOD_H4:  sTimeFrame = "H4 "; break;
       case PERIOD_H1:  sTimeFrame = "H1 "; break;
       case PERIOD_M30: sTimeFrame = "M30 ";break;
       case PERIOD_M15: sTimeFrame = "M15 ";break;
       case PERIOD_M5:  sTimeFrame = "M5 "; break;
       case PERIOD_M1:  sTimeFrame = "M1 "; break;
       default:         sTimeFrame = "";    break;
      }
   ShortName="iCorrel8 "+sTimeFrame+"("+PRIPeriod+") ";
   IndicatorShortName(ShortName);
   BarsWindow=WindowBarsPerChart()+PRIPeriod;

   for(int l=0;l<LEVELS;l++)
      SetLevelValue(l,BufferLevel[l]);
      SetLevelStyle(STYLE_DOT,1,LightSlateGray);

   if(ShowAuto)
     {
      string Quote= StringSubstr(Symbol(),3,3);  //Quote currency name
      string Base = StringSubstr(Symbol(),0,3);  //Base currency name
      if(Quote == "EUR" || Base == "EUR")  ShowEUR = true;
      if(Quote == "GBP" || Base == "GBP")  ShowGBP = true;
      if(Quote == "AUD" || Base == "AUD")  ShowAUD = true;
      if(Quote == "NZD" || Base == "NZD")  ShowNZD = true;
      if(Quote == "CHF" || Base == "CHF")  ShowCHF = true;
      if(Quote == "CAD" || Base == "CAD")  ShowCAD = true;
      if(Quote == "JPY" || Base == "JPY")  ShowJPY = true;
      if(Quote == "USD" || Base == "USD")  ShowUSD = true;
      ShowAll=false;
     }

   if(ShowAll)
     {
      ShowEUR = true;
      ShowGBP = true;
      ShowAUD = true;
      ShowNZD = true;
      ShowCHF = true;
      ShowCAD = true;
      ShowJPY = true;
      ShowUSD = true;
     }

   int window=WindowFind(ShortName);
   int xStart=4;       //label coordinates
   int xIncrement=25;
   int yStart=16;

   if(ShowEUR)
     {
      SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,indicator_width1);
      SetIndexLabel(0,Currencies[0]);
      SetIndexDrawBegin(0,Bars-BarsWindow);
      CreateLabel(Currencies[0],window,xStart,yStart,indicator_color1);
      xStart+=xIncrement;
     }
   if(ShowGBP)
     {
      SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,indicator_width2);
      SetIndexLabel(1,Currencies[1]);
      SetIndexDrawBegin(1,Bars-BarsWindow);
      CreateLabel(Currencies[1],window,xStart,yStart,indicator_color2);
      xStart+=xIncrement;
     }
   if(ShowAUD)
     {
      SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,indicator_width3);
      SetIndexLabel(2,Currencies[2]);
      SetIndexDrawBegin(2,Bars-BarsWindow);
      CreateLabel(Currencies[2],window,xStart,yStart,indicator_color3);
      xStart+=xIncrement;
     }
   if(ShowNZD)
     {
      SetIndexStyle(3,DRAW_LINE,STYLE_SOLID,indicator_width4);
      SetIndexDrawBegin(3,Bars-BarsWindow);
      SetIndexLabel(3,Currencies[3]);
      CreateLabel(Currencies[3],window,xStart,yStart,indicator_color4);
      xStart+=xIncrement;
     }
   if(ShowCHF)
     {
      SetIndexStyle(4,DRAW_LINE,STYLE_SOLID,indicator_width5);
      SetIndexLabel(4,Currencies[4]);
      SetIndexDrawBegin(4,Bars-BarsWindow);
      CreateLabel(Currencies[4],window,xStart,yStart,indicator_color5);
      xStart+=xIncrement;
     }
   if(ShowCAD)
     {
      SetIndexStyle(5,DRAW_LINE,STYLE_SOLID,indicator_width6);
      SetIndexLabel(5,Currencies[5]);
      SetIndexDrawBegin(5,Bars-BarsWindow);
      CreateLabel(Currencies[5],window,xStart,yStart,indicator_color6);
      xStart+=xIncrement;
     }
   if(ShowJPY)
     {
      SetIndexStyle(6,DRAW_LINE,STYLE_SOLID,indicator_width7);
      SetIndexLabel(6,Currencies[6]);
      SetIndexDrawBegin(6,Bars-BarsWindow);
      CreateLabel(Currencies[6],window,xStart,yStart,indicator_color7);
      xStart+=xIncrement;
     }
   if(ShowUSD)
     {
      SetIndexStyle(7,DRAW_LINE,STYLE_SOLID,indicator_width8);
      SetIndexLabel(7,Currencies[7]);
      SetIndexDrawBegin(7,Bars-BarsWindow);
      CreateLabel(Currencies[7],window,xStart,yStart,indicator_color8);
      xStart+=xIncrement;
     }

   SetIndexBuffer(0,Idx1);

Показано первые 50% кода (символов: 9711)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
971,10₽ ≈ $11.87