xmc ea 1.00.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «xmc ea 1.00.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный индикатор предназначен для мультивалютного анализа на основе золота в платформе MetaTrader 5. Он нормализует цены шести валютных пар с участием золота (XAUAUD, XAUCHF, XAUEUR, XAUGBP, XAUJPY, XAUUSD) к единому диапазону и отображает их на отдельном индикаторном окте.
Для каждой валютной пары рассчитывается относительное положение текущей цены в заданном диапазоне баров, что позволяет сравнивать динамику разных пар на единой шкале. Результат отрисовывается шестью цветными линиями в пределах от 0 до 100.
Индикатор предоставляет визуальное ранжирование валютных пар по силе с помощью легенды, а также отображает текущие значения на правой стороне графика с автоматической компенсацией наложения. Горизонтальные линии на уровнях 0, 50 и 100 служат ориентирами для оценки.
Настройки программы
| Настройка | Описание |
|---|---|
| Sym1 | Символ первой валютной пары на основе золота |
| Sym2 | Символ второй валютной пары на основе золота |
| Sym3 | Символ третьей валютной пары на основе золота |
| Sym4 | Символ четвёртой валютной пары на основе золота |
| Sym5 | Символ пятой валютной пары на основе золота |
| Sym6 | Символ шестой валютной пары на основе золота |
| Lookback | Количество баров, используемых для расчёта нормализации цен |
| LineWidth | Толщина линий индикатора на графике |
| ShowMidline | Отображение горизонтальной линии на уровне 50 |
| ShowLegend | Отображение легенды с ранжированием валютных пар по силе |
Поиск по коду файла
#property strict
#property description " "
#property description "This EA is licensed for FREE Unlimited Private Use, and has been distributed at Telegram group FREE FOREX ROBOTS for members-only."
#property description " "
#property description "Instructions: any asset, any timeframe."
#property description " "
#property description "Risk Warning! Test this EA on Demo account first. Understand how this EA operates. Trading is risky and not suitable for every investor."
#property indicator_separate_window
#property indicator_minimum 0
#property indicator_maximum 100
#property indicator_buffers 6
#property indicator_color1 clrCoral
#property indicator_color2 clrTeal
#property indicator_color3 clrDodgerBlue
#property indicator_color4 clrMediumSeaGreen
#property indicator_color5 clrGold
#property indicator_color6 clrMediumPurple
input string Sym1 = "XAUAUD";
input string Sym2 = "XAUCHF";
input string Sym3 = "XAUEUR";
input string Sym4 = "XAUGBP";
input string Sym5 = "XAUJPY";
input string Sym6 = "XAUUSD";
input int Lookback = 100;
input int LineWidth = 2;
input bool ShowMidline = true;
input bool ShowLegend = true;
string g_sym[6];
color g_clr[6] = {clrCoral, clrTeal, clrDodgerBlue, clrMediumSeaGreen, clrGold, clrMediumPurple};
int g_win = -1;
int g_sorted[6];
double g_vals[6];
bool g_isValid[6];
int g_period;
string g_shortName;
double g_cache[6][1000];
double buf0[], buf1[], buf2[], buf3[], buf4[], buf5[];
int OnInit()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason)
{
for(int i = ObjectsTotal() - 1; i >= 0; i--)
{
string name = ObjectName(i);
if(StringFind(name, "MCG_") == 0) ObjectDelete(0, name);
}
}
void SetupObjects()
{
g_win = WindowFind(g_shortName);
if(g_win < 0) return;
datetime t2 = Time[0];
CreateHLine("MCG_H100", 100, clrDarkSlateGray);
CreateHLine("MCG_H0", 0, clrDarkSlateGray);
if(ShowMidline) CreateHLine("MCG_H50", 50, clrGray);
if(ShowLegend)
{
for(int i = 0; i < 6; i++)
{
int yPos = (5 - i) * 14 + 30;
CreateLabel("MCG_L" + IntegerToString(i), 10, yPos, CORNER_LEFT_LOWER);
CreateLabel("MCG_V" + IntegerToString(i), 80, yPos, CORNER_LEFT_LOWER);
}
}
for(int i = 0; i < 6; i++)
{
string rtName = "MCG_RT" + IntegerToString(i);
ObjectDelete(0, rtName);
ObjectCreate(0, rtName, OBJ_TEXT, g_win, t2, 50);
ObjectSetString(0, rtName, OBJPROP_TEXT, " " + g_sym[i]);
ObjectSetInteger(0, rtName, OBJPROP_COLOR, g_clr[i]);
ObjectSetInteger(0, rtName, OBJPROP_FONTSIZE, 7);
ObjectSetString(0, rtName, OBJPROP_FONT, "Arial Bold");
ObjectSetInteger(0, rtName, OBJPROP_ANCHOR, ANCHOR_LEFT);
ObjectSetInteger(0, rtName, OBJPROP_SELECTABLE, false);
ObjectSetInteger(0, rtName, OBJPROP_HIDDEN, true);
}
}
void CreateHLine(string name, double price, color clr)
{
ObjectDelete(0, name);
ObjectCreate(0, name, OBJ_HLINE, g_win, 0, price);
ObjectSetInteger(0, name, OBJPROP_COLOR, clr);
ObjectSetInteger(0, name, OBJPROP_BACK, true);
ObjectSetInteger(0, name, OBJPROP_SELECTABLE, false);
ObjectSetInteger(0, name, OBJPROP_HIDDEN, true);
}
void CreateLabel(string name, int x, int y, int corner = CORNER_LEFT_UPPER)
{
ObjectDelete(0, name);
ObjectCreate(0, name, OBJ_LABEL, g_win, 0, 0);
ObjectSetInteger(0, name, OBJPROP_CORNER, corner);
ObjectSetInteger(0, name, OBJPROP_XDISTANCE, x);
ObjectSetInteger(0, name, OBJPROP_YDISTANCE, y);
ObjectSetInteger(0, name, OBJPROP_FONTSIZE, 8);
ObjectSetString(0, name, OBJPROP_FONT, "Arial Bold");
ObjectSetInteger(0, name, OBJPROP_SELECTABLE, false);
ObjectSetInteger(0, name, OBJPROP_HIDDEN, true);
}
void UpdateDisplay()
{
for(int i = 0; i < 6; i++) g_sorted[i] = i;
for(int i = 0; i < 5; i++)
for(int j = i + 1; j < 6; j++)
if(g_vals[g_sorted[i]] < g_vals[g_sorted[j]])
{
int tmp = g_sorted[i];
g_sorted[i] = g_sorted[j];
g_sorted[j] = tmp;
}
if(ShowLegend && g_win >= 0)
{
for(int rank = 0; rank < 6; rank++)
{
int idx = g_sorted[rank];
string rankStr = IntegerToString(rank);
ObjectSetString(0, "MCG_L" + rankStr, OBJPROP_TEXT, "■ " + g_sym[idx]);
ObjectSetInteger(0, "MCG_L" + rankStr, OBJPROP_COLOR, clrBlack);
string valText = g_isValid[idx] ? DoubleToString(g_vals[idx], 1) : "N/A";
ObjectSetString(0, "MCG_V" + rankStr, OBJPROP_TEXT, valText);
ObjectSetInteger(0, "MCG_V" + rankStr, OBJPROP_COLOR, clrBlack);
}
}
int rt_shift = 0;
datetime textTime = Time[rt_shift];
if(textTime == 0) textTime = Time[0];
double plot_y[6];
ArrayInitialize(plot_y, 10.0);
int s_idx[6];
ArrayInitialize(s_idx, 0);
double adj_y[6];
ArrayInitialize(adj_y, 0.0);
for(int i = 0; i < 6; i++)
{
Показано первые 50% кода (символов: 8424)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.