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