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

Newest Universal 10

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

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

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

О программе

Newest Universal 10 — торговый советник для платформы MetaTrader 4 на языке MQL4. Советник получает котировки через внешние источники данных — Global Trade Station 2 и Saxo Bank — и отображает их на графике в виде горизонтальных линий и текстовых меток. На экране показываются текущие значения бида, спреда, уровня сигнала и параметров риска. Советник способен открывать позиции BUY и SELL с управлением стоп-лоссом и тейк-профитом, поддерживает ручной и автоматический режимы исполнения ордеров, а также режим хеджирования для управления встречными позициями.

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

НастройкаОписание
settings1 Описание блока настроек 1 — Текстовый параметр для идентификации группы настроек
symbol1 Торговый символ — Текстовый параметр, задающий инструмент для работы
MinimumLevel Минимальный уровень — Числовой порог для расчёта уровня входа
sdvig_bid Сдвиг цены bid — Целочисленный сдвиг значения bid в пунктах
Magic Magic-номер — Целочисленный идентификатор ордеров советника
Slippage Допустимое проскальзывание — Числовой параметр максимального допустимого проскальзывания
settings2 Описание блока настроек 2 — Текстовый параметр для идентификации группы настроек
RiskPercent Риск в процентах — Целочисленный параметр процента риска от средств
Lots Размер лота — Числовой параметр размера позиции
max_Lots Максимальный лот — Числовой верхний предел размера позиции
StopLoss Стоп-лосс — Целочисленный уровень стоп-лосса
TakeProfit Тейк-профит — Целочисленный уровень тейк-профита
FixTP Фиксированный тейк-профит — Числовой параметр фиксированного тейк-профита
FixSL Фиксированный стоп-лосс — Числовой параметр фиксированного стоп-лосса
useSLTP Использовать фиксированные стопы — Переключатель режима фиксированных стоп-лосса и тейк-профита
NTrades Максимальное число сделок — Целочисленный лимит одновременных сделок
settings3 Описание блока настроек 3 — Текстовый параметр для идентификации группы настроек
UseHedge Режим хеджирования — Переключатель включения хеджирования
TimeRem Время ожидания — Целочисленный параметр времени ожидания в минутах
settings4 Описание блока настроек 4 — Текстовый параметр для идентификации группы настроек
HandOperate Ручное управление — Переключатель ручного режима работы советника
MarketOrInstant Тип исполнения — Целочисленный выбор типа исполнения ордера
settings5 Описание блока настроек 5 — Текстовый параметр для идентификации группы настроек
UseGTS2 Использовать GTS2 — Переключатель источника котировок Global Trade Station 2
UseSaxoTrader Использовать SaxoTrader — Переключатель источника котировок Saxo Bank
Получить полный код

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

#import "stdlib.ex4"
   string ErrorDescription(int a0); // DA69CBAFF4D38B87377667EEC549DE5A
#import "SaxoLib.dll"
   void GetRatesSaxoByCode(string a0, string a1);
   void GetRatesGTByCode(string a0, string a1);
   void initialize();
#import

