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

wallstreetforexrobot_v3.6~.mq4

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

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

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

О программе

Советник для платформы MetaTrader 4, предназначенный для автоматической торговли на валютном рынке. Работает с использованием внешних динамических библиотек WALLSTREET.dll и wininet.dll для управления торговой сессией и проверки интернет-соединения. Анализирует рыночные данные на основе технических индикаторов, рассчитанных по минутному таймфрейму, и принимает торговые решения через вызовы функций внешней библиотеки.

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

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

НастройкаОписание
Magic Магический номер — Уникальный идентификатор ордеров советника для их фильтрации и управления.
MaxSpread Максимальный спред — Допустимый максимальный спред в пунктах; при превышении торговля блокируется.
Slippage Допустимое проскальзывание — Максимальное допустимое проскальзывание цены при открытии и закрытии ордеров.
StealthMode Стелс-режим — При включении не устанавливает стоп-лосс и тейк-профит сразу при открытии позиции.
CloseOnlyOnProfit Закрытие только в прибыли — При включении ограничивает закрытие позиций только теми, которые находятся в прибыли.
SS Настройки пользователя — Текстовый разделитель-заголовок для группы пользовательских настроек.
StopLoss Стоп-лосс — Расстояние стоп-лосса от цены входа в пунктах.
TakeProfit Тейк-профит — Расстояние тейк-профита от цены входа в пунктах.
SecureProfit Защита прибыли — Размер смещения стоп-лосса в прибыльную зону при достижении условного уровня.
SecureProfitTriger Триггер защиты прибыли — Пороговое расстояние в пунктах, при достижении которого активируется перемещение стоп-лосса.
UseCustomPair Использовать пользовательскую пару — При включении для загрузки настроек используется пара из параметра UseSettingsFrom вместо текущего символа.
UseSettingsFrom Источник настроек — Название валютной пары, из которой загружаются параметры сессии при включённом UseCustomPair.
MM Управление рисками — Текстовый разделитель-заголовок для группы настроек управления рисками.
RecoveryMode Режим восстановления — При включении активируется специальный алгоритм расчёта размера лота для восстановления позиции.
FixedLots Фиксированный лот — Размер фиксированного лота, используемый при отключённом автоматическом управлении рисками.
AutoMM Автоматическое управление рисками — Процент свободного маржи, используемый для автоматического расчёта размера лота.
AutoMM_Max Максимум автоматического лота — Верхний предел размера лота при автоматическом управлении рисками.
Получить полный код

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

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

#import "wininet.dll"
   int InternetOpenA(string a0, int a1, string a2, string a3, int a4);
   int InternetOpenUrlA(int a0, string a1, string a2, int a3, int a4, int a5);
   int InternetCloseHandle(int a0);
#import "WALLSTREET.dll"
   int SessionInit(int a0, int a1, int a2, int a3, string a4);
   int SessionDeinit(int a0, int a1, int a2, int a3, string a4);
   int ParamValue(int a0, int a1);
   bool CheckCloseLong(int a0, double a1, double a2, double a3, double a4, double a5, double a6, double a7, double a8, double a9);
   bool CheckCloseShort(int a0, double a1, double a2, double a3, double a4, double a5, double a6, double a7, double a8, double a9);
   bool CheckOpenLong(int a0, double a1, double a2, double a3, double a4, double a5, double a6, double a7, double a8);
   bool CheckOpenShort(int a0, double a1, double a2, double a3, double a4, double a5, double a6, double a7, double a8);
#import

