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

xauusd m5 super scalper robot for mt4.mq4

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

#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 1 общих теговea robofibo source v.11.2.mq4MQL4 / MetaTrader 4 · 1 общих теговsma crossover scalper ea for mt4.mq4MQL4 / MetaTrader 4 · 1 общих теговr15 pivot points expert advisor by @fundedmillionairess.mq4MQL4 / MetaTrader 4 · 1 общих теговnewstrader.mq5MQL5 / MetaTrader 5 · 1 общих теговmm3.0_flip_codepro_v3.1_with_cooldown@lifeindreamsworld.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

Торговый советник для MetaTrader 4, предназначенный для работы с инструментом XAUUSD. Использует индикаторы Parabolic SAR и Bollinger Bands для генерации торговых сигналов и управления позициями.

Поддерживает открытие позиций BUY и SELL с возможностью трейлинга и стоп-лосса. Перед открытием позиции проверяет текущий спред и доступную маржу на счёте, а также нормализует объём лота в соответствии с ограничениями брокера.

Включает проверку версии (демонстрационная/полная) с выводом информационных предупреждений при истечении пробного периода. Все ордера маркируются магическим номером для удобной идентификации и управления.

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

НастройкаОписание
Sar_period Период SAR — Параметр периода индикатора Parabolic SAR
Step Шаг — Шаг в точках для расчёта уровней входа и управления позициями
Acceleration Ускорение — Временной порог в секундах для ускоренного закрытия отложенных ордеров
TrailingStop Трейлинг-стоп — Расстояние в точках для установки трейлинг-стопа
StopLoss Стоп-лосс — Процент убытка от баланса для установки стоп-лосса
Lots Объём лота — Размер лота для открытия позиции
Max_Spread Максимальный спред — Максимально допустимый спред в точках для входа в позицию
Magic Магический номер — Магический номер для идентификации ордеров советника
Получить полный код

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

#property version "1.00";
#property strict
#property description "Email: s*****d*@ukr.net";

extern double Sar_period = 0.56;
extern int Step = 25;
extern int Acceleration = 9;
extern int TrailingStop = 25;
extern int StopLoss = 530;
extern double Lots = 0.05;
extern int Max_Spread = 20;
extern int Magic = 1111111;

bool returned_b;
double Ind_000;
double Ind_002;
double Gd_00001;
double Gd_00002;
double Gd_00003;
bool Gb_00001;
double Gd_00004;
double Gd_00005;
bool Gb_00004;
bool Gb_00006;
string Gs_00000;
double Gd_00008;
double Gd_00009;
double Gd_0000A;
bool Gb_00008;
double Gd_0000B;
double Gd_0000C;
bool Gb_0000B;
int Gi_0000B;
double Gd_0000D;
double Gd_0000E;
double Gd_0000F;
double Gd_00010;
bool Gb_0000F;
int Gi_0000F;
double Gd_00011;
double Gd_00012;
double Gd_00013;
double Gd_00014;
bool Gb_00013;
int Gi_00013;
long returned_l;
int Gi_00015;
double Id_00030;
double Id_00038;
double Id_00040;
double Gd_00016;
double Id_00058;
int Ii_0002C;
int Ii_00018;
double Id_00060;
int Ii_00028;
int Ii_0001C;
int Gi_00016;
int Gi_000E1;
double Ind_004;
double Gd_00017;
double Id_00068;
int returned_i;
int Ii_00024;
int Gi_00017;
int Ii_00188;
bool Gb_00017;
double Id_00078;
bool Gb_0001F;
double Gd_0001F;
double Gd_00020;
int Gi_00021;
double Gd_00021;
double Gd_00022;
int Gi_00023;
int Ii_00014;
bool Gb_00023;
double Gd_00023;
int Gi_00024;
double Gd_00024;
int Gi_00025;
int Ii_00020;
double Gd_00026;
double Gd_00027;
double Gd_00028;
double Gd_00029;
bool Gb_00027;
string Is_00008;
int Ii_00184;
int Gi_0002A;
double Gd_0002A;
int Gi_00027;
int Gi_0002B;
double Gd_0002C;
double Gd_0002D;
double Gd_0002E;
double Gd_0002F;
bool Gb_0002D;
double Gd_00030;
int Gi_00031;
double Gd_00031;
double Gd_00032;
int Gi_00033;
double Gd_00033;
bool Gb_00033;
int Ii_00000;
long Gl_00033;
int Gi_00034;
bool Gb_00034;
int Gi_00035;
double Gd_00036;
double Gd_00037;
double Gd_00038;
double Gd_00039;
bool Gb_00037;
int Gi_00037;
long Gl_00037;
int Gi_0003A;
double Gd_0003A;
bool Gb_0003A;
double Id_00190;
int Gi_0003B;
double Gd_0003C;
double Gd_0003D;
double Gd_0003E;
double Gd_0003F;
bool Gb_0003D;
bool Gb_0001B;
double Gd_0001B;
double Gd_0001C;
bool Gb_0001C;
double Gd_0001D;
double Gd_0001E;
int Gi_0001F;
double Gd_00018;
bool Gb_00018;
double Gd_00019;
double Gd_0001A;
int Gi_0001B;
bool Gb_00016;
bool Gb_00007;
double Gd_00007;
int Gi_00007;
double Id_00048;
double Id_00050;
double Id_00070;
double Id_00080;
double Id_00088;
double Id_00090;
string Is_00168;
string Is_00178;
int Gi_00000;
double Gd_00000;
int Gi_00001;
int Gi_00002;
int Gi_00003;
int Gi_00004;
int Gi_00005;
int Gi_00006;
double Gd_00006;
long Gl_00000;
double Id_00098[];
double Id_000CC[];
double Id_00100[];
int Ii_00134[];
double returned_double;
int init(){
      // код доступен только после оплаты
   }