string G_text_76 = "www.westernpips.com || Newest Universal 10 : Global Trade Station 2, Saxo Bank";
extern string settings1 = "????????? ???????? ????";
extern string symbol1 = "EURUSD";
extern double MinimumLevel = 4.0;
extern int sdvig_bid = 0;
extern int Magic = 401;
extern double Slippage = 1.0;
extern string settings2 = "???? ??????????";
extern int RiskPercent = 0;
extern double Lots = 0.1;
extern double max_Lots = 99.9;
extern int StopLoss = 15;
int Gi_156;
extern int TakeProfit = 50;
extern double FixTP = 1.0;
extern double FixSL = 7.0;
extern bool useSLTP = TRUE;
extern int NTrades = 3;
extern string settings3 = "????????? ?????? ???????????? ???????";
extern bool UseHedge = TRUE;
extern int TimeRem = 240;
extern string settings4 = "????????? ?????? ?????? ????????";
extern bool HandOperate = TRUE;
extern int MarketOrInstant = 1;
extern string settings5 = "????? ?????????? ?????????";
extern bool UseGTS2 = FALSE;
extern bool UseSaxoTrader = TRUE;
double Gd_236;
int Gi_244 = 0;
int Gi_248 = 0;
bool Gi_252 = TRUE;
bool Gi_256 = TRUE;
bool Gi_260 = TRUE;
bool Gi_264 = FALSE;
int Gi_unused_268 = 1;
string G_symbol_272 = "";
string Gs_unused_280 = "";
string Gs_dummy_288;
string Gs_dummy_296;
string Gs_304;
string Gs_dummy_312;
string G_symbol_320;
string G_text_328;
string Gs_dummy_336;
string Gs_dummy_344;
int Gi_352 = 3;
int Gi_356 = 300;
int Gi_360 = 1;
int Gi_364;
int G_fontsize_368;
int G_fontsize_372;
int G_digits_376;
int Gi_380;
int G_ticket_392;
int G_pos_396;
int G_count_400;
int Gi_unused_404;
double Gd_408 = 0.0;
double G_point_440;
double Gd_448;
double Gd_456;
double Gd_464;
double Gd_472;
double Gd_480;
double Gd_496;
double Gd_504;
double Gd_512;
double Gd_520;
double Gd_528;
double Gd_552;
double G_bid_560;
double G_ask_568;
double G_marginrequired_576;
double G_lotstep_584;
double Gd_592;
double Gd_600;
int G_color_608 = Green;
double Gd_612;
double Gd_620;
string Gs_644 = "111111111111111111111111111111111111111111111111111111111111111111111111111111";
bool Gi_652;
bool Gi_656;
bool Gi_660;
bool Gi_664;
bool Gi_668;
bool Gi_672;
int Gi_676;
int Gi_680;
int Gi_684;
int Gi_688;
int Gi_692;
int Gi_696;
int Gi_700;
int Gi_704;
int Gi_708;
int Gi_712;
int Gi_716;
int Gi_720;
double Gd_724;
double Gd_732;
double Gd_740;

int deinit() {
   ObjectDelete("RMTGL");
   ObjectDelete("bid_saxo");
   ObjectDelete("bid_label");
   ObjectDelete("ask_label");
   ObjectDelete("ask_saxo");
   ObjectsDeleteAll();
   Comment("");
   return (0);
}

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

double f0_2(string As_0, int Ai_8) {
   double str2dbl_20;
   int Li_16 = StringFind(As_0, "!", 0);
   string Ls_28 = StringSubstr(As_0, Li_16 + 1);
   int Li_36 = StringFind(Ls_28, ",", 0);
   if (Li_36 > 0) Ls_28 = StringSetChar(Ls_28, Li_36, '.');
   Li_36 = StringFind(Ls_28, ",", 0);
   if (Li_36 > 0) Ls_28 = StringSetChar(Ls_28, Li_36, '.');
   Li_16 = StringFind(Ls_28, "!", 0);
   if (Ai_8 == 0) str2dbl_20 = StrToDouble(StringSubstr(Ls_28, 0, Li_16));
   else str2dbl_20 = StrToDouble(StringSubstr(Ls_28, Li_16 + 1, 7));
   return (str2dbl_20);
}

int f0_13() {
   double Ld_0;
   double Ld_8;
   double Ld_16;
   int Li_24;
   if (RiskPercent > 0) {
      Ld_0 = NormalizeDouble(NormalizeDouble(AccountEquity() / G_marginrequired_576, 2) * RiskPercent / 100.0, 2);
      Ld_8 = Ld_0;
      Li_24 = Ld_8 / G_lotstep_584;
      Ld_16 = Li_24 * G_lotstep_584;
      Gd_464 = Ld_16;
      if (Gd_464 < Gd_592) Gd_464 = Gd_592;
      if (Gd_464 > Gd_600) Gd_464 = Gd_600;
      Lots = Gd_464;
   }
   if (Lots > max_Lots) Lots = max_Lots;
   return (0);
}

int f0_10() {
   double price_4;
   if (OrdersTotal() > 0) {
      for (int pos_0 = 0; pos_0 < OrdersTotal(); pos_0++) {
         OrderSelect(pos_0, SELECT_BY_POS, MODE_TRADES);
         if (OrderType() == OP_BUY) {
            if (OrderMagicNumber() == Magic) {
               price_4 = NormalizeDouble(OrderOpenPrice(), G_digits_376) + TakeProfit * G_point_440;
               if (NormalizeDouble(OrderTakeProfit(), G_digits_376) != price_4) OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), price_4, 0, Red);
            }
         }
      }
   }
   return (0);
}

