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

My4xScalper GOLD

my4xscalper_gold~.mq4

Похожие материалы по тегам

ares_indicator.pineTradingView · 1 общих теговgold_trend_revers.mq5MQL5 / MetaTrader 5 · 1 общих тегов!!!-mt4 x-xardg-rsi.mq5MQL5 / MetaTrader 5 · 1 общих тегов! cycle-identifier.mq5MQL5 / MetaTrader 5 · 1 общих тегов!!! rsi ma simple+arrows 1.2 (mtf).mq5MQL5 / MetaTrader 5 · 1 общих теговprecisionflowea.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

My4xScalper GOLD — торговый советник для MetaTrader 4, предназначенный для автоматической торговли на рынке Forex. Программа анализирует ценовые данные с использованием скользящих средних (SMA), индикаторов RVI, RSI и Momentum, а затем открывает позиции BUY и SELL на основании полученных сигналов.

Советник поддерживает фильтрацию торговых дней (понедельник–пятница) и временные интервалы для паузы в торговле. Доступны настройки максимального количества одновременных позиций в обе стороны, размера лота и минимальной прибыли по сделке.

В продукт включена функция дополнительных позиций, позволяющая открывать дополнительные ордера при определённых условиях. Реализованы механизмы закрытия позиций на основе текущих значений индикаторов, а также управление стоп-лоссом и тейк-профитом. Советник работает на платформе MetaTrader 4 и использует стандартные торговые функции для открытия и закрытия ордеров.

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

НастройкаОписание
_______________ Заголовок — Заголовочный текст, отображаемый в комментариях советника.
ID_STRATEGY Идентификатор стратегии — Идентификатор стратегии, используемый в качестве магического номера для ордеров.
MIN_PROFIT Минимальная прибыль — Минимальный порог прибыли, используемый при расчёте параметров ордеров.
def_lots Размер лота по умолчанию — Размер лота по умолчанию для открытия позиций.
Max_Num_BUY Максимум покупок — Максимальное количество одновременных покупательских позиций.
Max_Num_SELL Максимум продаж — Максимальное количество одновременных продавательских позиций.
EXPERT_LEVEL Уровень эксперта — Уровень советника, влияющий на параметры расчёта индикаторов и условия открытия позиций.
ADDITIONAL_POSITION Дополнительная позиция — Включает или отключает функцию открытия дополнительных позиций при выполнении определённых условий.
ADD_POSITION_PROFIT Прибыль дополнительной позиции — Задаёт величину дополнительного тикового шага для фиксации прибыли при открытии дополнительных позиций.
ADD_POSITION_SL Стоп-лосс дополнительной позиции — Задаёт величину тикового шага для стоп-лосса дополнительных позиций.
BEGIN_BREAK_HOUR Начало паузы (час) — Начало часового интервала торговой паузы (в часах).
END_BREAK_HOUR Окончание паузы (час) — Окончание первого часового интервала торговой паузы (в часах).
BEGIN_BREAK_HOUR_2 Начало второй паузы (час) — Начало второго часового интервала торговой паузы (в часах).
END_BREAK_HOUR_2 Окончание второй паузы (час) — Окончание второго часового интервала торговой паузы (в часах).
STOP_loss_buy_def Стоп-лосс покупки по умолчанию — Значение стоп-лосса по умолчанию для покупательских позиций (в тиках).
STOP_profit_buy_def Тейк-профит покупки по умолчанию — Значение тейк-профита по умолчанию для покупательских позиций.
STOP_loss_sell_def Стоп-лосс продажи по умолчанию — Значение стоп-лосса по умолчанию для продавательских позиций (в тиках).
STOP_profit_sell_def Тейк-профит продажи по умолчанию — Значение тейк-профита по умолчанию для продавательских позиций.
Monday Торговля в понедельник — Включает или отключает торговлю в понедельник.
Tuesday Торговля во вторник — Включает или отключает торговлю во вторник.
Wednesday Торговля в среду — Включает или отключает торговлю в среду.
Thursday Торговля в четверг — Включает или отключает торговлю в четверг.
Friday Торговля в пятницу — Включает или отключает торговлю в пятницу.
Получить полный код

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