extern int Magic = 4698523;
extern int MaxSpread = 4;
extern int Slippage = 2;
int gi_88 = 3;
int gi_92 = 3;
extern bool StealthMode = FALSE;
bool gi_100 = TRUE;
extern bool CloseOnlyOnProfit = FALSE;
extern string SS = "==== Custom Settings ====";
extern int StopLoss = 0;
extern int TakeProfit = 0;
extern int SecureProfit = 0;
extern int SecureProfitTriger = 0;
extern bool UseCustomPair = FALSE;
extern string UseSettingsFrom = "EURUSD";
extern string MM = "==== Risk Management ====";
extern bool RecoveryMode = FALSE;
extern double FixedLots = 0.1;
extern double AutoMM = 0.0;
extern double AutoMM_Max = 20.0;
int gi_180 = 50;
double gd_184 = 25.0;
double gd_192 = 1.1;
int g_period_200 = 0;
int gi_204 = 0;
int gi_208 = 0;
int gi_212 = 0;
int gi_216 = 0;
int gi_220 = 0;
int gi_224 = 0;
int g_period_228 = 0;
int gi_232 = 0;
int gi_236 = 0;
int gi_240 = 0;
int gi_244 = 0;
int gi_248 = 0;
int g_period_252 = 0;
int gi_256 = 0;
int g_period_260 = 0;
int gi_264 = 0;
int gi_268 = 0;
int gi_272 = -1;
bool gi_276 = TRUE;
bool gi_280 = FALSE;
int g_stoplevel_284 = 0;
double g_minlot_288 = 0.01;
double g_maxlot_296 = 0.01;
double g_lotstep_304 = 0.01;
int g_lotsize_312 = 100000;
double g_marginrequired_316 = 1000.0;
double gd_324 = 0.0001;
double gd_unused_332 = 0.1;
double gd_unused_340 = 1.0;

int CheckWWW() {
   int li_20;
   bool li_ret_0 = TRUE;
   string ls_4 = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461)";
   bool li_12 = FALSE;
   int li_16 = InternetOpenA(ls_4, li_12, "0", "0", 0);
   if (li_16 != 0) {
      li_20 = InternetOpenUrlA(li_16, "", "0", 0, -2080374528, 0);
      if (li_20 == 0) li_ret_0 = FALSE;
      else InternetCloseHandle(li_20);
      InternetCloseHandle(li_16);
   } else li_ret_0 = FALSE;
   return (li_ret_0);
}

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

int deinit() {
   Comment("");
   if (ObjectFind("BKGR") >= 0) ObjectDelete("BKGR");
   if (ObjectFind("BKGR2") >= 0) ObjectDelete("BKGR2");
   if (ObjectFind("BKGR3") >= 0) ObjectDelete("BKGR3");
   if (ObjectFind("BKGR4") >= 0) ObjectDelete("BKGR4");
   if (ObjectFind("LV") >= 0) ObjectDelete("LV");
   if (gi_272 != -1) gi_272 = MyDeinit();
   return (0);
}