int f0_9() {
   double price_4;
   if (OrdersTotal() > 0) {
      for (int pos_0 = 0; pos_0 < OrdersTotal(); pos_0++) {
         OrderSelect(pos_0, SELECT_BY_POS, MODE_TRADES);
         if (OrderType() == OP_SELL) {
            if (OrderMagicNumber() == Magic) {
               price_4 = NormalizeDouble(OrderOpenPrice(), G_digits_376) - TakeProfit * G_point_440;
               if (NormalizeDouble(OrderTakeProfit(), G_digits_376) != price_4) OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), price_4, 0, Red);
            }
         }
      }
   }
   return (0);
}

int f0_0() {
   double price_4;
   if (OrdersTotal() > 0) {
      for (int pos_0 = 0; pos_0 < OrdersTotal(); pos_0++) {
         OrderSelect(pos_0, SELECT_BY_POS, MODE_TRADES);
         if (OrderType() == OP_BUY) {
            if (OrderMagicNumber() == Magic) {
               price_4 = NormalizeDouble(OrderOpenPrice(), G_digits_376) - Gi_156 * G_point_440;
               if (NormalizeDouble(OrderStopLoss(), G_digits_376) != price_4) OrderModify(OrderTicket(), OrderOpenPrice(), price_4, OrderTakeProfit(), 0, Red);
            }
         }
      }
   }
   return (0);
}

int f0_7() {
   double price_4;
   if (OrdersTotal() > 0) {
      for (int pos_0 = 0; pos_0 < OrdersTotal(); pos_0++) {
         OrderSelect(pos_0, SELECT_BY_POS, MODE_TRADES);
         if (OrderType() == OP_SELL) {
            if (OrderMagicNumber() == Magic) {
               price_4 = NormalizeDouble(OrderOpenPrice(), G_digits_376) + Gi_156 * G_point_440;
               if (NormalizeDouble(OrderStopLoss(), G_digits_376) != price_4) OrderModify(OrderTicket(), OrderOpenPrice(), price_4, OrderTakeProfit(), 0, Red);
            }
         }
      }
   }
   return (0);
}

void f0_6() {
   for (int pos_0 = 0; pos_0 < OrdersTotal(); pos_0++) {
      if (OrderSelect(pos_0, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderSymbol() == G_symbol_320 && OrderMagicNumber() == Magic) {
            if (TimeCurrent() - OrderOpenTime() >= Gi_360) {
               if (OrderType() == OP_BUY) {
                  Gd_512 = MarketInfo(OrderSymbol(), MODE_BID) - OrderOpenPrice();
                  Gd_528 = Gd_552 * G_point_440;
                  Gd_528 = NormalizeDouble(Gd_528, G_digits_376);
                  if (Gd_512 >= Gd_528) {
                     OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID) + Gi_244 * G_point_440, Slippage);
                     f0_11();
                     return;
                  }
               }
               if (OrderType() == OP_SELL) {
                  Gd_520 = OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_ASK);
                  Gd_528 = Gd_552 * G_point_440;
                  Gd_528 = NormalizeDouble(Gd_528, G_digits_376);
                  if (Gd_520 >= Gd_528) {
                     OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK) - Gi_244 * G_point_440, Slippage);
                     f0_11();
                     return;
                  }
               }
            }
         }
      }
   }
}

void f0_3() {
   for (int pos_16 = 0; pos_16 < OrdersTotal(); pos_16++) {
      if (OrderSelect(pos_16, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderSymbol() == G_symbol_320 && OrderMagicNumber() == Magic) {
            if (TimeCurrent() - OrderOpenTime() >= Gi_360) {
               if (OrderType() == OP_BUY) {
                  Gd_512 = OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_BID);
                  Gd_512 = NormalizeDouble(Gd_512, G_digits_376);
                  Gd_528 = Gd_236 * G_point_440;
                  Gd_528 = NormalizeDouble(Gd_528, G_digits_376);
                  if (Gd_512 >= Gd_528) {
                     OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID) + Gi_244 * G_point_440, Slippage);
                     f0_11();
                     return;
                  }
               }
               if (OrderType() == OP_SELL) {
                  Gd_520 = MarketInfo(OrderSymbol(), MODE_ASK) - OrderOpenPrice();
                  Gd_520 = NormalizeDouble(Gd_520, G_digits_376);
                  Gd_528 = Gd_236 * G_point_440;
                  Gd_528 = NormalizeDouble(Gd_528, G_digits_376);
                  if (Gd_520 >= Gd_528) {
                     OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK) - Gi_244 * G_point_440, Slippage);
                     f0_11();
                     return;
                  }
               }
            }
         }
      }
   }
}