int start()
{
      // код доступен только после оплаты
   }
   string Ls_FFFF0;
   int Li_FFFFC;
   int Li_FFFEC;
   int Li_FFFE8;
   int Li_FFFE4;
   int Li_FFFE0;
   int Li_FFFDC;
   double Ld_FFFD0;
   double Ld_FFFC8;
   double Ld_FFFC0;
   double Ld_FFFB8;
   int Li_FFFB4;
   int Li_FFFB0;
   int Li_FFFAC;
   int Li_FFFA8;
   int Li_FFFA4;
   int Li_FFFA0;
   double Ld_FFF98;
   double Ld_FFF90;
   double Ld_FFF88;
   int Li_FFF84;
   int Li_FFF80;
   int Li_FFF7C;
   int Li_FFF78;
   int Li_FFF74;
   int Li_FFF70;
   int Li_FFF6C;
   int Li_FFF68;
   int Li_FFF64;
   int Li_FFF60;
   int Li_FFF5C;
   int Li_FFF58;
   int Li_FFF54;
   int Li_FFF50;
   int Li_FFF4C;
   int Li_FFF48;
   int Li_FFF44;

   if (IsTesting()) { 
   returned_double = MarketInfo(_Symbol, MODE_LOTSTEP);
   Gd_00001 = round((Lots / returned_double));
   Gd_00001 = (Gd_00001 * returned_double);
   Gd_00002 = MarketInfo(_Symbol, MODE_LOTSTEP);
   Gd_00001 = (NormalizeDouble((Gd_00001 / Gd_00002), 0) * Gd_00002);
   Gd_00003 = Gd_00001;
   if ((Gd_00001 >= MarketInfo(_Symbol, MODE_MAXLOT))) { 
   Gd_00003 = MarketInfo(_Symbol, MODE_MAXLOT);
   } 
   if ((Gd_00003 <= MarketInfo(_Symbol, MODE_MINLOT))) { 
   Gd_00003 = MarketInfo(_Symbol, MODE_MINLOT);
   } 
   Gd_00001 = MarketInfo(_Symbol, MODE_LOTSTEP);
   Gd_00004 = (NormalizeDouble((Gd_00003 / Gd_00001), 0) * Gd_00001);
   Gd_00005 = Gd_00004;
   if ((Gd_00004 >= MarketInfo(_Symbol, MODE_MAXLOT))) { 
   Gd_00005 = MarketInfo(_Symbol, MODE_MAXLOT);
   } 
   if ((Gd_00005 <= MarketInfo(_Symbol, MODE_MINLOT))) { 
   Gd_00005 = MarketInfo(_Symbol, MODE_MINLOT);
   } 
   Gd_00004 = Gd_00005;
   returned_double = SymbolInfoDouble(NULL, 34);
   Gb_00006 = (Gd_00005 < returned_double);
   if (Gb_00006) { 
   Ls_FFFF0 = StringFormat("Volume is less than the minimum allowable", returned_double);
   Gb_00006 = false;
   } 
   else { 
   returned_double = SymbolInfoDouble(NULL, 35);
   if ((Gd_00004 > returned_double)) { 
   Ls_FFFF0 = StringFormat("Volume is more than the maximum allowable", returned_double);
   Gb_00006 = false;
   } 
   else { 
   returned_double = SymbolInfoDouble(NULL, 36);
   Gd_00007 = round((Gd_00004 / returned_double));
   Gi_00007 = (int) Gd_00007;
   Gd_00008 = fabs(((Gi_00007 * returned_double) - Gd_00004));
   if ((Gd_00008 > 1E-07)) { 
   Ls_FFFF0 = StringFormat("The volume is not a multiple of", returned_double, (Gi_00007 * returned_double));
   Gb_00006 = false;
   } 
   else { 
   Ls_FFFF0 = "Correct value of volume";
   Gb_00006 = true;
   }}} 
   if (Gb_00006 == 0) { 
   Li_FFFFC = 0;
   return Li_FFFFC;
   } 
   returned_double = MarketInfo(_Symbol, MODE_LOTSTEP);
   Gd_00008 = round((Lots / returned_double));
   Gd_00008 = (Gd_00008 * returned_double);
   Gd_00009 = MarketInfo(_Symbol, MODE_LOTSTEP);
   Gd_00008 = (NormalizeDouble((Gd_00008 / Gd_00009), 0) * Gd_00009);
   Gd_0000A = Gd_00008;
   if ((Gd_00008 >= MarketInfo(_Symbol, MODE_MAXLOT))) { 
   Gd_0000A = MarketInfo(_Symbol, MODE_MAXLOT);
   } 
   if ((Gd_0000A <= MarketInfo(_Symbol, MODE_MINLOT))) { 
   Gd_0000A = MarketInfo(_Symbol, MODE_MINLOT);
   } 
   Gd_00008 = MarketInfo(_Symbol, MODE_LOTSTEP);
   Gd_0000B = (NormalizeDouble((Gd_0000A / Gd_00008), 0) * Gd_00008);
   Gd_0000C = Gd_0000B;
   if ((Gd_0000B >= MarketInfo(_Symbol, MODE_MAXLOT))) { 
   Gd_0000C = MarketInfo(_Symbol, MODE_MAXLOT);
   } 
   if ((Gd_0000C <= MarketInfo(_Symbol, MODE_MINLOT))) { 
   Gd_0000C = MarketInfo(_Symbol, MODE_MINLOT);
   } 
   if (AccountFreeMarginCheck(_Symbol, 0, Gd_0000C) <= 0 || GetLastError() == 134) {

   Alert("Not enough money on the account!");
   Li_FFFFC = 0;
   return Li_FFFFC;
   }
   returned_double = MarketInfo(_Symbol, MODE_LOTSTEP);
   Gd_0000B = round((Lots / returned_double));
   Gd_0000B = (Gd_0000B * returned_double);
   Gd_0000D = MarketInfo(_Symbol, MODE_LOTSTEP);
   Gd_0000B = (NormalizeDouble((Gd_0000B / Gd_0000D), 0) * Gd_0000D);
   Gd_0000E = Gd_0000B;
   if ((Gd_0000B >= MarketInfo(_Symbol, MODE_MAXLOT))) { 
   Gd_0000E = MarketInfo(_Symbol, MODE_MAXLOT);
   } 
   if ((Gd_0000E <= MarketInfo(_Symbol, MODE_MINLOT))) { 
   Gd_0000E = MarketInfo(_Symbol, MODE_MINLOT);
   } 
   Gd_0000B = MarketInfo(_Symbol, MODE_LOTSTEP);
   Gd_0000F = (NormalizeDouble((Gd_0000E / Gd_0000B), 0) * Gd_0000B);
   Gd_00010 = Gd_0000F;
   if ((Gd_0000F >= MarketInfo(_Symbol, MODE_MAXLOT))) { 
   Gd_00010 = MarketInfo(_Symbol, MODE_MAXLOT);
   } 
   if ((Gd_00010 <= MarketInfo(_Symbol, MODE_MINLOT))) { 
   Gd_00010 = MarketInfo(_Symbol, MODE_MINLOT);
   } 
   if (AccountFreeMarginCheck(_Symbol, 1, Gd_00010) <= 0 || GetLastError() == 134) {

   Alert("Not enough money on the account!");
   Li_FFFFC = 0;
   return Li_FFFFC;
   }
   returned_double = MarketInfo(_Symbol, MODE_LOTSTEP);
   Gd_0000F = round((Lots / returned_double));
   Gd_0000F = (Gd_0000F * returned_double);
   Gd_00011 = MarketInfo(_Symbol, MODE_LOTSTEP);
   Gd_0000F = (NormalizeDouble((Gd_0000F / Gd_00011), 0) * Gd_00011);
   Gd_00012 = Gd_0000F;
   if ((Gd_0000F >= MarketInfo(_Symbol, MODE_MAXLOT))) { 
   Gd_00012 = MarketInfo(_Symbol, MODE_MAXLOT);
   } 
   if ((Gd_00012 <= MarketInfo(_Symbol, MODE_MINLOT))) { 
   Gd_00012 = MarketInfo(_Symbol, MODE_MINLOT);
   } 
   Gd_0000F = MarketInfo(_Symbol, MODE_LOTSTEP);
   Gd_00013 = (NormalizeDouble((Gd_00012 / Gd_0000F), 0) * Gd_0000F);
   Gd_00014 = Gd_00013;
   if ((Gd_00013 >= MarketInfo(_Symbol, MODE_MAXLOT))) { 
   Gd_00014 = MarketInfo(_Symbol, MODE_MAXLOT);
   } 
   if ((Gd_00014 <= MarketInfo(_Symbol, MODE_MINLOT))) { 
   Gd_00014 = MarketInfo(_Symbol, MODE_MINLOT);
   } 
   Gd_00013 = (Gd_00014 * MarketInfo(_Symbol, MODE_MARGINREQUIRED));
   Gb_00013 = (Gd_00013 > AccountFreeMargin());
   if (Gb_00013) { 
   Alert("Not enough money on the account!");
   Li_FFFFC = 0;
   return Li_FFFFC;
   } 
   Gi_00013 = (int) SymbolInfoInteger(NULL, SYMBOL_TRADE_STOPS_LEVEL);
   if (TrailingStop <= Gi_00013) { 
   Gi_00013 = (int) SymbolInfoInteger(NULL, SYMBOL_TRADE_STOPS_LEVEL);
   TrailingStop = Gi_00013 + 1;
   } 
   Gi_00013 = (int) SymbolInfoInteger(NULL, SYMBOL_TRADE_STOPS_LEVEL);
   if (Step <= Gi_00013) { 
   Gi_00013 = (int) SymbolInfoInteger(NULL, SYMBOL_TRADE_STOPS_LEVEL);
   Step = Gi_00013 + 1;
   } 
   Gi_00013 = (int) AccountInfoInteger(ACCOUNT_LIMIT_ORDERS);
   Gi_00015 = Gi_00013;
   if (Gi_00013 == 0) { 
   Gb_00013 = true;
   } 
   else { 
   Gb_00016 = (OrdersTotal() < Gi_00015);
   Gb_00013 = Gb_00016;
   } 
   if (Gb_00013 != true) { 
   Li_FFFFC = 0;
   return Li_FFFFC;
   } 
   Id_00030 = (MarketInfo(_Symbol, MODE_MARGINREQUIRED) * 0.01);
   Id_00038 = MarketInfo(_Symbol, MODE_MAXLOT);
   Id_00040 = MarketInfo(_Symbol, MODE_MINLOT);
   Id_00058 = NormalizeDouble((Ask - Bid), _Digits);
   Ii_0002C = 33;
   if (Ii_00018 < 33) { 
   Ii_00018 = 33;
   } 
   if (Ii_0002C > TrailingStop) { 
   TrailingStop = Ii_0002C;
   } 
   Id_00060 = Id_00058;
   Ii_00028 = Ii_0001C;
   ArrayResize(Id_00098, Ii_0001C, 0);
   if (Ii_00028 != 0) { 
   Gi_00016 = Ii_00028;
   ArrayFill(Id_00098, 0, Ii_00028, Id_00060);
   }
   Id_00068 = NormalizeDouble((Max_Spread * _Point), _Digits);
   Li_FFFEC = 0;
   Li_FFFE8 = 0;
   Li_FFFE4 = 0;
   func_1011();
   Li_FFFE0 = 0;
   Li_FFFDC = 0;
   if (OrdersTotal() > 0) { 
   do { 
   Ii_00024 = OrderSelect(Li_FFFDC, 0, 0);
   if (OrderSymbol() == _Symbol && OrderMagicNumber() == Magic) { 
   Li_FFFE0 = Li_FFFE0 + 1;
   returned_i = OrderType();
   if (returned_i <= 5) { 
   if (returned_i == 4){

   Gi_00017 = (int) TimeCurrent();
   Gi_00017 = Gi_00017 - Ii_00184;
   if (Gi_00017 > Acceleration && (Id_00078 < (_Point * 70))) { 
   Ii_00024 = OrderDelete(OrderTicket(), 4294967295);
   } 
   Li_FFFEC = Li_FFFEC + 1;
   }
   if (returned_i == 5){

   Gi_00017 = (int) TimeCurrent();
   Gi_00017 = Gi_00017 - Ii_00188;
   if (Gi_00017 > Acceleration && (Id_00078 > (_Point * -70))) { 
   Ii_00024 = OrderDelete(OrderTicket(), 4294967295);
   } 
   Li_FFFE8 = Li_FFFE8 + 1;
   }
   if (returned_i == 0){

   Gd_00017 = AccountEquity();
   Gd_00017 = (Gd_00017 / AccountBalance());
   if (AccountEquity() > Id_00190 || (Gd_00017 < (StopLoss / 100))) {

   if ((Id_00078 < (_Point * -70))) {
   Gd_00017 = (_Point * 60);
   if ((Bid < (OrderOpenPrice() - Gd_00017))) {
   Gd_00017 = (Bid - OrderStopLoss());
   Gd_00018 = ((TrailingStop * _Point) * 150);
   if (OrderStopLoss() == 0 || (Gd_00017 > ((Ii_0002C * _Point) + Gd_00018))) {

   Gd_00018 = ((TrailingStop * _Point) * 150);
   Gd_00018 = NormalizeDouble((Bid - Gd_00018), _Digits);
   if ((Gd_00018 != OrderStopLoss())) {
   Gd_00019 = (TrailingStop * _Point);
   Ii_00024 = OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble((Bid - Gd_00019), _Digits), OrderTakeProfit(), 0, 4294967295);
   }}}}}}
   if (returned_i == 1){

   Gd_0001B = AccountEquity();
   Gd_0001B = (Gd_0001B / AccountBalance());
   if (AccountEquity() > Id_00190 || (Gd_0001B < (StopLoss / 100))) {

   if ((Id_00078 > (_Point * 70)) && (Ask > ((_Point * 60) + OrderOpenPrice()))) { 
   Gd_0001B = (OrderStopLoss() - Ask);
   Gd_0001C = ((TrailingStop * _Point) * 150);
   if (OrderStopLoss() == 0 || (Gd_0001B > ((Ii_0002C * _Point) + Gd_0001C))) {

   Gd_0001C = NormalizeDouble((((TrailingStop * _Point) * 150) + Ask), _Digits);
   if ((Gd_0001C != OrderStopLoss())) { 
   Ii_00024 = OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(((TrailingStop * _Point) + Ask), _Digits), OrderTakeProfit(), 0, 4294967295);
   }}}}}}} 
   Li_FFFDC = Li_FFFDC + 1;
   } while (Li_FFFDC < OrdersTotal()); 
   } 
   Ld_FFFD0 = (Lots * 200);
   Ld_FFFC8 = 0;
   Ld_FFFC0 = 100000;
   Ld_FFFB8 = 0;
   Li_FFFB4 = OrdersTotal() - 1;
   if (Li_FFFB4 >= 0) { 
   do { 
   Li_FFFB0 = OrderSelect(Li_FFFB4, 0, 0);
   if (OrderMagicNumber() == Magic) { 
   Ld_FFFC8 = (Ld_FFFC

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

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

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

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

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

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

Стоимость полного кода
2 053,10₽ ≈ $25.09