$jackpot$.mq4
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «$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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.