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

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

Стоимость полного кода
1 455,10₽ ≈ $17.78