void f0_11() {
   string Ls_0;
   if (OrderType() == OP_BUY) Ls_0 = "BUY";
   if (OrderType() == OP_SELL) Ls_0 = "SELL";
   string str_concat_8 = StringConcatenate(AccountNumber(), " update");
   string str_concat_16 = StringConcatenate("OrderProfit ", DoubleToStr(OrderProfit(), 2), ", Balance ", DoubleToStr(AccountBalance(), 2), ", Equity ", DoubleToStr(AccountEquity(), 2), 
      "\n\n", "#", OrderTicket(), " ", Ls_0, " ", DoubleToStr(OrderLots(), 2), " ", G_symbol_320, " @ ", DoubleToStr(OrderOpenPrice(), G_digits_376), " close @ ", DoubleToStr(OrderClosePrice(), G_digits_376), 
   "\n\n", G_text_76);
   SendMail(str_concat_8, str_concat_16);
}

int f0_1() {
   Gd_448 = MinimumLevel;
   if (Gi_252) {
      if (Gd_408 > 4.0) {
         if (Gd_408 > Gd_456) Gd_448 = MinimumLevel + (Gd_408 - Gd_456) / 2.0;
         if (2.0 * MathAbs(Gd_456) < MathAbs(Gd_408)) Gd_448 = MinimumLevel + (Gd_408 - Gd_456);
      }
   }
   Gd_552 = FixTP;
   if (Gd_456 < MathAbs(Gd_480)) Gd_552 = TakeProfit;
   if (Gd_448 < MinimumLevel) Gd_448 = MinimumLevel;
   G_text_328 = G_symbol_320 + " bid=" + DoubleToStr(Gd_472, 5) + " " + "(" + DoubleToStr(Gd_480, 1) + ") " + DoubleToStr(Gd_448 + Gd_456, 1) + " spread=" + DoubleToStr(Gd_408, 1) + " " + "(" + DoubleToStr(Gd_456, 1) + ")" 
   + "\n";
   return (0);
}

int f0_15() {
   double global_var_0 = GlobalVariableGet("proverka_bid_" + G_symbol_320);
   double global_var_8 = GlobalVariableGet("proverka_ask_" + G_symbol_320);
   double global_var_16 = GlobalVariableGet("proverka_tik_" + AccountNumber());
   if (Gd_472 == global_var_0 && Gd_496 == global_var_8) {
      if (GetTickCount() - global_var_16 > 1000 * Gi_352) {
         Gd_480 = 0;
         if (Gi_264) {
            Gs_304 = Gs_304 + G_symbol_320 + "Datafeed broke " + DoubleToStr((GetTickCount() - global_var_16) / 1000.0, 0) + " s ago" 
            + "\n";
         }
      }
   } else {
      GlobalVariableSet("proverka_bid_" + G_symbol_320, Gd_472);
      GlobalVariableSet("proverka_ask_" + G_symbol_320, Gd_496);
      GlobalVariableSet("proverka_tik_" + AccountNumber(), GetTickCount());
   }
   if (GetTickCount() - GlobalVariableGet("proverka_zapusk_") < 1000 * (Gi_352 * 2)) {
      Gd_480 = 0;
      if (Gd_612 > 0.0 && Gd_612 < 100.0) {
         Gs_304 = "==========" 
         + "\n";
         Gs_304 = Gs_304 + "ETA >> " + DoubleToStr((1000 * (Gi_352 * 2) - (GetTickCount() - GlobalVariableGet("proverka_zapusk_"))) / 1000.0, 0) + " seconds" 
         + "\n";
         Gs_304 = Gs_304 + "==========" 
         + "\n";
      }
   }
   return (0);
}

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

