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

$jackpot$.mq4

Вы автор или правообладатель?

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

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

О программе

Данный файл представляет собой торговый советник для платформы MetaTrader 4, написанный на языке MQL4. Советник отображает на графике информацию о балансе, эквити, текущей прибыли и количестве открытых позиций (BUY, SELL, BUY STOP, SELL STOP), а также определяет тип последней операции.

Робот поддерживает два режима работы: автоматический (OP_AUTO) и ручной. В автоматическом режиме он открывает начальные позиции BUY или SELL в зависимости от настройки OP_AWAL, а при наличии убыточных позиций — выставляет противоположные отложенные ордера (SELLSTOP или BUYSTOP) с увеличением лотов по множителю.

Советник включает функцию закрытия всех позиций при достижении заданной прибыли в денежном выражении (CLOSE_BY_TP_IN_MONEY / TP_IN_MONEY), а также возможность модификации стоп-лосса на основе текущего спреда. Максимальное количество одновременных ордеров ограничивается параметром MAX_OP.

В коде реализованы вспомогательные функции для закрытия всех открытых позиций, удаления отложенных ордеров и подсчёта активных ордеров. Все операции фильтруются по символу торгового инструмента и магическому номеру MagicNumber.

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

НастройкаОписание
CLOSE_BY_TP_IN_MONEY Переключатель: при значении TRUE советник автоматически закрывает все открытые позиции, когда совокупная прибыль достигает порога, заданного в TP_IN_MONEY.
TP_IN_MONEY Порог прибыли в денежном выражении (в валюте счёта). При достижении этой суммы советник может закрыть все позиции, если CLOSE_BY_TP_IN_MONEY включён.
note2 Текстовый параметр, содержащий подсказку о значениях OP_AWAL: 1 означает BUY, 2 — SELL.
OP_AWAL Задаёт тип начальной позиции: 1 — BUY, 2 — SELL. Используется при первом открытии позиции в ручном или автоматическом режиме.
OP_AUTO Переключатель автоматического режима. При TRUE советник автоматически открывает начальные позиции и управляет отложенными ордерами. При FALSE начальная позиция открывается вручную.
lots Размер лота для открытия позиций. Используется как базовый объём для начальных и последующих ордеров (с учётом множителя multiplier).
RANGE Расстояние в пунктах для выставления отложенных ордеров (SELLSTOP или BUYSTOP) относительно цены последней открытой позиции.
multiplier Множитель для увеличения размера лота при открытии отложенных ордеров (SELLSTOP/BUYSTOP). Например, значение 2.0 удваивает лот.
MAX_OP Максимальное допустимое количество одновременных открытых ордеров (BUY и SELL). При достижении этого лимита открытие новых позиций блокируется.
MagicNumber Магический номер для фильтрации ордеров. Советник обрабатывает только те позиции и ордера, у которых MagicNumber совпадает с заданным значением.
Slippage Допустимое проскальзывание в пунктах при открытии и модификации ордеров.
Получить полный код

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

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

extern bool CLOSE_BY_TP_IN_MONEY = TRUE;
extern double TP_IN_MONEY = 1.0;
extern string note2 = "OP AWAL 1 = BUY, 2 = SELL";
extern int OP_AWAL = 1;
extern bool OP_AUTO = TRUE;
extern double lots = 0.01;
double gd_112 = 0.0;
extern int RANGE = 20;
extern double multiplier = 2.0;
extern int MAX_OP = 7;
bool gi_136 = FALSE;
bool gi_140 = FALSE;
bool gi_144 = TRUE;
extern int MagicNumber = 12345;
extern int Slippage = 3;
int g_pos_156;
int g_index_160;
int g_index_164;
int g_index_168;
int g_index_172;
int g_index_176;
int g_index_180;
int g_count_184;
int g_count_188;
int g_count_192;
int g_count_196;
int g_count_200;
int g_count_204;
double gda_208[99];
double gda_212[99];
double gda_216[99];
double gda_220[99];
double gda_224[99];
double gda_228[99];
int gi_232 = 0;
int g_count_236 = 0;
double gd_240;
double g_pos_248;
double g_minlot_256;
int g_color_264 = Gold;
int g_color_268 = White;
int g_color_272 = Lime;
int g_color_276 = Yellow;
int g_color_280 = Silver;
bool gi_284 = TRUE;

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