/*
   G e n e r a t e d  by ex4-to-mq4 decompiler FREEWARE 4.0.509.5
   Website:   .m EtAQ UOt ES . n Et
   E-mail : s UPP o R T@ M eta q u oT e s . N e t
*/

int G_magic_76;
extern string _______________ = "-------------- My4xScalper EUR/USD M5 ver 1.1 --------------";
int Gi_88 = 0;
string Gs_92 = "Your Registered Login";
string Gs_100 = "Your Password here";
extern int ID_STRATEGY = 24816;
extern double MIN_PROFIT = 2.0;
extern double def_lots = 0.01;
extern int Max_Num_BUY = 2;
extern int Max_Num_SELL = 2;
extern int EXPERT_LEVEL = 1;
extern bool ADDITIONAL_POSITION = TRUE;
extern int ADD_POSITION_PROFIT = 5;
extern int ADD_POSITION_SL = 0;
int Gi_152 = 1;
extern int BEGIN_BREAK_HOUR = 6;
extern int END_BREAK_HOUR = 9;
extern int BEGIN_BREAK_HOUR_2 = 16;
extern int END_BREAK_HOUR_2 = 18;
extern int STOP_loss_buy_def = 0;
extern double STOP_profit_buy_def = 3.0;
extern int STOP_loss_sell_def = 0;
extern double STOP_profit_sell_def = 3.0;
extern bool Monday = TRUE;
extern bool Tuesday = TRUE;
extern bool Wednesday = TRUE;
extern bool Thursday = TRUE;
extern bool Friday = FALSE;
double Gd_unused_216 = 0.1;
double G_period_224 = 12.0;
double Gd_232 = 6.0;
int Gi_240 = 0;
double Gd_244 = 0.0;
int Gi_252 = 0;
bool Gi_256 = FALSE;
int Gi_260 = 0;
bool Gi_264 = FALSE;
double Gd_268 = 0.0;
double Gd_276 = 0.0;
int G_bars_284 = 0;
int G_bars_288 = 0;
bool G_bars_292 = FALSE;
bool G_bars_296 = FALSE;
bool Gi_300 = FALSE;
bool Gi_304 = FALSE;
bool Gi_308 = FALSE;
int Gi_312 = 0;
int Gi_316 = 0;
string Gs_320 = "";
int Gi_328;
int Gi_332 = 1;
double Gd_336 = 0.0;
double G_order_open_price_344 = 0.0;
double Gd_352 = 0.0;
double G_order_open_price_360 = 0.0;
double Gd_368 = 0.0;
double Gd_376 = 0.0;
double Gd_384 = 0.0;
string Gs_392 = "12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234";
bool Gi_400 = FALSE;
int Gi_404 = 1;
bool Gi_408 = TRUE;
int G_acc_number_412 = 0;
bool G_bool_416 = FALSE;

int f0_6(int A_cmd_0) {
   int count_4 = 0;
   for (int pos_8 = 0; pos_8 < OrdersTotal(); pos_8++) {
      if (OrderSelect(pos_8, SELECT_BY_POS, MODE_TRADES) == FALSE) break;
      if (OrderSymbol() == Symbol() && OrderMagicNumber() == G_magic_76)
         if (OrderType() == A_cmd_0) count_4++;
   }
   return (count_4);
}

int f0_2(int A_cmd_0) {
   int count_4 = 0;
   for (int pos_8 = 0; pos_8 < OrdersTotal(); pos_8++) {
      if (OrderSelect(pos_8, SELECT_BY_POS, MODE_TRADES) == FALSE) break;
      if (OrderSymbol() == Symbol() && OrderMagicNumber() == G_magic_76 + 1)
         if (OrderType() == A_cmd_0) count_4++;
   }
   return (count_4);
}

double f0_18() {
   return (def_lots);
}

