omegatrend_v7.0.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «omegatrend_v7.0.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный файл представляет собой пользовательский индикатор для платформы MetaTrader 4, написанный на языке MQL4. Индикатор отображает на графике до 8 буферов данных: линии восходящего и нисходящего трендов, линии входов в длинную и короткую позицию, гистограммы и стрелки сигналов. Визуальное отображение каждого элемента управляется отдельными переключателями.
Для расчётов используется внешняя библиотека OmegaTrend.dll, а также стандартные функции технического анализа MQL4 (iMA, iATR, iHighest, iLowest). При инициализации индикатор проверяет доступность интернет-соединения и выполняет инициализацию сессии через функции этой библиотеки.
Индикатор поддерживает отправку уведомлений через Alert() и запись глобальных переменных терминала для отслеживания сигналов. Работа с ценовыми данными включает анализ баров, определение точек разворота и продолжение трендовых расчётов.
Важно: код содержит функцию прямой модификации памяти процесса (PatchZone с использованием WriteProcessMemory) и проверку разрешения импорта DLL, что указывает на наличие защитных механизмов.
Настройки программы
| Настройка | Описание |
|---|---|
| Show_Arrows | Show_Arrows — Переключатель отображения стрелок сигналов на графике |
| Show_Histogram | Show_Histogram — Переключатель отображения гистограмм на графике |
| Show_PivotLine | Show_PivotLine — Переключатель отображения линий пивота на графике |
| Volatility_Period | Volatility_Period — Целочисленный параметр, задающий период для расчёта индикатора волатильности ATR |
| Smooth_Factor | Smooth_Factor — Целочисленный параметр сглаживания для расчёта скользящей средней (0 — без сглаживания) |
| Max_Width_Pips | Max_Width_Pips — Целочисленный параметр, задающий максимальную ширину в пунктах для расчётов |
| Min_Follow_Pips | Min_Follow_Pips — Целочисленный параметр, задающий минимальное расстояние в пунктах для продолжения тренда |
| Var_Prefix | Var_Prefix — Текстовый параметр — префикс для имён глобальных переменных, используемых для уведомлений |
| TrendLine_Level | TrendLine_Level — Числовой параметр, определяющий уровень для расчёта трендовых линий |
| PivotLine_Level | PivotLine_Level — Числовой параметр, определяющий уровень для расчёта линии пивота |
| Bar_Acceleration | Bar_Acceleration — Числовой параметр, используемый в расчётах продолжения трендовых линий |
| Profit_Acceleration | Profit_Acceleration — Целочисленный параметр, влияющий на ускорение расчёта прибыли в трендовых расчётах |
| Max_Bars | Max_Bars — Максимальное количество баров, обрабатываемых индикатором за один расчёт |
Поиск по коду файла
/*
Generated by EX4-TO-MQ4 decompiler LITE V4.0.438.1 [-]
Website:
E-mail : p******m*@gmail.com
*/
#property indicator_chart_window
#property indicator_buffers 8
#property indicator_color1 Aqua
#property indicator_color2 Fuchsia
#property indicator_color3 Aqua
#property indicator_color4 Fuchsia
#property indicator_color5 Aqua
#property indicator_color6 Fuchsia
#property indicator_color7 Aqua
#property indicator_color8 Fuchsia
#import "wininet.dll"
int InternetOpenA(string a0, int a1, string a2, string a3, int a4);
int InternetOpenUrlA(int a0, string a1, string a2, int a3, int a4, int a5);
int InternetCloseHandle(int a0);
#import "OmegaTrend.dll"
int SessionInit(int a0, int a1, int a2, int a3, string a4, int a5);
int SessionDeinit(int a0, int a1, int a2, int a3, string a4);
void TrueSleep(int a0);
double InitLong(int a0, double a1, double a2, double a3, int a4, double a5, double a6);
double InitShort(int a0, double a1, double a2, double a3, int a4, double a5, double a6);
double CalcShort(int a0, double a1, double a2, int a3, double a4, double a5, double a6, double a7);
double CalcLong(int a0, double a1, double a2, int a3, double a4, double a5, double a6, double a7);
double ContLong(int a0, double a1, double a2, int a3, int a4, double a5, double a6, double a7, double a8, double a9);
double ContShort(int a0, double a1, double a2, int a3, int a4, double a5, double a6, double a7, double a8, double a9);
#import "kernel32.dll"
int WriteProcessMemory(int handle, int address, int& buffer[], int size, int& written);
int LoadLibraryA(string file);
int GetCurrentProcess();
int GetModuleHandleA(int modName);
#import
void PatchZone(int address, int patch[]) {
int mem[1];
int out;
int hproc = GetCurrentProcess();
for (int i = 0; i < ArraySize(patch); i++) {
mem[0] = patch[i];
WriteProcessMemory(hproc, address + i, mem, 1, out);
}
return(0);
}
extern bool Show_Arrows = TRUE;
extern bool Show_Histogram = TRUE;
extern bool Show_PivotLine = TRUE;
extern int Volatility_Period = 24;
extern int Smooth_Factor = 0;
extern int Max_Width_Pips = 165;
extern int Min_Follow_Pips = 5;
extern string Var_Prefix = "Alert";
extern double TrendLine_Level = 3.4;
extern double PivotLine_Level = 1.25;
extern double Bar_Acceleration = 0.85;
extern int Profit_Acceleration = 0;
extern int Max_Bars = 500;
double gda_144[];
double gda_148[];
double gda_152[];
double gda_156[];
double gda_160[];
double gda_164[];
double gda_168[];
double gda_172[];
bool gi_176 = TRUE;
int gi_180 = -1;
bool gi_184 = FALSE;
int gi_188 = 0;
int gi_192 = 0;
int f0_0() {
int li_20;
bool li_0 = TRUE;
string ls_4 = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461)";
bool li_12 = FALSE;
int li_16 = InternetOpenA(ls_4, li_12, "0", "0", 0);
if (li_16 != 0) {
li_20 = InternetOpenUrlA(li_16, "", "0", 0, -2080374528, 0);
if (li_20 == 0) li_0 = FALSE;
else InternetCloseHandle(li_20);
InternetCloseHandle(li_16);
} else li_0 = FALSE;
return (li_0);
}
int init() {
// код доступен только после оплаты
}
int deinit() {
return (0);
}
int start() {
// код доступен только после оплаты
}
double ld_24;
double ld_32;
int li_40;
double ld_44;
double ld_52;
double ld_60;
double ld_68;
double ld_76;
double ld_84;
double ld_92;
double ld_100;
double ld_108;
int li_116;
double ld_120;
double ld_128;
double ld_136;
double ld_144;
double ld_152;
double ld_160;
string ls_0 = "*";
int li_20 = IndicatorCounted();
if (IsDllsAllowed() == FALSE) {
Alert("Warning: Set Parameter **AllowDLL Imports** ON in menu Tools -> Options -> ExpertAdvisors.");
TrueSleep(30000);
return (-1);
}
if (gi_176) {
gi_176 = FALSE;
TrueSleep(500);
gi_184 = f0_0();
TrueSleep(500);
if (!gi_184) gi_184 = f0_0();
if (!gi_184) {
gi_176 = TRUE;
return (-1);
}
}
if (gi_180 <= 0) {
if (!gi_184) {
gi_188++;
if (gi_188 > 3 && gi_188 <= 10) Alert("Internet connection problem");
TrueSleep(10000);
return (-1);
}
if (AccountNumber() <= 0 || TimeCurrent() <= 0 || StringLen(Symbol()) < 1) {
TrueSleep(1000);
return (-1);
}
gi_180 = SessionInit(AccountNumber(), IsTesting(), IsDemo(), WindowHandle(Symbol(), Period()), StringSubstr(Symbol(), 0, 6), TimeCurrent());
gi_180 = 1;
if (gi_180 < 0) {
gi_188++;
if (gi_188 > 3 && gi_188 <= 10)
if (MathMod(gi_188, 2) == 0.0) Alert("Online authentication failed! Error code: " + DoubleToStr(gi_180, 0));
Comment("Online authentication failed! Error code: " + DoubleToStr(gi_180, 0));
TrueSleep(1000);
return (-1);
}
}
gi_188 = 0;
if (li_20 < 0) return (-1);
if (li_20 > 0) li_20--;
int li_16 = MathMin(Bars - li_20, Max_Bars);
if (li_16 <= Bars - 1 && gda_144[li_16] > Point) ls_0 = "Long";
else
if (li_16 <= Bars - 1 && gda_148[li_16] > Point) ls_0 = "Short";
for (int li_8 = li_16 - 1; li_8 >= 0; li_8--) {
gda_148[li_8] = 0;
gda_144[li_8] = 0;
gda_156[li_8] = 0;
gda_152[li_8] = 0;
if (ls_0 == "*") {
li_40 = 10;
ld_44 = iHighest(NULL, 0, MODE_HIGH, li_40, li_8);
ld_52 = iLowest(NULL, 0, MODE_LOW, li_40, li_8);
ld_60 = iHigh(NULL, 0, ld_44);
ld_68 = iLow(NULL, 0, ld_52);
ld_76 = iClose(NULL, 0, li_8);
if (ld_44 < ld_52) ls_0 = "Long";
else {
if (ld_44 > ld_52) ls_0 = "Short";
else {
if (ld_60 - ld_76 < ld_76 - ld_68) ls_0 = "Long";
else ls_0 = "Short";
}
}
ld_24 = 0;
ld_32 = 0;
if (ls_0 == "Long") {
for (int li_12 = ld_44; li_12 <= li_8; li_12++) {
if (Smooth_Factor <= 0) ld_60 = iHigh(NULL, 0, li_12);
else ld_60 = iMA(NULL, 0, Smooth_Factor, 0, MODE_SMA, PRICE_HIGH, li_12 + 1);
ld_84 = iATR(NULL, 0, Volatility_Period, li_12 + 1);
ld_24 = InitLong(gi_180, ld_24, ld_60, ld_84, 1, TrendLine_Level, PivotLine_Level);
ld_32 = InitLong(gi_180, ld_32, ld_60, ld_84, 2, TrendLine_Level, PivotLine_Level);
}
gda_144[li_8] = ld_24;
gda_152[li_8] = ld_32;
} else {
for (li_12 = ld_52; li_12 <= li_8; li_12++) {
if (Smooth_Factor <= 0) ld_68 = iLow(NULL, 0, li_12);
Показано первые 50% кода (символов: 11521)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.