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

SALONGO

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

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

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

О программе

SALONGO — торговый советник для MetaTrader 4, который формирует сигналы на основе осциллятора Stochastic (основная линия и сигналная линия) и открывает на их основе рыночные ордера Buy/Sell либо отложенные лимитные ордера. Режим интерпретации сигнала и тип скользящей средней можно переключать в настройках.

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

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

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

НастройкаОписание
INFO Информация — Текстовый параметр для отображаемой информационной строки.
OWN Автор — Текстовый параметр, содержащий строку авторских прав.
ContactMe Контакт — Текстовый параметр для контактной информации пользователя.
TS Настройки торговли — Текстовый параметр для настроек торговли.
Lots Размер лота — Размер лота для открытия новых позиций.
TakeProfit Тейк-профит — Значение тейк-профита в пунктах для новых ордеров.
Multiplier Множитель лота — Множитель для увеличения размера лота при управлении несколькими открытыми позициями.
MaxTrades Максимальное количество сделок — Максимальное количество одновременных сделок до приостановки открытия новых ордеров.
PipStep Шаг в пунктах — Шаг в пунктах, определяющий минимальное расстояние цены для открытия новых позиций.
UseModifyTakeProfit Модификация тейк-профита — Переключатель, включающий автоматическую модификацию тейк-профита на существующих ордерах.
StopTradingSetting Настройка остановки торговли — Текстовый параметр для настроек остановки торговли.
Notes1 Заметки 1 — Текстовый параметр для пользовательских заметок (группа настроек по прибыли).
StopTradeAfterProfitReach Остановка при достижении прибыли — Переключатель, включающий остановку торговли при достижении прибылью заданного порога.
InitialEquity Начальное равновесие — Начальное значение равновесия, используемое для расчёта процентных порогов прибыли и убытка.
UseProfitTargetInPercent Целевая прибыль в процентах — Переключатель, включающий остановку торговли при достижении целевого процента прибыли.
StopProfitInPercent Стоп-профит в процентах — Процент прибыли от начального равновесия, при достижении которого торговля останавливается.
UseEquityTargetInUSD Контроль прибыли в USD — Переключатель, включающий контроль прибыли по равновесию в долларах.
StopEquityTargetInUSD Целевое равновесие в USD — Порог равновесия в долларах, при достижении которого торговля останавливается после достижения прибыли.
Notes2 Заметки 2 — Текстовый параметр для пользовательских заметок (группа настроек по убыткам).
StopTradeAfterLossReach Остановка при достижении убытка — Переключатель, включающий остановку торговли при достижении убытком заданного порога.
UseStopLossInPercent Стоп-лосс в процентах — Переключатель, включающий остановку торговли при достижении стоп-лосса в процентах.
StopLossInPercent Стоп-лосс в процентах — Процент убытка от начального равновесия, при достижении которого торговля останавливается.
UseEquityLossInUSD Контроль убытка в USD — Переключатель, включающий контроль убытка по равновесию в долларах.
StopEquityLossInUSD Стоп-лосс равновесия в USD — Порог равновесия в долларах, при достижении которого торговля останавливается из-за убытка.
Получить полный код

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

/*
   Generated by EX4-TO-MQ4 decompiler V4.0.224.1 []
   Website: 
   E-mail : s*****o*@gmail.com
*/

string gs_76 = "SALONGO ";
extern string INFO = "SALONGO ";
extern string OWN = "salongo Copyright";
extern string ContactMe = "";
bool gi_108 = FALSE;
string gs_112 = "--STOCH SETTING--";
bool gi_120 = FALSE;
int gi_124 = 14;
int gi_128 = 3;
int gi_132 = 3;
int gi_136 = PERIOD_M1;
int gi_140 = 1;
int gi_144 = 99;
int gi_148 = 1;
string gs_152 = "Choose 1=mode main, 2=mode signal";
int gi_160 = 1;
string gs_164 = "Choose 1=mode SMA, 2=mode LWMA, 3=mode EMA";
int gi_172 = 2;
bool gi_176 = FALSE;
extern string TS = "--TRADE SETTING--";
string gs_188 = "0=Buy & Sell, 1=Sell, 2=Buy";
int gi_196 = 1;
extern double Lots = 0.01;
extern int TakeProfit = 150;
bool gi_212 = FALSE;
double gd_216 = 50.0;
extern double Multiplier = 1.5;
extern int MaxTrades = 5;
extern int PipStep = 150;
extern bool UseModifyTakeProfit = false;
extern string StopTradingSetting = " ----------- STOP TRADING SETTINGS ----------- ";
extern string Notes1 = " -------- Take Profit by Equity ----------";
extern bool StopTradeAfterProfitReach=false;
extern double InitialEquity=10000;
extern bool UseProfitTargetInPercent = true;
extern double StopProfitInPercent=10;
extern bool UseEquityTargetInUSD = false;
extern double StopEquityTargetInUSD = 11000;
extern string Notes2 = " -------- Stop Loss Limit by Equity ----------";
extern bool StopTradeAfterLossReach=false;
extern bool UseStopLossInPercent = false;
extern double StopLossInPercent=50;
extern bool UseEquityLossInUSD = false;
extern double StopEquityLossInUSD = 5000;