void f0_0() {
   string magic_0;
   int ticket_8;
   int ticket_12;
   bool Li_16;
   bool Li_20;
   double ima_24;
   double ima_32;
   double irvi_40;
   double ima_48;
   double irsi_56;
   double imomentum_64;
   double price_72;
   double price_80;
   int Li_88;
   int error_92;
   int ticket_96;
   double price_100;
   double price_108;
   int Li_116;
   int error_120;
   int ticket_124;
   if (TimeDayOfWeek(TimeCurrent()) != 0) {
      if (TimeDayOfWeek(TimeCurrent()) == 1 && Monday == FALSE) return;
      if (TimeDayOfWeek(TimeCurrent()) == 2 && Tuesday == FALSE) return;
      if (TimeDayOfWeek(TimeCurrent()) == 3 && Wednesday == FALSE) return;
      if (TimeDayOfWeek(TimeCurrent()) == 4 && Thursday == FALSE) return;
      if (TimeDayOfWeek(TimeCurrent()) == 5 && Friday == FALSE) return;
      if (TimeDayOfWeek(TimeCurrent()) == 1 && TimeHour(TimeCurrent()) == 0 && TimeMinute(TimeCurrent()) >= 0 && TimeMinute(TimeCurrent()) <= 3) {
         G_bars_296 = FALSE;
         G_bars_292 = FALSE;
      }
      if (Gi_328 < Gi_152) {
         if (TimeHour(TimeCurrent()) < Gi_152) return;
         Gi_328 = Gi_152;
      }
      if (TimeHour(TimeCurrent()) >= BEGIN_BREAK_HOUR && TimeHour(TimeCurrent()) < END_BREAK_HOUR) return;
      if (TimeHour(TimeCurrent()) >= BEGIN_BREAK_HOUR_2 && TimeHour(TimeCurrent()) < END_BREAK_HOUR_2) return;
      magic_0 = G_magic_76;
      ticket_8 = 0;
      ticket_12 = 0;
      Li_16 = FALSE;
      Li_20 = FALSE;
      Gi_304 = TRUE;
      Gi_300 = TRUE;
      if (f0_6(OP_BUY) > 0) {
         Gi_300 = FALSE;
         Gi_304 = TRUE;
      }
      if (f0_6(OP_SELL) > 0) {
         Gi_304 = FALSE;
         Gi_300 = TRUE;
      }
      ima_24 = iMA(NULL, 0, 26, 0, MODE_SMA, PRICE_CLOSE, 0);
      ima_32 = iMA(NULL, 0, 5, 0, MODE_SMA, PRICE_CLOSE, 0);
      irvi_40 = iRVI(NULL, 0, 6, MODE_MAIN, 0);
      G_period_224 = 12;
      Gd_232 = 6;
      if (EXPERT_LEVEL == 2) Gd_232 = 3;
      ima_48 = iMA(NULL, 0, G_period_224, Gd_232, MODE_SMA, PRICE_CLOSE, 0);
      irsi_56 = iRSI(NULL, 0, 5, PRICE_CLOSE, 0);
      imomentum_64 = iMomentum(NULL, 0, 12, PRICE_CLOSE, 0);
      if (ADDITIONAL_POSITION == TRUE) f0_12();
      if (f0_11(ima_24, ima_32, irvi_40, ima_48, irsi_56, Gi_332, Point, Open[0], Close[0], Open[1], Close[1], Gs_392, G_acc_number_412, Gi_88, Gs_92, Gs_100, Gi_404, G_bool_416,
         AccountServer()) == 1) {
         Li_16 = f0_6(OP_SELL);
         Gi_316 = Li_16;
         Gd_276 = f0_14(ima_24, ima_32, irvi_40, Li_16, Bars, G_bars_284, Gd_276, Bid, Gi_332, Close[1], Point, Gs_392, G_acc_number_412, Gi_88, Gs_92, Gs_100, Gi_404, G_bool_416);
         if (f0_16(EXPERT_LEVEL, irvi_40, ima_32, Close[0], ima_48, Li_16, Max_Num_SELL, Close[1], Bid, Gd_276, Bars, G_bars_296, irsi_56, imomentum_64, Gi_300, G_bars_284,
            G_bars_288, Gs_392, G_acc_number_412, Gi_88, Gs_92, Gs_100, Gi_404) == 1) {
            price_72 = 0;
            price_80 = 0;
            RefreshRates();
            if (Gi_260 == 0) price_72 = 0;
            else price_72 = Bid + Gi_260 * Point;
            price_72 = NormalizeDouble(price_72, Digits);
            if (Gi_264 == FALSE) price_80 = 0;
            else price_80 = Bid - Gi_264 * Point;
            price_80 = NormalizeDouble(price_80, Digits);
            Li_88 = f0_1(Max_Num_SELL);
            for (int count_128 = 0; count_128 < Li_88; count_128++) {
               if (f0_6(OP_SELL) < Li_88) {
                  ticket_8 = OrderSend(Symbol(), OP_SELL, f0_18(), Bid, 5, price_72, price_80, magic_0, G_magic_76, 0, Red);
                  if (ticket_8 < 0) {
                     Print("Order [Sell] Error: " + GetLastError() + " Send Again");
                     Sleep(200);
                     RefreshRates();
                     ticket_12 = OrderSend(Symbol(), OP_SELL, f0_18(), Bid, 5, price_72, price_80, magic_0, G_magic_76, 0, Red);
                     if (ticket_12 < 0) {
                        error_92 = GetLastError();
                        Print("Again Order [Sell] Error: " + error_92);
                        Print("Open ECN Order [Sell]");
                        if (error_92 == 130/* INVALID_STOPS */) {
                           Sleep(100);
                           RefreshRates();
                           ticket_96 = OrderSend(Symbol(), OP_SELL, f0_18(), Bid, 5, 0, 0, magic_0, G_magic_76, 0, Red);
                           if (ticket_96 > 0) {
                              Sleep(200);
                              if (OrderModify(ticket_96, OrderOpenPrice(), price_72, price_80, 0, Red)) {
                                 Print("Order [Sell] modify: stop loss and take profit");
                                 Gi_304 = FALSE;
                                 G_bars_296 = Bars;
                                 Gd_336 = OrderTakeProfit();
                                 G_order_open_price_344 = OrderOpenPrice();
                                 f0_4();
                              } else Print("Order [Sell] " + ticket_96 + " modify Error: " + GetLastError());
                           } else Print("Order [Sell] ECN Open Error: " + GetLastError());
                        }
                     } else {
                        Gi_304 = FALSE;
                        G_bars_296 = Bars;
                        Gd_336 = OrderTakeProfit();
                        G_order_open_price_344 = OrderOpenPrice();
                        f0_4();
                     }
                  } else {
                     Gi_304 = FALSE;
                     G_bars_296 = Bars;
                     Gd_336 = OrderTakeProfit();
                     G_order_open_price_344 = OrderOpenPrice();
                     f0_4();
                  }
                  RefreshRates();
               }
            }
            return;
         }
      }
      if (f0_9(ima_24, ima_32, irvi_40, ima_48, imomentum_64, Gi_332, Point, Open[0], Close[0], Open[1], Close[1], Gs_392, G_acc_number_412, Gi_88, Gs_92, Gs_100, Gi_404,
         G_bool_416, AccountServer()) == 1) {
         Li_20 = f0_6(OP_BUY);
         Gi_312 = Li_20;
         Gd_268 = f0_13(ima_24, ima_32, irvi_40, Li_20, Bars, G_bars_288, Gd_268, Ask, Gi_332, Close[1], Point, Gs_392, G_acc_number_412, Gi_88, Gs_92, Gs_100, Gi_404, G_bool_416);
         if (f0_19(EXPERT_LEVEL, irvi_40, ima_32, Close[0], ima_48, Li_20, Max_Num_BUY, Close[1], Ask, Gd_268, Bars, G_bars_292, irsi_56, imomentum_64, Gi_304, G_bars_288,
            G_bars_284, Gs_392, G_acc_number_412, Gi_88, Gs_92, Gs_100, Gi_404) == 1) {
            price_100 = 0;
            price_108 = 0;
            RefreshRates();
            if (Gi_252 == 0) price_100 = 0;
            else price_100 = Ask - Gi_252 * Point;
            price_100 = NormalizeDouble(price_100, Digits);
            if (Gi_256 == FALSE) price_108 = 0;
            else price_108 = Ask + Gi_256 * Point;
            price_108 = NormalizeDouble(price_108, Digits);
            Li_116 = f0_5(Max_Num_BUY);
            for (int count_132 = 0; count_132 < Li_116; count_132++) {
               if (f0_6(OP_BUY) < Li_116) {
                  ticket_8 = OrderSend(Symbol(), OP_BUY, f0_18(), Ask, 5, price_100, price_108, magic_0, G_magic_76, 0, Blue);
                  if (ticket_8 < 0) {
                     Print("Order [Buy] Error: " + GetLastError() + " Send Again");
                     Sleep(200);
                     RefreshRates();
                     ticket_12 = OrderSend(Symbol(), OP_BUY, f0_18(), Ask, 5, price_100, price_108, magic_0, G_magic_76, 0, Blue);
                     if (ticket_12 < 0) {
                        error_120 = GetLastError();
                        Print("Again Order [Buy] Error: " + error_120);
                        Print("Open ECN Order [Buy]");
                        if (error_120 == 130/* INVALID_STOPS */) {
                           Sleep(100);
                           RefreshRates();
                           ticket_124 = OrderSend(Symbol(), OP_BUY, f0_18(), Ask, 5, 0, 0, magic_0, G_magic_76, 0, Blue);
                           if (ticket_124 > 0) {
                              Sleep(200);
                              if (OrderModify(ticket_124, OrderOpenPrice(), price_100, price_108, 0, Red)) {
                                 Print("Order [Buy] modify: set stop loss and take profit");
                                 Gi_300 = FALSE;
                                 G_bars_292 = Bars;
                                 Gd_352 = OrderTakeProfit();
                                 G_order_open_price_360 = OrderOpenPrice();
                                 f0_4();
                              } else Print("Order [Buy] " + ticket_124 + " modify Error: " + GetLastError());
                           } else Print("Order [Buy] ECN open Error: " + GetLastError());
                        }
                     } else {
                        Gi_300 = FALSE;
                        G_bars_292 = Bars;
                        Gd_352 = OrderTakeProfit();
                        G_order_open_price_360 = OrderOpenPrice();
                        f0_4();
                     }
                  } else {
                     Gi_300 = FALSE;
                     G_bars_292 = Bars;
                     Gd_352 = OrderTakeProfit();
                     G_order_open_price_360 = OrderOpenPrice();
                     f0_4();
                  }
                  RefreshRates();
               }
            }
         }
      }
   }
}

