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

2 - Price Action

ou forex mastery price action.mq5
Вы автор или правообладатель?

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

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

О программе

Это пользовательский индикатор для платформы MetaTrader 4, отображающий аналитические элементы на отдельном окне графика. Индиикатор использует три стохастика с различными периодами для построения вспомогательных линий, маркеров цены и фигур «sling shot» (линий тренда, треугольников и прямоугольников). Также он определяет цвет фона графика через системные вызовы Windows и рисует горизонтальные уровни на ключевых значениях. Перед использованием требуется разрешить DLL и подключение к консоли загрузчика OU_Forex.

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

НастройкаОписание
ZoomLevel1to5 Масштаб — Целочисленный параметр от 1 до 5, задающий коэффициент масштабирования толщины и размера графических объектов на графике.
ShowSS Показать фигуры sling shot — Переключатель, управляющий отображением графических фигур (линий тренда, треугольников и прямоугольников) на графике.
FillSSArea Заливка области sling shot — Переключатель, определяющий, будут ли фигуры sling shot отрисовываться с заполненной треугольной областью или только линиями.
ShowPriceMarker Показать маркер цены — Переключатель, управляющий отображением маркера текущей цены в виде вертикальной линии и индикатора направления.
Получить полный код

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

/*
   Generated by EX4-TO-MQ4 decompiler V4.0.224.1 []
   Website: 
   E-mail : p******m*@gmail.com
*/

#property indicator_separate_window
#property indicator_minimum 0.0
#property indicator_maximum 100.0
#property indicator_buffers 3
#property indicator_color1 Red
#property indicator_color2 Blue
#property indicator_color3 Green

#include "..\include\OU_Forex.mqh"

#import "user32.dll"
   int GetDC(int a0);
   int ReleaseDC(int a0, int a1);
#import "gdi32.dll"
   int GetPixel(int a0, int a1, int a2);
/*
#import "OU_Loader.dll"
   bool OU_called();
   bool LoadConsole();
   bool RunAllowed();
   bool VersionAllowed(string a0, string a1);
   bool PairAllowed(string a0, string a1);
   bool FeatureAllowed(string a0, string a1);
   int GetUserLevel(string a0);
*/
#import

string gs_76;
bool gi_unused_84 = FALSE;
string gs_88 = "2.00MT";
string gs_unused_96 = "2.00FT";
string gs_104 = "";
bool gi_unused_112 = FALSE;
string gsa_116[] = {"EURUSD", "GBPUSD", "USDCHF", "USDJPY", "USDCAD", "AUDUSD", "NZDUSD", "EURJPY", "EURGBP", "AUDJPY", "GBPJPY", "EURAUD", "EURCAD", "CHFJPY", "AUDCAD", "GBPCHF", "EURCHF", "NZDJPY", "CADJPY", "AUDNZD", "GBPAUD", "GBPCAD"};
int gi_120 = -1;
string gs_124 = "";
extern int ZoomLevel1to5 = 2;
extern bool ShowSS = TRUE;
extern bool FillSSArea = TRUE;
extern bool ShowPriceMarker = TRUE;
bool gi_unused_148 = TRUE;
int gi_unused_152 = 5;
int gi_unused_156 = 85;
int gi_unused_160 = 15;
int g_period_164 = 8;
int g_period_168 = 3;
int g_slowing_172 = 3;
int g_period_176 = 16;
int g_period_180 = 3;
int g_slowing_184 = 3;
int g_period_188 = 34;
int g_period_192 = 3;
int g_slowing_196 = 3;
double gd_unused_200 = 70.0;
double gd_unused_208 = 65.0;
double gd_unused_216 = 51.0;
double gd_unused_224 = 30.0;
double gd_unused_232 = 35.0;
double gd_unused_240 = 49.0;
string gs_248;
string gs_256;
string gs_264;
double g_ibuf_272[];
double g_ibuf_276[];
double g_ibuf_280[];
string gs_dummy_284;
string gs_292;
string gs_300 = "2 - Price Action";
bool gi_308 = FALSE;
int gi_312 = 8;
int gi_316 = 0;
string gs_oufm_pa_320 = "OUFM PA";

int chartcolor() {
   int li_0 = WindowHandle(Symbol(), Period());
   int li_4 = GetDC(li_0);
   int li_ret_8 = GetPixel(li_4, 1, 2);
   ReleaseDC(li_0, li_4);
   return (li_ret_8);
}

bool OU_loader_call() {
   string ls_unused_0;
   if (!OU_called()) LoadConsole();
   return (OU_called());
}

int DrawAllowed(string &as_0, string as_8) {
   as_8 = BaseSymbol(as_8);
   if (!OU_loader_call()) {
      as_0 = "failure loading console.";
      return (0);
   }
   if (!RunAllowed()) {
      as_0 = "waiting for console.";
      return (0);
   }
   if (!VersionAllowed(gs_76, gs_104)) {
      as_0 = "version " + gs_104 + " outdated." + VersionAllowed(gs_76, gs_104) + 0 + 1;
      return (0);
   }
   if (as_8 == "Scanner.") return (1);
   if (!PairAllowed(gs_76, as_8)) {
      if (validpair(gs_76, as_8)) as_0 = "unsubscribed pair.";
      else as_0 = "unsupported pair.";
      return (0);
   }
   return (1);
}

int superuser() {
   return (GetUserLevel(gs_76) == 3 || GetUserLevel(gs_76) == 5);
}