int start() {
      // код доступен только после оплаты
   }
   double l_price_8;
   double ld_16;
   double ld_24;
   color l_color_32;
   double l_lots_40;
   int l_ticket_120;
   double l_price_132;
   double l_price_140;
   string ls_148;
   string ls_0 = "";
   double ld_48 = 0;
   double ld_56 = 0;
   double ld_64 = 0;
   if (gi_276) {
      gi_276 = FALSE;
      g_stoplevel_284 = MarketInfo(Symbol(), MODE_STOPLEVEL);
      g_minlot_288 = MarketInfo(Symbol(), MODE_MINLOT);
      g_maxlot_296 = MarketInfo(Symbol(), MODE_MAXLOT);
      g_lotsize_312 = MarketInfo(Symbol(), MODE_LOTSIZE);
      g_lotstep_304 = MarketInfo(Symbol(), MODE_LOTSTEP);
      g_marginrequired_316 = MarketInfo(Symbol(), MODE_MARGINREQUIRED);
      if (Digits <= 3) gd_324 = 0.01;
      else gd_324 = 0.0001;
      if (Digits == 3 || Digits == 5) gd_unused_332 = 0.1;
      else gd_unused_332 = 1;
      Comment("\nInitializing ...");
      Sleep(1000);
      gi_280 = CheckWWW();
      Sleep(1000);
      if (!gi_280) gi_276 = TRUE;
   }
   if (!IsTesting() && IsStopped()) return (0);
   if (!IsTesting() && !IsTradeAllowed()) {
      Print("Trading is not Allowed ...");
      return (0);
   }
   if (!IsTesting() && IsTradeContextBusy()) {
      Print("Trade Context is Busy ...");
      return (0);
   }
   if (IsDllsAllowed() == FALSE) {
      Comment("\nWarning: Set Parameter **AllowDLL Imports** ON in menu Tools -> Options -> ExpertAdvisors.");
      Print("Warning: Set Parameter **AllowDLL Imports** ON in menu Tools -> Options -> ExpertAdvisors.");
      Alert("Warning: Set Parameter **AllowDLL Imports** ON in menu Tools -> Options -> ExpertAdvisors.");
      Sleep(30000);
      return (0);
   }
   if (gi_272 <= 0) {
      if (!gi_280) {
         Comment("\nInternet connection problem");
         Alert("Internet connection problem");
         Sleep(10000);
         return (0);
      }
      Comment("\nUpdating settings ...");
      Sleep(2000);
      gi_272 = MyFirstInit();
      Sleep(2000);
      if (gi_272 < 0) Comment("\nInitializing ...");
   }
   if (gi_272 <= 0) {
      if (gi_272 == -8) {
         Comment("\nUnsupported currency pair " + Symbol());
         Alert("Unsupported currency pair " + Symbol());
      } else {
         Comment("\nInitialization is failed with error code " + DoubleToStr(gi_272, 0));
         Alert("Initialization is failed with error code " + DoubleToStr(gi_272, 0));
      }
      Sleep(10000);
      return (0);
   }
   if (g_period_200 <= 0 || g_period_228 <= 0 || g_period_252 <= 0 || g_period_260 <= 0) {
      Comment("\nWrong initialization parameters for pair " + Symbol());
      Alert("Wrong initialization parameters for pair " + Symbol());
      Sleep(10000);
      return (0);
   }
   HideTestIndicators(TRUE);
   double l_iclose_72 = iClose(NULL, PERIOD_M15, 1);
   double l_ima_80 = iMA(NULL, PERIOD_M15, g_period_200, 0, MODE_SMMA, PRICE_CLOSE, 1);
   double l_iwpr_88 = iWPR(NULL, PERIOD_M15, g_period_228, 1);
   double l_iatr_96 = iATR(NULL, PERIOD_M15, g_period_252, 1);
   double l_icci_104 = iCCI(NULL, PERIOD_M15, g_period_260, PRICE_TYPICAL, 1);
   HideTestIndicators(FALSE);
   if (AutoMM > 0.0 && !RecoveryMode) l_lots_40 = MathMax(g_minlot_288, MathMin(g_maxlot_296, MathCeil(MathMin(AutoMM_Max, AutoMM) / 100.0 * AccountFreeMargin() / g_lotstep_304 / (g_lotsize_312 / 100)) * g_lotstep_304));
   if (AutoMM > 0.0 && RecoveryMode) l_lots_40 = CalcLots();
   if (AutoMM == 0.0) l_lots_40 = FixedLots;
   ls_0 = ls_0 
      + "\n  " 
      + "\n " 
      + "\n  Authorization - OK!" 
      + "\n -----------------------------------------------" 
   + "\n  Spread = " + DoubleToStr((Ask - Bid) / gd_324, 1) + " pips";
   if (Ask - Bid > MaxSpread * gd_324) ls_0 = ls_0 + " - TOO HIGH";
   else ls_0 = ls_0 + " - NORMAL";
   ls_0 = ls_0 
   + "\n -----------------------------------------------";
   if (AutoMM > 0.0) {
      ls_0 = ls_0 
         + "\n  AutoMM - ENABLED" 
      + "\n  Risk = " + DoubleToStr(AutoMM, 1) + "%";
   }
   ls_0 = ls_0 
   + "\n  Trading Lots = " + DoubleToStr(l_lots_40, 2);
   ls_0 = ls_0 
   + "\n -----------------------------------------------";
   if (RecoveryMode) {
      ls_0 = ls_0 
      + "\n  Recovery Mode - ENABLED";
   } else {
      ls_0 = ls_0 
      + "\n  Recovery Mode - DISABLED";
   }
   if (StealthMode) {
      ls_0 = ls_0 
      + "\n  Stealth Mode - ENABLED";
   } else {
      ls_0 = ls_0 
      + "\n  Stealth Mode - DISABLED";
   }
   ls_0 = ls_0 
   + "\n -----------------------------------------------";
   Comment(ls_0);
   if (ObjectFind("BKGR") < 0) {
      ObjectCreate("BKGR", OBJ_LABEL, 0, 0, 0);
      ObjectSetText("BKGR", "g", 110, "Webdings", LightSlateGray);
      ObjectSet("BKGR", OBJPROP_CORNER, 0);
      ObjectSet("BKGR", OBJPROP_BACK, TRUE);
      ObjectSet("BKGR", OBJPROP_XDISTANCE, 5);
      ObjectSet("BKGR", OBJPROP_YDISTANCE, 15);
   }
   if (ObjectFind("BKGR2") < 0) {
      ObjectCreate("BKGR2", OBJ_LABEL, 0, 0, 0);
      ObjectSetText("BKGR2", "g", 110, "Webdings", DimGray);
      ObjectSet("BKGR2", OBJPROP_BACK, TRUE);
      ObjectSet("BKGR2", OBJPROP_XDISTANCE, 5);
      ObjectSet("BKGR2", OBJPROP_YDISTANCE, 60);
   }
   if (ObjectFind("BKGR3") < 0) {
      ObjectCreate("BKGR3", OBJ_LABEL, 0, 0, 0);
      ObjectSetText("BKGR3", "g", 110, "Webdings", DimGray);
      ObjectSet("BKGR3", OBJPROP_CORNER, 0);
      ObjectSet("BKGR3", OBJPROP_BACK, TRUE);
      ObjectSet("BKGR3", OBJPROP_XDISTANCE, 5);
      ObjectSet("BKGR3", OBJPROP_YDISTANCE, 45);
   }
   if (ObjectFind("LV") < 0) {
      ObjectCreate("LV", OBJ_LABEL, 0, 0, 0);
      ObjectSetText("LV", "WALL STREET ROBOT", 9, "Tahoma Bold", White);
      ObjectSet("LV", OBJPROP_CORNER, 0);
      ObjectSet("LV", OBJPROP_BACK, FALSE);
      ObjectSet("LV", OBJPROP_XDISTANCE, 13);
      ObjectSet("LV", OBJPROP_YDISTANCE, 23);
   }
   if (ObjectFind("BKGR4") < 0) {
      ObjectCreate("BKGR4", OBJ_LABEL, 0, 0, 0);
      ObjectSetText("BKGR4", "g", 110, "Webdings", DimGray);
      ObjectSet("BKGR4", OBJPROP_CORNER, 0);
      ObjectSet("BKGR4", OBJPROP_BACK, TRUE);
      ObjectSet("BKGR4", OBJPROP_XDISTANCE, 5);
      ObjectSet("BKGR4", OBJPROP_YDISTANCE, 73);
   }
   if (TakeProfit < g_stoplevel_284 * Point / gd_324) TakeProfit = g_stoplevel_284 * Point / gd_324;
   if (StopLoss < g_stoplevel_284 * Point / gd_324) StopLoss = g_stoplevel_284 * Point / gd_324;
   Slippage = Slippage * gd_324;
   int l_count_112 = 0;
   int l_count_116 = 0;
   if (CloseOnlyOnProfit) gi_224 = 0;
   for (int l_pos_128 = OrdersTotal() - 1; l_pos_128 >= 0; l_pos_128--) {
      if (!OrderSelect(l_pos_128, SELECT_BY_POS, MODE_TRADES)) Print("Error in OrderSelect! Position:", l_pos_128);
      else {
         if (OrderType() <= OP_SELL && OrderSymbol() == Symbol()) {
            if (OrderMagicNumber() == Magic) {
               ld_64 += OrderProfit();
               if (OrderType() == OP_BUY) ld_48 = (Bid - OrderOpenPrice()) / gd_324;
               else ld_48 = (OrderOpenPrice() - Ask) / gd_324;
               ld_56 += ld_48;
               if (OrderType() == OP_BUY) {
                  l_count_112++;
                  if (OrderStopLoss() == 0.0 && 

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

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

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

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

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

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

Стоимость полного кода
1 549,40₽ ≈ $18.94