int gi_240 = 0;
int gi_244 = 0;
string gs_248 = "--MOney Management--";
string gs_256 = "if one the lots size will increase based on account size";
int gi_264 = 0;
string gs_268 = "risk to calculate the lots size (only if mm is enabled)";
int gi_276 = 1;
string gs_280 = "0 if Normal Lots, 1 for mini lots, 2 for micro lots";
int gi_288 = 2;
string gs_292 = "--Magic No--";
int gi_300;
string gs_304 = "--CUTLOSS SETTING--";
bool gi_312 = FALSE;
string gs_316 = "If profit made is bigger than SecureProfit we close the orders";
int gi_324 = 20;
string gs_328 = "Number of orders to enable the account protection";
int gi_336 = 3;
string gs_340 = "if one will check profit from all symbols, if cero only this symbol";
bool gi_348 = FALSE;
string gs_352 = "if true, then the expert will protect the account equity to the percent specified";
bool gi_360 = FALSE;
string gs_364 = "percent of the account to protect on a set of trades";
int gi_372 = 90;
string gs_376 = "if true, then the expert will use money protection to the USD specified";
bool gi_384 = FALSE;
double gd_388 = 3000.0;
bool gi_396 = FALSE;
int gi_400 = 0;
int gi_404 = 1;
string gs_408 = "--trading time setting--";
bool gi_416 = FALSE;
bool gi_420 = TRUE;
int gi_424 = 0;
int gi_428 = 3;
bool gi_432 = TRUE;
int gi_436 = 9;
int gi_440 = 11;
bool gi_444 = TRUE;
int gi_448 = 15;
int gi_452 = 17;
bool gi_456 = TRUE;
string gs_460 = "--Others Setting--";
int gi_468 = 0;
string gs_472 = "if one the desition to go long/short will be reversed";
bool gi_480 = FALSE;
string gs_484 = "if true, instead open market orders it will open limit orders ";
bool gi_492 = FALSE;
int gi_496 = 0;
int gi_500 = Black;
int gi_504 = 16;
bool gi_508 = TRUE;
int gi_512 = 0;
int gi_516 = 0;
int gi_520 = 0;
int gi_524 = 0;
int gi_528 = 5;
double gd_532 = 0.0;
double gd_540 = 0.0;
double gd_548 = 0.0;
double gd_556 = 0.0;
double gd_564 = 0.0;
double gd_572 = 0.0;
int gi_580 = OP_BUY;
int gi_584 = 0;
int gi_588 = 0;
double gd_592 = 0.0;
int gi_600 = 0;
double gd_604 = 0.0;
int gi_612 = 0;
int gi_616 = 0;
double gd_620 = 0.0;
double gd_628 = 0.0;
double gd_636 = 0.0;
double gd_644 = 0.0;
bool gi_652 = FALSE;
double gd_656 = 0.0;
double gd_664 = 0.0;
double gd_672 = 0.0;
int gia_680[][2];
bool gi_684 = FALSE;
string gs_688 = "2030.01.12 23:00";
int gi_696 = 0;
int gi_700 = 0;
bool gi_704;

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

int deinit() {
   DeleteAllObjects();
   Comment("");
   return (0);
}