int SlingShotsAllowed() {
   return (FeatureAllowed(gs_76, "SS") || LTCAllowed() || superuser());
}

int LTCAllowed() {
   return (FeatureAllowed(gs_76, "LTC") || superuser());
}

bool validpair(string as_0, string as_8) {
   string ls_16 = pairtype(as_8);
   if (ls_16 == "4" || ls_16 == "10") return (TRUE);
   if (as_0 == "OUFT" && ls_16 == "17" || ls_16 == "22") return (TRUE);
   return (FALSE);
}

string pairtype(string as_0) {
   string ls_8 = "USDIX,EURUSD,GBPUSD,USDCHF,USDJPY";
   string ls_16 = "EURUSD,GBPUSD,USDCHF,USDJPY,USDCAD,AUDUSD,NZDUSD,EURJPY,EURGBP,AUDJPY";
   string ls_24 = "EURUSD,GBPUSD,USDCHF,USDJPY,USDCAD,AUDUSD,NZDUSD,EURJPY,EURGBP,AUDJPY,GBPJPY,EURAUD,EURCAD,CHFJPY,AUDCAD,GBPCHF,EURCHF";
   string ls_32 = "EURUSD,GBPUSD,USDCHF,USDJPY,USDCAD,AUDUSD,NZDUSD,EURJPY,EURGBP,AUDJPY,GBPJPY,EURAUD,EURCAD,CHFJPY,AUDCAD,GBPCHF,EURCHF,NZDJPY,CADJPY,AUDNZD,GBPAUD,GBPCAD";
   as_0 = StringSubstr(as_0, 0, 6);
   if (StringFind(ls_8, as_0) > -1) as_0 = "4";
   else {
      if (StringFind(ls_16, as_0) > -1) as_0 = "10";
      else {
         if (StringFind(ls_24, as_0) > -1) as_0 = "17";
         else {
            if (StringFind(ls_32, as_0) > -1) as_0 = "22";
            else as_0 = "1000";
         }
      }
   }
   return (as_0);
}

string BaseSymbol(string as_0) {
   if (gi_120 == -1) SetSymbolSuffixLength();
   if (as_0 == "Scanner.") return (as_0);
   if (gi_120 == 0 || StringSubstr(as_0, StringLen(as_0) - gi_120) != gs_124) return (as_0);
   return (StringSubstr(as_0, 0, StringLen(as_0) - gi_120));
}

void SetSymbolSuffixLength() {
   string lsa_0[1000];
   SymbolsList(lsa_0, 0);
   for (int l_index_4 = 0; StringSubstr(lsa_0[l_index_4], 0, 6) != "EURUSD" && l_index_4 < 1000; l_index_4++) {
   }
   gi_120 = StringLen(lsa_0[l_index_4]) - 6;
   gs_124 = StringSubstr(lsa_0[l_index_4], 6);
}

int SymbolsList(string &asa_0[1000], bool ai_4) {
   string l_name_8;
   int li_16;
   int li_ret_20;
   if (ai_4) l_name_8 = "symbols.sel";
   else l_name_8 = "symbols.raw";
   int l_file_24 = FileOpenHistory(l_name_8, FILE_BIN|FILE_READ);
   if (l_file_24 < 0) {
      Print("Symbol open failure.");
      return (-1);
   }
   if (ai_4) {
      li_ret_20 = (FileSize(l_file_24) - 4) / 128;
      li_16 = 116;
   } else {
      li_ret_20 = FileSize(l_file_24) / 1936;
      li_16 = 1924;
   }
   ArrayResize(asa_0, li_ret_20);
   if (ai_4) FileSeek(l_file_24, 4, SEEK_SET);
   for (int l_index_28 = 0; l_index_28 < li_ret_20; l_index_28++) {
      asa_0[l_index_28] = FileReadString(l_file_24, 12);
      FileSeek(l_file_24, li_16, SEEK_CUR);
   }
   FileClose(l_file_24);
   return (li_ret_20);
}

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

int deinit() {
   deleteobjects();
   return (0);
}

int start() {
      // код доступен только после оплаты
   }
   int li_12;
   double ld_44;
   int l_ind_counted_0 = IndicatorCounted();
   setmidlinecolor();
   string ls_4 = "";
   if (!DrawAllowed(ls_4, Symbol())) {
      gs_292 = gs_300 + " - " + ls_4;
      IndicatorShortName(gs_292);
      deleteobjects();
      gi_308 = FALSE;
      return (-1);
   }
   if (!gi_308) {
      gs_292 = gs_300;
      IndicatorShortName(gs_300);
   }
   if (!gi_308) {
      l_ind_counted_0 = 0;
      createobjects();
      gi_308 = TRUE;
      li_12 = Bars;
   } else {
      if (l_ind_counted_0 < 0) return (-1);
      li_12 = Bars - l_ind_counted_0;
   }
   double l_istochastic_16 = iStochastic(Symbol(), Period(), g_period_164, g_period_168, g_slowing_172, MODE_SMA, 0, MODE_MAIN, 0);
   double l_istochastic_24 = iStochastic(Symbol(), Period(), g_period_176, g_period_180, g_slowing_184, MODE_SMA, 0, MODE_MAIN, 0);
   double l_istochastic_32 = iStochastic(Symbol(), 

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

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

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

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

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

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

Стоимость полного кода
1 197,80₽ ≈ $14.64