int f0_4() {
   string Ls_unused_16;
   if (ObjectFind("bid_saxo") == -1) {
      ObjectCreate("bid_saxo", OBJ_HLINE, 0, TimeCurrent(), Gd_472);
      ObjectSet("bid_saxo", OBJPROP_COLOR, Yellow);
      ObjectSet("bid_saxo", OBJPROP_STYLE, STYLE_SOLID);
   }
   ObjectMove("bid_saxo", 0, TimeCurrent(), Gd_472);
   if (Gi_260)
      if (ObjectFind("bid label") == -1) ObjectCreate("bid label", OBJ_TEXT, 0, Time[0], Low[0] - 2.0 * G_point_440);
   if (Gd_480 >= 0.0) ObjectSetText("bid label", DoubleToStr(Gd_480, 1), G_fontsize_372, "Arial", Lime);
   else ObjectSetText("bid label", DoubleToStr(Gd_480, 1), G_fontsize_372, "Arial", Red);
   ObjectMove("bid label", 0, Time[0], Low[0] - 2.0 * G_point_440);
   if (ObjectFind("ask label") == -1) ObjectCreate("ask label", OBJ_TEXT, 0, Time[0], High[0] + 2.0 * G_point_440);
   ObjectSetText("ask label", DoubleToStr((Ask - Bid) / G_point_440, 1), 8, "Arial", Red);
   ObjectMove("ask label", 0, Time[0], High[0] + 2.0 * G_point_440);
   if (ObjectFind("RMTGL") == -1) {
      ObjectCreate("RMTGL", OBJ_LABEL, 0, 0, 0);
      ObjectSet("RMTGL", OBJPROP_CORNER, 1);
      ObjectSet("RMTGL", OBJPROP_XDISTANCE, 20);
      ObjectSet("RMTGL", OBJPROP_YDISTANCE, 15);
   }
   ObjectSetText("RMTGL", DoubleToStr(Gd_480, 1), G_fontsize_368, "Arial", G_color_608);
   if (ObjectFind("ask_saxo") == -1) {
      ObjectCreate("ask_saxo", OBJ_HLINE, 0, TimeCurrent(), Gd_496);
      ObjectSet("ask_saxo", OBJPROP_COLOR, Red);
      ObjectSet("ask_saxo", OBJPROP_STYLE, STYLE_SOLID);
   }
   ObjectMove("ask_saxo", 0, TimeCurrent(), Gd_496);
   WindowRedraw();
   return (0);
}

int f0_14() {
   G_marginrequired_576 = MarketInfo(Symbol(), MODE_MARGINREQUIRED);
   G_lotstep_584 = MarketInfo(Symbol(), MODE_LOTSTEP);
   Gd_592 = MarketInfo(Symbol(), MODE_MINLOT);
   Gd_600 = MarketInfo(Symbol(), MODE_MAXLOT);
   if (G_marginrequired_576 == 0.0) {
      G_marginrequired_576 = 1000;
      Print("MODE_MARGINREQUIRED error");
   }
   if (G_lotstep_584 == 0.0) {
      G_lotstep_584 = 0.1;
      Print("MODE_LOTSTEP error");
   }
   if (Gd_592 == 0.0) {
      Gd_592 = 0.1;
      Print("MODE_MINLOT error");
   }
   if (Gd_600 == 0.0) {
      Gd_600 = 1000;
      Print("MODE_MAXLOT error");
   }
   return (0);
}

void f0_5() {
   for (int pos_0 = OrdersTotal() - 1; pos_0 >= 0; pos_0--) {
      if (OrderSelect(pos_0, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderSymbol() == G_symbol_320 && OrderMagicNumber() == Magic) {
            if (OrderTicket() == Gi_676 || OrderTicket() == Gi_684 || OrderTicket() == Gi_692 || OrderTicket() == Gi_700 || OrderTicket() == Gi_708 || OrderTicket() == Gi_716) {
               if (OrderOpenTime() + TimeRem > TimeCurrent()) continue;
               if (OrderTicket() == Gi_676 && Gi_652 == TRUE) {
                  Print("???? 1");
                  if (OrderCloseBy(Gi_676, Gi_680, White) == FALSE) break;
                  Gi_652 = FALSE;
                  Gi_676 = -1;
                  Gi_680 = -1;
               }

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

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

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

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

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

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

Стоимость полного кода
3 176,40₽ ≈ $38.82