void f0_7() {
   double Ld_0;
   double Ld_8;
   double order_open_price_16;
   int is_closed_24;
   double order_open_price_28;
   int is_closed_36;
   double Ld_40 = Gd_244 * Point;
   Ld_40 = NormalizeDouble(Ld_40, Digits);
   double ima_48 = iMA(NULL, 0, 26, 0, MODE_SMA, PRICE_CLOSE, 0);
   double ima_56 = iMA(NULL, 0, 5, 0, MODE_SMA, PRICE_CLOSE, 0);
   double irvi_64 = iRVI(NULL, 0, 6, MODE_MAIN, 0);
   int Li_72 = f0_6(OP_SELL);
   int Li_76 = f0_6(OP_BUY);
   if (Li_72 > 0 && Li_72 % 2 == 1) {
      Ld_0 = f0_10(OP_SELL, Ld_40);
      if (Ld_0 > 0.0) {
         Gd_276 = Ld_0;
         G_bars_284 = Bars;
      }
   }
   if (Li_76 > 0 && Li_76 % 2 == 1) {
      Ld_8 = f0_10(OP_BUY, Ld_40);
      if (Ld_8 > 0.0) {
         Gd_268 = Ld_8;
         G_bars_288 = Bars;
      }
   }
   for (int pos_80 = 0; pos_80 < OrdersTotal(); pos_80++) {
      if (OrderSelect(pos_80, SELECT_BY_POS, MODE_TRADES) == FALSE) break;
      if (OrderSymbol() == Symbol()) {
         if (OrderMagicNumber() != G_magic_76 && OrderMagicNumber() != G_magic_76 + 1) continue;
         if (OrderType() != OP_BUY && OrderType() != OP_SELL) continue;
         if (OrderType() == OP_SELL) {
            order_open_price_16 = OrderOpenPrice();
            if (f0_8(order_open_price_16, Close[0], Ask, Ld_40, OrderProfit(), Gi_240, ima_48, ima_56, irvi_64) == 1 && OrderMagicNumber() == G_magic_76) {
               RefreshRates();
               if (OrderCloseTime() > 0) continue;
               is_closed_24 = OrderClose(OrderTicket(), OrderLots(), Ask, 3, White);
               if (is_closed_24

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

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

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

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

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

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

Стоимость полного кода
1 896,20₽ ≈ $23.18