int deinit() {
   ObjectDelete("Market_Price_Label");
   ObjectDelete("Market_Price_Label1");
   ObjectDelete("Market_Price_Label2");
   ObjectDelete("Market_Price_Label3");
   ObjectDelete("Market_Price_Label4");
   ObjectDelete("Market_Price_Label5");
   ObjectDelete("Market_Price_Label6");
   ObjectDelete("Market_Price_Label7");
   ObjectDelete("Market_Price_Label8");
   ObjectDelete("Market_Price_Label9");
   ObjectDelete("Market_Price_Label10");
   ObjectDelete("Market_Price_Label11");
   ObjectDelete("Market_Price_Label12");
   ObjectDelete("Market_Price_Label13");
   ObjectDelete("Market_Price_Label14");
   ObjectDelete("Market_Price_Label15");
   ObjectDelete("Market_Price_Label16");
   return (0);
}

int start() {
      // код доступен только после оплаты
   }
   double ld_88;
   double ld_96;
   double ld_104;
   double ld_112;
   g_index_176 = 0;
   g_index_160 = 0;
   g_index_164 = 0;
   g_index_168 = 0;
   g_index_172 = 0;
   g_index_180 = 0;
   g_count_184 = 0;
   g_count_196 = 0;
   g_count_188 = 0;
   g_count_192 = 0;
   g_count_204 = 0;
   g_count_200 = 0;
   for (g_pos_156 = 0; g_pos_156 < OrdersTotal(); g_pos_156++) {
      OrderSelect(g_pos_156, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;
      if (OrderType() == OP_BUY) {
         gda_208[g_index_176] = OrderOpenPrice();
         g_index_176++;
         g_count_184++;
      }
      if (OrderType() == OP_SELL) {
         gda_212[g_index_180] = OrderOpenPrice();
         g_index_180++;
         g_count_196++;
      }
      if (OrderType() == OP_BUYLIMIT) {
         gda_216[g_index_160] = OrderOpenPrice();
         g_index_160++;
         g_count_188++;
      }
      if (OrderType() == OP_SELLLIMIT) {
         gda_220[g_index_164] = OrderOpenPrice();
         g_index_164++;
         g_count_192++;
      }
      if (OrderType() == OP_SELLSTOP) {
         gda_228[g_index_168] = OrderOpenPrice();
         g_index_168++;
         g_count_204++;
      }
      if (OrderType() == OP_BUYSTOP) {
         gda_224[g_index_172] = OrderOpenPrice();
         g_index_172++;
         g_count_200++;
      }
   }
   string text_0 = "Equity : $ " + DoubleToStr(AccountEquity(), 2);
   ObjectCreate("Market_Price_Label1", OBJ_LABEL, 0, 0, 0);
   ObjectSetText("Market_Price_Label1", text_0, 9, "Arial Bold", Yellow);
   ObjectSet("Market_Price_Label1", OBJPROP_CORNER, 0);
   ObjectSet("Market_Price_Label1", OBJPROP_XDISTANCE, 220);
   ObjectSet("Market_Price_Label1", OBJPROP_YDISTANCE, 90);
   string text_8 = "Balance : $ " + DoubleToStr(AccountBalance(), 2);
   ObjectCreate("Market_Price_Label2", OBJ_LABEL, 0, 0, 0);
   ObjectSetText("Market_Price_Label2", text_8, 9, "Arial Bold", Yellow);
   ObjectSet("Market_Price_Label2", OBJPROP_CORNER, 0);
   ObjectSet("Market_Price_Label2", OBJPROP_XDISTANCE, 25);
   ObjectSet("Market_Price_Label2", OBJPROP_YDISTANCE, 90);
   string text_16 = "-----------------------------------------------------------";
   ObjectCreate("Market_Price_Label3", OBJ_LABEL, 0, 0, 0);
   ObjectSetText("Market_Price_Label3", text_16, 11, "Arial Bold", Blue);
   ObjectSet("Market_Price_Label3", OBJPROP_CORNER, 0);
   ObjectSet("Market_Price_Label3", OBJPROP_XDISTANCE, 25);
   ObjectSet("Market_Price_Label3", OBJPROP_YDISTANCE, 27);
   string text_24 = "-----------------------------------------------------------";
   ObjectCreate("Market_Price_Label4", OBJ_LABEL, 0, 0, 0);
   ObjectSetText("Market_Price_Label4", text_24, 11, "Arial Bold", Blue);
   ObjectSet("Market_Price_Label4", OBJPROP_CORNER, 0);
   ObjectSet("Market_Price_Label4", OBJPROP_XDISTANCE, 25);
   ObjectSet("Market_Price_Label4", OBJPROP_YDISTANCE, 73);
   string text_32 = "-----------------------------------------------------------";
   ObjectCreate("Market_Price_Label5", OBJ_LABEL, 0, 0, 0);
   ObjectSetText("Market_Price_Label5", text_32, 11, "Arial Bold", White);
   ObjectSet("Market_Price_Label5", OBJPROP_CORNER, 0);
   ObjectSet("Market_Price_Label5", OBJPROP_XDISTANCE, 25);
   ObjectSet("Market_Price_Label5", OBJPROP_YDISTANCE, 60);
   string text_40 = "===" + WindowExpertName() + "===";
   ObjectCreate("Market_Price_Label6", OBJ_LABEL, 0, 0, 0);
   ObjectSetText("Market_Price_Label6", text_40, 15, "Arial Black", g_color_272);
   ObjectSet("Market_Price_Label6", OBJPROP_CORNER, 0);
   ObjectSet("Market_Price_Label6", OBJPROP_XDISTANCE, 55);
   ObjectSet("Market_Price_Label6", OBJPROP_YDISTANCE, 40);
   string text_48 = "JUMLAH BUY STOP   : " + g_count_200;
   ObjectCreate("Market_Price_Label9", OBJ_LABEL, 0, 0, 0);
   ObjectSetText("Market_Price_Label9", text_48, 9, "Arial Bold", Yellow);
   ObjectSet("Market_Price_Label9", OBJPROP_CORNER, 0);
   ObjectSet("Market_Price_Label9", OBJPROP_XDISTANCE, 25);
   ObjectSet("Market_Price_Label9", OBJPROP_YDISTANCE, 125);
   string text_56 = "JUMLAH SELL STOP : " + g_count_204;
   ObjectCreate("Market_Price_Label10", OBJ_LABEL, 0, 0, 0);
   ObjectSetText("Market_Price_Label10", text_56, 9, "Arial Bold", Yellow);
   ObjectSet("Market_Price_Label10", OBJPROP_CORNER, 0);
   ObjectSet("Market_Price_Label10", OBJPROP_XDISTANCE, 25);
   ObjectSet("Market_Price_Label10", OBJPROP_YDISTANCE, 145);
   string text_64 = "JUMLAH BUY   : " + g_count_184;
   ObjectCreate("Market_Price_Label11", OBJ_LABEL, 0, 0, 0);
   ObjectSetText("Market_Price_Label11", text_64, 9, "Arial Bold", Yellow);
   ObjectSet("Market_Price_Label11", OBJPROP_CORNER, 0);
   ObjectSet("Market_Price_Label11", OBJPROP_XDISTANCE, 200);
   ObjectSet("Market_Price_Label11", OBJPROP_YDISTANCE, 125);
   string text_72 = "JUMLAH SELL : " + g_count_196;
   ObjectCreate("Market_Price_Label12", OBJ_LABEL, 0, 0, 0);
   ObjectSetText("Market_Price_Label12", text_72, 9, "Arial Bold", Yellow);
   ObjectSet("Market_Price_Label12", OBJPROP_CORNER, 0);
   ObjectSet("Market_Price_Label12", OBJPROP_XDISTANCE, 200);
   ObjectSet("Market_Price_Label12", OBJPROP_YDISTANCE, 145);
   if (iOpen(Symbol(), 0, 0) > iOpen(Symbol(), 0, 1)) g_color_272 = g_color_264;
   if (iOpen(Symbol(), 0, 0) < iOpen(Symbol(), 0, 1)) g_color_272 = g_color_268;
   if (iClose(Symbol(), 0, 0) > iClose(Symbol(), 0, 1)) g_color_272 = g_color_276;
   if (iClose(Symbol(), 0, 0) < iClose(Symbol(), 0, 1)) g_color_272 = g_color_280;
   double ld_80 = NormalizeDouble((Ask - Bid) / gd_240, 0);
   if (gd_112 > 0.0) {
      ld_88 = Ask + gd_112 * gd_240;
      ld_96 = Bid - gd_112 * gd_240;
      ld_104 = gda_208[g_count_184 - 1] - RANGE * gd_240 - gd_112 * gd_240;
      ld_112 = gda_212[g_count_196 - 1] + RANGE * gd_240 + gd_112 * gd_240;
   }
   if (gd_112 == 0.0) {
      ld_88 = 0;
      ld_96 = 0;
   }
   double order_lots_120 = 0;
   for (g_pos_248 = 0; g_pos_248 < OrdersTotal(); g_pos_248++) {
      OrderSelect(g_pos_248, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() != Symbol() || OrderMagicNumber() != Mag

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

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

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

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

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

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

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