Forex Trend Console
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «forex_trend_console_v2.0(dec).mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Forex Trend Console — это пользовательский индикатор для MetaTrader 4, предназначенный для визуализации анализа ценовых трендов и торговых сигналов прямо на графике. Он отображает информацию по нескольким валютным парам в виде настраиваемых панелей с текстовыми метками и графическими элементами.
Индикатор определяет направление тренда на основе пересечения двух экспоненциальных скользящих средних (EMA) с разными периодами, а состояние перекупленности или перепроданности оценивается с помощью стохастического индикатора. Результаты расчётов комбинируются для формирования сигналов, отображаемых на графике.
Внутренняя логика индикатора отслеживает глобальные переменные для фиксации экстремальных условий покупки и продажи, а также ведёт историю последних сигналов, отображая их в виде текстовых строк с указанием направления (BUY/SELL) и ценового уровня. При инициализации выполняется проверка версии через внешнюю DLL-библиотеку и локальный CSV-файл.
Настройки программы
| Настройка | Описание |
|---|---|
| Symbols_To_Display | Список символов для отображения — Список валютных пар и инструментов через запятую, которые отображаются на панели индикатора. |
| Symbol_Name_Prefix | Префикс имени символа — Текстовый префикс, добавляемый к именам отображаемых символов на панели индикатора. |
| Symbol_Name_Suffix | Суффикс имени символа — Текстовый суффикс, добавляемый к именам отображаемых символов на панели индикатора. |
| ________1________ | Текстовая метка 1 — Текстовый параметр, используемый в качестве подписи или метки в интерфейсе индикатора. |
| FAST_EMA | Период быстрой EMA — Период быстрой экспоненциальной скользящей средней, применяемой для определения краткосрочного направления тренда. |
| ________2________ | Текстовая метка 2 — Текстовый параметр, используемый в качестве подписи или метки в интерфейсе индикатора. |
| SLOW_EMA | Период медленной EMA — Период медленной экспоненциальной скользящей средней, используемой для определения долгосрочного направления тренда. |
| ________3________ | Текстовая метка 3 — Текстовый параметр, используемый в качестве подписи или метки в интерфейсе индикатора. |
| Kperiod | Период K стохастика — Период K стохастического индикатора, определяющий основную линию стохастика. |
| ________4________ | Текстовая метка 4 — Текстовый параметр, используемый в качестве подписи или метки в интерфейсе индикатора. |
| Dperiod | Период D стохастика — Период D стохастического индикатора, используемый для расчёта сигнальных уровней перекупленности и перепроданности. |
| ________5________ | Текстовая метка 5 — Текстовый параметр, используемый в качестве подписи или метки в интерфейсе индикатора. |
| slowing | Замедление стохастика — Параметр замедления (slowing) стохастического индикатора, влияющий на сглаживание расчётной линии. |
Поиск по коду файла
#property indicator_chart_window
#import "Forex_Trend_Console.dll"
void CheckVersion(int a0, string& a1[]);
#import
string EURUSD="EURUSD",GBPUSD="GBPUSD",USDJPY="USDJPY",USDCAD="USDCAD",USDCHF="USDCHF",AUDUSD="AUDUSD",NZDUSD="NZDUSD",EURGBP="EURGBP";
string EURCHF="EURCHF",GBPJPY="GBPJPY",AUDJPY="AUDJPY",EURJPY="EURJPY",CHFJPY="CHFJPY",GBPCHF="GBPCHF",XAUUSD="XAUUSD",XAGUSD="XAGUSD";
extern string Symbols_To_Display = "EURUSD,GBPUSD,USDJPY,USDCAD,USDCHF,AUDUSD,NZDUSD,EURGBP,EURCHF,GBPJPY,AUDJPY,EURJPY,CHFJPY,GBPCHF,XAUUSD,XAGUSD";
extern string Symbol_Name_Prefix = "";
extern string Symbol_Name_Suffix = "";
extern string ________1________="??????? ??????";
extern int FAST_EMA=10;
extern string ________2________="????????? ??????";
extern int SLOW_EMA=100;
extern string ________3________="Kperiod - ??????????";
extern int Kperiod=20;
extern string ________4________="Dperiod - ??????????";
extern int Dperiod=30;
extern string ________5________="?????????? - ??????????";
extern int slowing=15;
string gsa_100[];
string g_str_concat_104;
double gda_112[3][6];
bool gi_unused_116 = TRUE;
int gi_120;
int g_datetime_124;
string g_name_128 = "checkver.csv";
int file_8;
int init() {
// код доступен только после оплаты
}
int deinit() {
ObjectsDeleteAll(0);
return (0);
}
int f0_14(string a_name_0) {
int file_8 = FileOpen(a_name_0, FILE_READ);
if (file_8 < 1) return (0);
FileClose(file_8);
return (1);
}
int f0_1() {
bool li_ret_0 = FALSE;
if (g_datetime_124 < iTime(NULL, 0, 0)) {
g_datetime_124 = iTime(NULL, 0, 0);
li_ret_0 = TRUE;
}
return (li_ret_0);
}
void f0_4() {
int li_16;
string str_concat_0 = StringConcatenate("Head_", 1);
string ls_8 = "Desk to trade";
f0_3(str_concat_0, ls_8, 10, 3, DodgerBlue, 20);
str_concat_0 = StringConcatenate("Head_", 2);
ls_8 = "v" + DoubleToStr(2.0, 2);
f0_3(str_concat_0, ls_8, 275, 13, DodgerBlue, 13);
str_concat_0 = StringConcatenate("Head_", 3);
ls_8 = "trend your friend";
f0_3(str_concat_0, ls_8, 10, 33, DodgerBlue, 13);
str_concat_0 = StringConcatenate("Head_", 4);
ls_8 = StringConcatenate("Trend Detection Time Frame: ", f0_7(Period()));
f0_3(str_concat_0, ls_8, 10, 55, DodgerBlue, 13);
int x_20 = 665;
int li_24 = -5;
for (int li_28 = 1; li_28 <= 3; li_28++) {
li_16 = 15 * li_28;
str_concat_0 = StringConcatenate("Legend_", li_28, "_", x_20, "_", li_24 + li_16);
if (ObjectFind(str_concat_0) == -1) {
ObjectCreate(str_concat_0, OBJ_LABEL, 0, 0, 0);
ObjectSet(str_concat_0, OBJPROP_CORNER, 0);
ObjectSet(str_concat_0, OBJPROP_COLOR, Blue);
ObjectSet(str_concat_0, OBJPROP_XDISTANCE, x_20);
ObjectSet(str_concat_0, OBJPROP_YDISTANCE, li_24 + li_16);
ObjectSetText(str_concat_0, "n", 15, "Wingdings", f0_0(li_28, 1));
}
}
str_concat_0 = StringConcatenate("Legend_", 0);
ls_8 = "Legend: ";
f0_3(str_concat_0, ls_8, 666, 2, DodgerBlue, 8);
str_concat_0 = StringConcatenate("Legend_", 1);
ls_8 = "= Strong down trend ";
f0_3(str_concat_0, ls_8, 683, 14, DodgerBlue, 8);
str_concat_0 = StringConcatenate("Legend_", 2);
ls_8 = "= Neutral ";
f0_3(str_concat_0, ls_8, 683, 29, DodgerBlue, 8);
str_concat_0 = StringConcatenate("Legend_", 3);
ls_8 = "= Strong up trend ";
f0_3(str_concat_0, ls_8, 683, 44, DodgerBlue, 8);
f0_9(0, "WndSignals", 500, 1, 260, 500, White);
str_concat_0 = StringConcatenate("SignalsH_", 1);
ls_8 = StringConcatenate("Trading Signals for ", f0_7(Period()), ": ");
f0_3(str_concat_0, ls_8, 560, 120, Blue, 12);
str_concat_0 = StringConcatenate("SignalsH_", 2);
ls_8 = "(By broker time) ";
f0_3(str_concat_0, ls_8, 560, 140, Blue, 8);
str_concat_0 = StringConcatenate("Signal_", 1, "_1");
f0_10(str_concat_0, "No signals yet. ", 560, 170, DodgerBlue, 12);
}
void f0_10(string a_name_0, string a_text_8, int a_x_16, int a_y_20, color a_color_24, int a_fontsize_28) {
if (ObjectFind(a_name_0) == -1) ObjectCreate(a_name_0, OBJ_LABEL, 0, 0, 0);
ObjectSet(a_name_0, OBJPROP_CORNER, 0);
ObjectSet(a_name_0, OBJPROP_XDISTANCE, a_x_16);
ObjectSet(a_name_0, OBJPROP_YDISTANCE, a_y_20);
ObjectSetText(a_name_0, a_text_8, a_fontsize_28, "Arial", a_color_24);
}
void f0_3(string a_name_0, string a_text_8, int a_x_16, int a_y_20, color a_color_24, int a_fontsize_28) {
if (ObjectFind(a_name_0) == -1) ObjectCreate(a_name_0, OBJ_LABEL, 0, 0, 0);
ObjectSet(a_name_0, OBJPROP_CORNER, 0);
ObjectSet(a_name_0, OBJPROP_XDISTANCE, a_x_16);
ObjectSet(a_name_0, OBJPROP_YDISTANCE, a_y_20);
ObjectSetText(a_name_0, a_text_8, a_fontsize_28, "Arial", a_color_24);
}
string f0_7(int ai_0) {
string ls_ret_4;
switch (ai_0) {
case 1:
ls_ret_4 = "1 Minute";
break;
case 5:
ls_ret_4 = "5 Minutes";
break;
case 15:
ls_ret_4 = "15 Minutes";
break;
case 30:
ls_ret_4 = "30 Minutes";
break;
case 60:
ls_ret_4 = "1 Hour";
break;
case 240:
ls_ret_4 = "4 Hours";
break;
case 1440:
ls_ret_4 = "Daily";
break;
case 10080:
ls_ret_4 = "Weekly";
break;
case 43200:
ls_ret_4 = "Monthly";
break;
default:
ls_ret_4 = "1 Hour";
}
return (ls_ret_4);
}
int f0_0(int ai_0, int ai_4) {
int li_ret_8;
if (ai_4 == 0) {
switch (ai_0) {
case 1:
li_ret_8 = 128;
break;
case 2:
li_ret_8 = 2237106;
break;
case 3:
li_ret_8 = 255;
break;
case 4:
li_ret_8 = 4678655;
break;
case 5:
li_ret_8 = 11119017;
break;
case 6:
li_ret_8 = 3329434;
break;
case 7:
li_ret_8 = 3329330;
break;
case 8:
li_ret_8 = 32768;
break;
case 9:
li_ret_8 = 25600;
break;
default:
li_ret_8 = 16777215;
}
}
if (ai_4 == 1) {
switch (ai_0) {
case 1:
li_ret_8 = 128;
break;
case 2:
li_ret_8 = 11119017;
break;
case 3:
li_ret_8 = 25600;
break;
default:
li_ret_8 = 11119017;
}
}
return (li_ret_8);
}
int f0_8(int ai_0) {
int li_ret_4 = 10 * ai_0 + (ai_0 - 1);
return (li_ret_4);
}
void f0_6(string a_text_0, int a_x_8, int a_y_12, int ai_16, int a_y_20, int ai_24) {
int li_36;
string str_concat_28 = StringConcatenate("Symb_", a_x_8, "_", a_y_12);
if (ObjectFind(str_concat_28) == -1) {
ObjectCreate(str_concat_28, OBJ_LABEL, 0, 0, 0);
ObjectSet(str_concat_28, OBJPROP_CORNER, 0);
ObjectSet(str_concat_28, OBJPROP_COLOR, DodgerBlue);
ObjectSet(str_concat_28, OBJPROP_XDISTANCE, a_x_8);
ObjectSet(str_concat_28, OBJPROP_YDISTANCE, a_y_12);
ObjectSetText(str_concat_28, a_text_0, 13, "Arial", DodgerBlue);
}
for (int li_40 = 1; li_40 <= 9; li_40++) {
li_36 = 11 * li_40;
str_concat_28 = StringConcatenate("B", li_40, "_", ai_16 + li_36, "_", a_y_20);
if (ObjectFind(str_concat_28) == -1) {
ObjectCreate(str_concat_28, OBJ_LABEL, 0, 0, 0);
ObjectSet(str_concat_28, OBJPROP_CORNER, 0);
ObjectSet(str_concat_28, OBJPROP_COLOR, Blue);
ObjectSet(str_concat_28, OBJPROP_XDISTANCE, ai_16 + li_36);
ObjectSet(str_concat_28, OBJPROP_YDISTANCE, a_y_20);
ObjectSetText(str_concat_28, "n", 15, "Wingdings", f0_0(li_40, 0));
}
}
str_concat_28 = StringConcatenate("Arrow_", ai_16, "_", a_y_20);
if (ObjectFind(str_concat_28) == -1) ObjectCreate(str_concat_28, OBJ_LABEL, 0, 0, 0);
if (ai_24 > 0) {
ObjectSet(str_concat_28, OBJPROP_CORNER, 0);
ObjectSet(str_concat_28, OBJPROP_COLOR, DodgerBlue);
ObjectSet(str_concat_28, OBJPROP_XDISTANCE, ai_16 + f0_8(ai_24));
ObjectSet(str_concat_28, OBJPROP_YDISTANCE, a_y_20 - 9);
ObjectSetText(str_concat_28, "q", 12, "Wingdings 3", DodgerBlue);
return;
}
ObjectSet(str_concat_28, OBJPROP_CORNER, 0);
ObjectSet(str_concat_28, OBJPROP_COLOR, DodgerBlue);
ObjectSet(str_concat_28, OBJPROP_XDISTANCE, ai_16 + 54);
ObjectSet(str_concat_28, OBJPROP_YDISTANCE, a_y_20 - 7);
ObjectSetText(str_concat_28, "N/A", 7, "Arial", DodgerBlue);
}
void f0_2(string as_0) {
int lia_20[];
int li_12 = 0;
int count_16 = 0;
for (int li_8 = 0; li_8 < StringLen(as_0); li_8++) {
if (StringGetChar(as_0, li_8) == ',') {
count_16++;
if (count_16 >= 0) {
Показано первые 50% кода (символов: 14551)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.