int start() {
      // код доступен только после оплаты
   }
   bool li_4;
   int li_16;
   int li_0 = 0;
   string ls_8 = "";

   if (StopTradeAfterProfitReach==true && UseProfitTargetInPercent==true && ((AccountEquity()-InitialEquity)/InitialEquity)>=(StopProfitInPercent/100)) {
      CloseAll();
      if (OrdersTotal()>0) {Sleep (3000); CloseAll();}
      if (OrdersTotal()>0) {Sleep (3000); CloseAll();}
      if (OrdersTotal()>0) {Sleep (3000); CloseAll();}
      if (OrdersTotal()>0) {Sleep (3000); CloseAll();}
      if (OrdersTotal()>0) {Sleep (3000); CloseAll();}
      if (OrdersTotal()>0) {Sleep (3000); CloseAll();}
      if (OrdersTotal()>0) {Sleep (3000); CloseAll();}
      if (OrdersTotal()>0) {Sleep (3000); CloseAll();}

      Comment ("HedgeMadnessSELL: Equity Reach Target....Trading has been stopped"); 
      return (0);
   }
   else Comment ("");

   if (StopTradeAfterProfitReach==true && UseEquityTargetInUSD==true && AccountEquity()>=StopEquityTargetInUSD) {
      CloseAll();
      if (OrdersTotal()>0) {Sleep (3000); CloseAll();}
      if (OrdersTotal()>0) {Sleep (3000); CloseAll();}
      if (OrdersTotal()>0) {Sleep (3000); CloseAll();}
      if (OrdersTotal()>0) {Sleep (3000); CloseAll();}
      if (OrdersTotal()>0) {Sleep (3000); CloseAll();}
      if (OrdersTotal()>0) {Sleep (3000); CloseAll();}
      if (OrdersTotal()>0) {Sleep (3000); CloseAll();}
      if (OrdersTotal()>0) {Sleep (3000); CloseAll();}

      Comment ("HedgeMadnessSELL: Equity Reach Target....Trading has been stopped"); 
      return (0);
   }
   else Comment ("");

   if (StopTradeAfterLossReach==true && UseStopLossInPercent==true && ((AccountEquity()-InitialEquity)/InitialEquity)<=-(StopLossInPercent/100) ) {
      CloseAll();
      if (OrdersTotal()>0) {Sleep (3000); CloseAll();}
      if (OrdersTotal()>0) {Sleep (3000); CloseAll();}
      if (OrdersTotal()>0) {Sleep (3000); CloseAll();}
      if (OrdersTotal()>0) {Sleep (3000); CloseAll();}
      if (OrdersTotal()>0) {Sleep (3000); CloseAll();}
      if (OrdersTotal()>0) {Sleep (3000); CloseAll();}
      if (OrdersTotal()>0) {Sleep (3000); CloseAll();}
      if (OrdersTotal()>0) {Sleep (3000); CloseAll();}

      Comment ("HedgeMadnessBUY: Equity Reach Stop Loss....Trading has been stopped"); 
      return (0);
   }

   if (StopTradeAfterLossReach==true && UseEquityLossInUSD==true && AccountEquity()<=StopEquityLossInUSD) {
      CloseAll();
      if (OrdersTotal()>0) {Sleep (3000); CloseAll();}
      if (OrdersTotal()>0) {Sleep (3000); CloseAll();}
      if (OrdersTotal()>0) {Sleep (3000); CloseAll();}
      if (OrdersTotal()>0) {Sleep (3000); CloseAll();}
      if (OrdersTotal()>0) {Sleep (3000); CloseAll();}
      if (OrdersTotal()>0) {Sleep (3000); CloseAll();}
      if (OrdersTotal()>0) {Sleep (3000); CloseAll();}
      if (OrdersTotal()>0) {Sleep (3000); CloseAll();}

      Comment ("HedgeMadnessBUY: Equity Reach Stop Loss....Trading has been stopped"); 
      return (0);
   }

   if (GlobalVariableGet("GV_CloseAllAndHalt") > 0.0) {
      gi_508 = FALSE;
      return (0);
   }
   if (gi_416) {
      gi_704 = TRUE;
      if (gi_420) {
         if (gi_424 > 18) {
            if (Hour() >= gi_424) gi_704 = FALSE;
            if (!gi_704) {
               if (gi_428 < 24)
                  if (Hour() <= gi_428) gi_704 = FALSE;
               if (gi_428 >= 0)
                  if (Hour() <= gi_428) gi_704 = FALSE;
            }
         } else
            if (Hour() >= gi_424 && Hour() <= gi_428) gi_704 = FALSE;
      }
      if (gi_704) {
         if (gi_432)
            if (Hour() >= gi_436 && Hour() <= gi_440) gi_704 = FALSE;
      }
      if (gi_704) {
         if (gi_444)
            if (Hour() >= gi_448 && Hour() <= gi_452) gi_704 = FALSE;
      }
      if (gi_704) return (0);
   }
   if (gi_288 == 0) {
      if (gi_264 != 0) gd_564 = MathCeil(AccountBalance() * gi_276 / 10000.0);
      else gd_564 = Lots;
   }
   if (gi_288 == 1) {
      if (gi_264 != 0) gd_564 = MathCeil(AccountBalance() * gi_276 / 10000.0) / 10.0;
      else gd_564 = Lots;
   }
   if (gi_288 == 2) {
      if (gi_264 != 0) gd_564 = MathCeil(AccountBalance() * gi_276 / 10000.0) / 100.0;
      else gd_564 = Lots;
   }
   if (gd_564 < 0.01) gd_564 = 0.01;
   if (gd_564 > 100.0) gd_564 = 100;
   gi_512 = 0;
   gi_520 = 0;
   gi_524 = 0;
   for (li_0 = 0; li_0 < OrdersTotal(); li_0++) {
      if (OrderSelect(li_0, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == gi_300) {
            if (OrderType() == OP_BUY || OrderType() == OP_SELL) {
               gi_520++;
               gi_700 = OrderOpenTime();
            }
            if (OrderType() == OP_SELLLIMIT || OrderType() == OP_BUYLIMIT) gi_524++;
            gi_512++;
         }
      }
   }
   if (gi_512 < 1)
      if (!gi_456 && DayOfWeek() == 5) return (0);
   gd_644 = MarketInfo(Symbol(), MODE_TICKVALUE);
   if (gd_644 == 0.0) gd_644 = 5;
   if (gi_384 && AccountBalance() - AccountEquity() >= gd_388) {
      ls_8 = ls_8 
      + "\nClosing all orders and stop trading because account money protection activated..";
      Print("Closing all orders and stop trading because account money protection activated.. Balance: ", AccountBalance(), " Equity: ", AccountEquity());
      gi_600 = gi_512 + 1;
      gi_508 = FALSE;
      return (0);
   }
   if (gi_396) {
      if (!(Hour() >= gi_400 && Hour() <= gi_404)) {
         ls_8 = ls_8 
         + "\nNot the designated trading hours.";
         Print("Not the designated trading hours. Profit: ", AccountProfit(), " Equity: ", AccountEquity());
         gi_600 = gi_512 + 1;
         gi_508 = FALSE;
         return (0);
      }
   }
   if (gi_212 && AccountProfit() >= gd_216) {
      ls_8 = ls_8 
      + "\nClosing all orders and stop trading because mymoney profit target reached..";
      Print("Closing all orders and stop trading because mymoney profit target reached.. Profit: ", AccountProfit(), " Equity: ", AccountEquity());
      gi_600 = gi_512 + 1;
      gi_508 = FALSE;
      return (0);
   }
   if (gi_360 && AccountEquity() <= AccountBalance() * gi_372 / 100.0) {
      ls_8 = ls_8 
      + "\nClosing all orders and stop trading because account money protection activated.";
      Print("Closing all orders and stop trading because account money protection activated. Balance: ", AccountBalance(), " Equity: ", AccountEquity());
      gi_600 = gi_512 + 1;
      gi_508 = FALSE;
      return (0);
   }
   if (!gi_456 && DayOfWeek() == 5) {
      gi_600 = gi_512 + 1;
      gi_508 = FALSE;
      ls_8 = ls_8 
      + "\nClosing all orders and stop trading because TradeOnFriday protection.";
      Print("Closing all orders and stop trading because TradeOnFriday protection.");
   }
   if (gi_468 > 0 && TimeCurrent() - gi_700 > gi_468) {
      gi_600 = gi_512 + 1;
      gi_508 = FALSE;
      ls_8 = ls_8 
      + "\nClosing all orders because OrdersTimeAlive protection.";
      Print("Closing all orders because OrdersTimeAlive protection.");
   }
   if (gi_600 > gi_512) {
      for (li_0 = OrdersTotal() - 1; li_0 >= 0; li_0--) {
         if (OrderSelect(li_0, SELECT_BY_POS, MODE_TRADES)) {
            gi_580 = OrderType();
            if ((OrderSymbol() == Symbol() && OrderMagicNumber() == gi_300) || gi_348) {
               if (gi_580 == OP_BUY || gi_580 == OP_SELL) {
                  OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), gi_528, gi_500);
                  return (0);
               }
            }
         }
      }
      for (li_0 = 0; li_0 < OrdersTotal(); li_0++) {
         if (OrderSelect(li_0, SELECT_BY_POS, MODE_TRADES)) {
            gi_580 = OrderType();
            if ((OrderSymbol() == Symbol() && OrderMagicNumber() == gi_300) || gi_348) {
               if (gi_580 == OP_SELLLIMIT || gi_580 == OP_BUYLIMIT || gi_580 == OP_BUYSTOP || gi_580 == OP_SELLSTOP) {
                  OrderDelete(OrderTicket());
                  return (0);
               }
            }
         }
      }
   }
   gi_600 = gi_512;
   if (gi_512 >= 

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

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

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

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

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

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

Стоимость полного кода
1 737,70₽ ≈ $21.24