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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.