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

MegaDroid

megadroid~.mq4

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

ares_indicator.pineTradingView · 1 общих теговgold_trend_revers.mq5MQL5 / MetaTrader 5 · 1 общих тегов!!!-mt4 x-xardg-rsi.mq5MQL5 / MetaTrader 5 · 1 общих тегов! cycle-identifier.mq5MQL5 / MetaTrader 5 · 1 общих тегов!!! rsi ma simple+arrows 1.2 (mtf).mq5MQL5 / MetaTrader 5 · 1 общих теговprecisionflowea.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

MegaDroid — торговый советник для MetaTrader 4, разработанный командой Forex MegaDroid Team. Работает на платформе MQL4 и использует внешнюю библиотеку MegaDroid.dll для выполнения основных торговых операций и расчётов.
Советник реализует две торговые стратегии (Strategy1 и Strategy2), основанные на анализе технических индикаторов — RSI, CCI и скользящей средней. Для каждой стратегии и для долларового усреднения используются отдельные магические номера для отслеживания ордеров.
Встроены функции управления рисками: режим долларового усреднения (DollarAveraging), защита прибыли (SecureProfit), учёт волатильности (VolatilityAware), режим восстановления (RecoveryMode) и удалённый безопасный режим (RemoteSafetyMode). Поддерживается отправка уведомлений по электронной почте.

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

НастройкаОписание
_1 Параметры системы — Заголовок группы параметров системы.
Stealth Режим скрытности — Режим скрытности — при активации ордера открываются без фиксированных стоп-лосса и тейк-профита до ручной модификации.
Aggressive Агрессивный режим — Агрессивный режим торговли — при активации советник может работать с более рискованными параметрами входа в позицию.
GmtOffset Смещение GMT — Ручная настройка смещения GMT для корректного расчёта торгового времени.
NFA Режим NFA — Режим NFA — ограничение количества одновременно открытых ордеров в соответствии с правилами NFA.
AutoLocalGmtOffset Автоматическое смещение местного GMT — Автоматическое определение смещения местного часового пояса от серверного времени.
S1_Reference Магический номер стратегии 1 — Магический номер для идентификации ордеров стратегии 1.
S2_Reference Магический номер стратегии 2 — Магический номер для идентификации ордеров стратегии 2.
S1_DAReference Магический номер DA стратегии 1 — Магический номер для идентификации ордеров долларового усреднения стратегии 1.
S2_DAReference Магический номер DA стратегии 2 — Магический номер для идентификации ордеров долларового усреднения стратегии 2.
ReceiptCode Код активации — Код активации для авторизации работы советника.
_2 Комментарий позиции — Заголовок группы параметров комментариев позиций.
TopPadding Верхний отступ — Верхний отступ текстовых меток на графике.
LeftPadding Левый отступ — Левый отступ текстовых меток на графике.
TextColor1 Цвет текста 1 — Основной цвет текста информационных меток на графике.
TextColor2 Цвет текста 2 — Вспомогательный цвет текста для меток состояния и ошибок на графике.
TextColor3 Цвет текста 3 — Цвет текста для ссылок и выделенных элементов на графике.
_3 Параметры стратегии — Заголовок группы параметров стратегии.
RemoteSafetyMode Удалённый безопасный режим — Удалённый безопасный режим — при активации блокирует торговлю, если сервер недоступен или в небезопасном состоянии.
Slippage Проскальзывание — Допустимое проскальзывание цены при исполнении ордеров (в пунктах).
SendEmails Отправка уведомлений по email — Переключатель отправки уведомлений по электронной почте при открытии и закрытии ордеров.
OrderComments Комментарии к ордерам — Текстовый комментарий, добавляемый к каждому открытому ордеру.
_4 Управление ордерами — Заголовок группы управления ордерами.
LotSize Размер лота — Фиксированный размер лота при ручном режиме управления размером позиции.
_5 Управление пропорциональными ордерами — Заголовок группы управления пропорциональными ордерами.
RiskLevel Уровень риска — Уровень риска, определяющий пропорцию используемого маржинального капитала для расчёта размера лота.
RecoveryMode Режим восстановления — Режим восстановления — при активации увеличивает размер лота при убытке для последующего возврата к безубыточности.
ConsiderCommission Учёт комиссии — Учёт комиссии брокера при расчёте прибыльности ордеров и условий закрытия.
_6 Расширенная стратегия — Заголовок группы расширенных параметров стратегии.
VolatilityAware Учёт волатильности — Учёт волатильности — корректировка параметров ордеров на основе текущей волатильности рынка.
DollarAveraging Долларовое усреднение — Режим долларового усреднения — при убытке на позиции открывается дополнительный ордер для усреднения средней цены.
SecureProfit Защита прибыли — Защита прибыли — при достижении определённой прибыли в пунктах частично закрывает позицию и переносит стоп-лосс в безубыток.
Получить полный код

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

/*
   G e n e r a t e d  by ex4-to-mq4 decompiler FREEWARE 4.0.509.5
   Website:  HTt p :/ /W W W.M ETA Q uO tE s. n E t
   E-mail : Su pPo rT@mETAQ uOtE s. n e t
*/

#include <WinUser32.mqh>
#import "MegaDroid.dll"
   bool CheckVersion(string a0);
   int GetParams(int a0, int a1, int a2, double& a3[]);
   void Activate(int a0, string a1, string a2, string a3, int a4, string a5, int a6);
   int GetState();
   bool GetStateMessage(string a0, int a1, string a2, int a3);
   bool GetInfoMessage(string a0, int a1, string a2, int a3);
   bool GetAdvMessage(string a0, int a1, string a2, int a3);
   void GetStatus(int a0, int a1, double a2, double a3, double a4);
   int Increment(string a0, int a1, int a2, int a3);
   bool Decrement(int a0);
   bool IsTradeTime(int a0, int a1, int a2, int a3);
   bool s1_SetRules(int a0, int a1, int a2, double a3, double a4, double a5, double a6, double a7);
   bool s1_Buy(int a0, double a1);
   bool s1_Sell(int a0, double a1);
   bool s2_SetRules(int a0, int a1, int a2, double a3, double a4, double a5, double a6);
   bool s2_Buy(int a0, double a1, double a2);
   bool s2_Sell(int a0, double a1, double a2);
   bool s1_Init(int a0, double& a1[]);
   bool s2_Init(int a0, double& a1[]);
   void AddLink(int a0, int a1, int a2, int a3, int a4, string a5);
   void LinksBegin(int a0);
   void LinksEnd(int a0);
#import

extern string Ver.1.41 = "";
extern string _1 = "System Parameters";
extern bool Stealth = TRUE;
extern bool Aggressive = TRUE;
extern double GmtOffset = 0.0;
extern bool NFA = FALSE;
extern bool AutoLocalGmtOffset = TRUE;
extern bool AutoServerGmtOffset = TRUE;
extern int S1_Reference = 77777773;
extern int S2_Reference = 33333337;
extern int S1_DAReference = 55555551;
extern int S2_DAReference = 11111115;
extern string ReceiptCode = "";
extern string _2 = "Comment Position";
extern int TopPadding = 30;
extern int LeftPadding = 20;
extern color TextColor1 = Orange;
extern color TextColor2 = Orange;
extern color TextColor3 = C'0x64,0x64,0xFF';
extern string _3 = "Strategy Parameters";
extern bool RemoteSafetyMode = TRUE;
extern int Slippage = 3;
extern bool SendEmails = FALSE;
extern string OrderComments = "";
extern string _4 = "Order Management";
extern double LotSize = 0.1;
extern string _5 = "Ratio Order Management";
extern double RiskLevel = 0.2;
extern bool RecoveryMode = FALSE;
extern bool ConsiderCommission = TRUE;
extern string _6 = "Advanced Strategy";
extern bool VolatilityAware = TRUE;
extern bool DollarAveraging = TRUE;
extern bool SecureProfit = TRUE;
double Gd_260 = 2.0;
double G_pips_268 = 5.0;
double G_pips_276 = 5.0;
bool Gi_284 = TRUE;
bool Gi_288 = TRUE;
int Gi_292 = 3;
bool Gi_296 = TRUE;
int Gi_300;
int G_datetime_304;
int Gi_308;
double G_hour_312;
int Gi_320;
int Gi_unused_324;
int G_spread_328;
int G_spread_332;
int Gi_336;
double Gd_340;
double Gd_348;
bool Gi_364 = TRUE;
int Gi_368 = 0;
int Gi_372 = 0;
bool Gi_376 = FALSE;
int Gi_380;
int Gi_unused_384 = 1;
int G_global_var_388 = 0;
bool Gi_392 = FALSE;
double Gd_396 = 0.0;
string Gs_404 = "";
string Gs_412 = "";
string Gs_420 = "";
string Gs_428 = "";
string Gs_436 = "";
string Gs_444 = "";
string Gs_452;
string Gs_460;
string Gs_468;
int G_timeframe_476 = PERIOD_M15;
int Gi_480 = 10;
int Gi_484 = 50;
int Gi_488 = 200;
int Gi_492 = 20;
int Gi_496 = 0;
int Gi_500 = 16711680;
int Gi_504 = 255;
int G_period_508 = 6;
int G_period_512 = 20;
int G_period_516 = 8;
bool Gi_520 = TRUE;
bool Gi_524 = TRUE;
int Gi_528 = 12;
bool Gi_532 = TRUE;
int Gi_536 = 20;
bool Gi_540 = TRUE;
bool Gi_544 = FALSE;
double Gd_548 = 1.0;
double Gd_556 = 24.0;
bool Gi_564 = TRUE;
double Gd_568 = 1.0;
double Gd_576 = 1.0;
bool Gi_584 = FALSE;
int Gi_588 = 0;
bool Gi_592 = TRUE;
bool G_bool_596 = TRUE;
double Gd_600 = 2.0;
double Gd_608 = 1.5;
bool G_bool_616 = TRUE;
double Gd_620 = 15.0;
double Gd_628 = 1.5;
double Gd_636 = 4.0;
double Gd_644 = 10.0;
int G_timeframe_652 = PERIOD_M5;
int Gi_656 = 35;
int Gi_660 = 60;
int Gi_664 = 200;
int Gi_668 = 20;
double Gd_672 = 1.0;
int Gi_680 = 0;
int Gi_684 = 16748574;
int Gi_688 = 9639167;
int Gi_692 = 36;
int G_period_696 = 168;
int G_period_700 = 275;
bool Gi_704 = TRUE;
bool Gi_708 = FALSE;
bool Gi_712 = TRUE;
double Gd_716 = 1.0;
double Gd_724 = 12.0;
double Gd_732 = 24.0;
bool Gi_740 = FALSE;
bool Gi_744 = FALSE;
int Gi_748 = 0;
bool Gi_752 = TRUE;
bool G_bool_756 = TRUE;
double Gd_760 = 2.0;
double Gd_768 = 1.5;
bool G_bool_776 = TRUE;
double Gd_780 = 15.0;
double Gd_788 = 1.5;
double Gd_796 = 4.0;
double Gd_804 = 10.0;
int Gi_812 = 0;
int Gi_816 = 0;
int Gi_820 = 0;
int Gi_824;
int Gi_828;
int Gi_832;
int Gi_836;
bool Gi_840 = FALSE;
double Gd_844 = 0.0;
double Gd_852 = 0.0;
bool Gi_860 = FALSE;
bool Gi_864;
int G_count_868 = 0;
bool Gi_872;
int Gi_876 = 0;
int G_ticket_880 = -2;
int G_ticket_884 = -2;
double G_order_profit_888 = 0.0;
double G_order_profit_896 = 0.0;
bool Gi_904;
int Gi_908 = 0;
int G_ticket_912 = -2;
int G_ticket_916 = -2;
double G_order_profit_920 = 0.0;
double G_order_profit_928 = 0.0;
string Gsa_936[] = {".", "..", "...", "....", "....."};
int Gi_unused_940 = 0;
int Gi_unused_944 = 0;
string Gs_948 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int Gi_unused_956 = 0;
int Gi_unused_960 = 0;
double Gda_unused_964[];
double Gd_968 = 2.0;
int Gi_976 = 0;
int Gi_980 = 0;
double G_irsi_984;
double G_irsi_992;
double G_irsi_1000;
double G_irsi_1008;
double G_icci_1016;
double G_icci_1024;
double G_icci_1032;
double G_ima_1056;
bool Gi_1064 = TRUE;
bool Gi_1068 = TRUE;
double G_ihigh_1072 = 0.0;
double G_ilow_1080 = 0.0;
bool Gi_1088 = FALSE;
int Gi_1092 = 0;
int Gi_1096 = 0;
int Gi_1100 = 0;
int Gi_1104 = 0;
int Gi_1108 = 0;
int Gi_1112 = 0;
int Gi_1116;
int G_ticket_1120 = -2;
int G_ticket_1124 = -2;
int G_datetime_1128 = 0;
int G_datetime_1132 = 0;
int G_ticket_1136 = -1;
int G_datetime_1140 = 0;
int G_ticket_1144 = -1;
int G_datetime_1148 = 0;
int G_ticket_1152 = -1;
int G_ticket_1156 = -1;
int G_ticket_1160 = 0;
int G_ticket_1164 = -1;
bool Gi_1168 = TRUE;
int G_datetime_1172 = 0;
int G_datetime_1176 = 0;
int Gi_1180 = 0;
double G_icci_1184;
double G_icci_1192;
double G_ihigh_1200;
double G_ilow_1208;
double G_ihigh_1216;
double G_ilow_1224;
bool Gi_1232 = FALSE;
int Gi_1236 = 0;
int Gi_1240 = 0;
int Gi_1244 = 0;
int Gi_1248 = 0;
int G_ticket_1252 = -2;
int G_ticket_1256 = -2;
int G_ticket_1260 = -1;
int Gi_1264;
int Gi_1268;
int G_datetime_1272;
int G_datetime_1276;
double G_order_open_price_1280;
int G_ticket_1288 = -1;
int Gi_1292;
int Gi_1296;
int G_datetime_1300;
int G_datetime_1304;
double G_order_open_price_1308;
int G_ticket_1316 = 0;
int G_ticket_1320 = -1;
int G_ticket_1324 = 0;
int G_ticket_1328 = -1;
bool Gi_1332 = TRUE;
int G_datetime_1336 = 0;
int G_datetime_1340 = 0;
bool Gi_1344 = FALSE;

string f0_50(int Ai_0) {
   string Ls_ret_4;
   switch (Ai_0) {
   case 0:
   case 1:
      Ls_ret_4 = "no error";
      break;
   case 2:
      Ls_ret_4 = "common error";
      break;
   case 3:
      Ls_ret_4 = "invalid trade parameters";
      break;
   case 4:
      Ls_ret_4 = "trade server is busy";
      break;
   case 5:
      Ls_ret_4 = "old version of the client terminal";
      break;
   case 6:
      Ls_ret_4 = "no connection with trade server";
      break;
   case 7:
      Ls_ret_4 = "not enough rights";
      break;
   case 8:
      Ls_ret_4 = "too frequent requests";
      break;
   case 9:
      Ls_ret_4 = "malfunctional trade operation (never returned error)";
      break;
   case 64:
      Ls_ret_4 = "account disabled";
      break;
   case 65:
      Ls_ret_4 = "invalid account";
      break;
   case 128:
      Ls_ret_4 = "trade timeout";
      break;
   case 129:
      Ls_ret_4 = "invalid price";
      break;
   case 130:
      Ls_ret_4 = "invalid stops";
      break;
   case 131:
      Ls_ret_4 = "invalid trade volume";
      break;
   case 132:
      Ls_ret_4 = "market is closed";
      break;
   case 133:
      Ls_ret_4 = "trade is disabled";
      break;
   case 134:
      Ls_ret_4 = "not enough money";
      break;
   case 135:
      Ls_ret_4 = "price changed";
      break;
   case 136:
      Ls_ret_4 = "off quotes";
      break;
   case 137:
      Ls_ret_4 = "broker is busy (never returned error)";
      break;
   case 138:
      Ls_ret_4 = "requote";
      break;
   case 139:
      Ls_ret_4 = "order is locked";
      break;
   case 140:
      Ls_ret_4 = "long positions only allowed";
      break;
   case 141:
      Ls_ret_4 = "too many requests";
      break;
   case 145:
      Ls_ret_4 = "modification denied because order too close to market";
      break;
   case 146:
      Ls_ret_4 = "trade context is busy";
      break;
   case 147:
      Ls_ret_4 = "expirations are denied by broker";
      break;
   case 148:
      Ls_ret_4 = "amount of open and pending orders has reached the limit";
      break;
   case 149:
      Ls_ret_4 = "hedging is prohibited";
      break;
   case 150:
      Ls_ret_4 = "prohibited by FIFO rules";
      break;
   case 4000:
      Ls_ret_4 = "no error (never generated code)";
      break;
   case 4001:
      Ls_ret_4 = "wrong function pointer";
      break;
   case 4002:
      Ls_ret_4 = "array index is out of range";
      break;
   case 4003:
      Ls_ret_4 = "no memory for function call stack";
      break;
   case 4004:
      Ls_ret_4 = "recursive stack overflow";
      break;
   case 4005:
      Ls_ret_4 = "not enough stack for parameter";
      break;
   case 4006:
      Ls_ret_4 = "no memory for parameter string";
      break;
   case 4007:
      Ls_ret_4 = "no memory for temp string";
      break;
   case 4008:
      Ls_ret_4 = "not initialized string";
      break;
   case 4009:
      Ls_ret_4 = "not initialized string in array";
      break;
   case 4010:
      Ls_ret_4 = "no memory for array\' string";
      break;
   case 4011:
      Ls_ret_4 = "too long string";
      break;
   case 4012:
      Ls_ret_4 = "remainder from zero divide";
      break;
   case 4013:
      Ls_ret_4 = "zero divide";
      break;
   case 4014:
      Ls_ret_4 = "unknown command";
      break;
   case 4015:
      Ls_ret_4 = "wrong jump (never generated error)";
      break;
   case 4016:
      Ls_ret_4 = "not initialized array";
      break;
   case 4017:
      Ls_ret_4 = "dll calls are not allowed";
      break;
   case 4018:
      Ls_ret_4 = "cannot load library";
      break;
   case 4019:
      Ls_ret_4 = "cannot call function";
      break;
   case 4020:
      Ls_ret_4 = "expert function calls are not allowed";
      break;
   case 4021:
      Ls_ret_4 = "not enough memory for temp string returned from function";
      break;
   case 4022:
      Ls_ret_4 = "system is busy (never generated error)";
      break;
   case 4050:
      Ls_ret_4 = "invalid function parameters count";
      break;
   case 4051:
      Ls_ret_4 = "invalid function parameter value";
      break;
   case 4052:
      Ls_ret_4 = "string function internal error";
      break;
   case 4053:
      Ls_ret_4 = "some array error";
      break;
   case 4054:
      Ls_ret_4 = "incorrect series array using";
      break;
   case 4055:
      Ls_ret_4 = "custom indicator error";
      break;
   case 4056:
      Ls_ret_4 = "arrays are incompatible";
      break;
   case 4057:
      Ls_ret_4 = "global variables processing error";
      break;
   case 4058:
      Ls_ret_4 = "global variable not found";
      break;
   case 4059:
      Ls_ret_4 = "function is not allowed in testing mode";
      break;
   case 4060:
      Ls_ret_4 = "function is not confirmed";
      break;
   case 4061:
      Ls_ret_4 = "send mail error";
      break;
   case 4062:
      Ls_ret_4 = "string parameter expected";
      break;
   case 4063:
      Ls_ret_4 = "integer parameter expected";
      break;
   case 4064:
      Ls_ret_4 = "double parameter expected";
      break;
   case 4065:
      Ls_ret_4 = "array as parameter expected";
      break;
   case 4066:
      Ls_ret_4 = "requested history data in update state";
      break;
   case 4099:
      Ls_ret_4 = "end of file";
      break;
   case 4100:
      Ls_ret_4 = "some file error";
      break;
   case 4101:
      Ls_ret_4 = "wrong file name";
      break;
   case 4102:
      Ls_ret_4 = "too many opened files";
      break;
   case 4103:
      Ls_ret_4 = "cannot open file";
      break;
   case 4104:
      Ls_ret_4 = "incompatible access to a file";
      break;
   case 4105:
      Ls_ret_4 = "no order selected";
      break;
   case 4106:
      Ls_ret_4 = "unknown symbol";
      break;
   case 4107:
      Ls_ret_4 = "invalid price parameter for trade function";
      break;
   case 4108:
      Ls_ret_4 = "invalid ticket";
      break;
   case 4109:
      Ls_ret_4 = "trade is not allowed in the expert properties";
      break;
   case 4110:
      Ls_ret_4 = "longs are not allowed in the expert properties";
      break;
   case 4111:
      Ls_ret_4 = "shorts are not allowed in the expert properties";
      break;
   case 4200:
      Ls_ret_4 = "object is already exist";
      break;
   case 4201:
      Ls_ret_4 = "unknown object property";
      break;
   case 4202:
      Ls_ret_4 = "object is not exist";
      break;
   case 4203:
      Ls_ret_4 = "unknown object type";
      break;
   case 4204:
      Ls_ret_4 = "no object name";
      break;
   case 4205:
      Ls_ret_4 = "object coordinates error";
      break;
   case 4206:
      Ls_ret_4 = "no specified subwindow";
      break;
   default:
      Ls_ret_4 = "unknown error";
   }
   return (Ls_ret_4);
}

int f0_21() {
   double Lda_0[21];
   if (s1_Init(Gi_380, Lda_0)) {
      Gi_480 = Lda_0[0];
      Gi_488 = Lda_0[1];
      Gi_492 = Lda_0[2];
      Gi_496 = Lda_0[3];
      G_period_508 = Lda_0[4];
      G_period_512 = Lda_0[5];
      G_period_516 = Lda_0[6];
      Gd_548 = Lda_0[11];
      Gd_556 = Lda_0[12];
      Gd_568 = Lda_0[13];
      Gd_576 = Lda_0[14];
      Gi_588 = Lda_0[15];
      G_timeframe_476 = Lda_0[20];
      return (1);
   }
   return (0);
}

int f0_16() {
   double Lda_0[17];
   if (s2_Init(Gi_380, Lda_0)) {
      Gi_656 = Lda_0[0];
      Gi_664 = Lda_0[1];
      Gi_668 = Lda_0[2];
      Gd_672 = Lda_0[3];
      Gi_680 = Lda_0[4];
      Gi_692 = Lda_0[5];
      G_period_696 = Lda_0[6];
      G_period_700 = Lda_0[7];
      Gd_716 = Lda_0[8];
      Gd_724 = Lda_0[9];
      Gd_732 = Lda_0[10];
      Gi_748 = Lda_0[11];
      G_timeframe_652 = Lda_0[16];
      return (1);
   }
   return (0);
}

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

void f0_22() {
   string Ls_0 = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
   string Ls_8 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
   if (Gi_368 & 65536 > 0) {
      if (GetStateMessage(Ls_0, 60, Ls_8, 255)) {
         Gs_404 = StringConcatenate(Ls_0, ":");
         Gs_412 = StringTrimLeft(Ls_8);
      } else {
         Gs_404 = "";
         Gs_412 = "";
      }
   }
   if (GetInfoMessage(Ls_0, 60, Ls_8, 255)) {
      Gs_420 = StringConcatenate(Ls_0, ":");
      Gs_428 = StringTrimLeft(Ls_8);
   } else {
      Gs_420 = "";
      Gs_428 = "";
   }
   if (GetAdvMessage(Ls_0, 60, Ls_8, 255)) {
      Gs_436 = StringConcatenate(Ls_0, ":");
      Gs_444 = StringTrimLeft(Ls_8);
      return;
   }
   Gs_436 = "";
   Gs_444 = "";
}

int deinit() {
   Decrement(Gi_380);
   if (IsTesting()) {
      if (!(!IsVisualMode())) return (0);
      f0_37("GmtOffset:");
      f0_37(DoubleToStr(GmtOffset, 1), TextColor2, Gi_816, Gi_812 - 1, 77);
      f0_35();
      f0_37("Digits:");
      f0_37(Digits, TextColor2, Gi_816, Gi_812 - 1, 56);
      f0_37("Spread:");
      f0_37(StringConcatenate(DoubleToStr(G_spread_328 / Gd_340, 1), " (", G_spread_328, " pips)"), TextColor2, Gi_816, Gi_812 - 1, 56);
      f0_35();
      return (0);
   }
   GlobalVariableSet("GV_MegaDroid_MKT", G_global_var_388);
   switch (UninitializeReason()) {
   case REASON_CHARTCLOSE:
   case REASON_REMOVE:
      f0_48(0, Gi_820);
      Gi_820 = 0;
      break;
   case REASON_RECOMPILE:
   case REASON_CHARTCHANGE:
   case REASON_PARAMETERS:
   case REASON_ACCOUNT:
      f0_48(1, Gi_820);
      Gi_820 = 1;
   }
   return (0);
}

double f0_11(bool Ai_0, double Ad_4, double Ad_12 = 0.0) {
   if (Ai_0) return (Ad_4);
   return (Ad_12);
}

string f0_12(bool Ai_0) {
   if (Ai_0) return ("True");
   return ("False");
}

string f0_2(bool Ai_0, string As_4, string As_12 = "") {
   if (Ai_0) return (As_4);
   return (As_12);
}

string f0_30(int Ai_0) {
   switch (Ai_0) {
   case 0:
      return ("Buy");
   case 1:
      return ("Sell");
   }
   return ("Order");
}

string f0_25(int Ai_0) {
   switch (Ai_0) {
   case 1:
      return ("automatic: server");
   case 2:
      return ("automatic: server");
   case 4:
      return ("automatic: local");
   }
   return ("manual");
}

string f0_38(int Ai_0) {
   switch (Ai_0) {
   case 1:
      return ("Correction");
   case 3:
      return ("Upward Impulse");
   case 2:
      return ("Downward Impulse");
   }
   return ("");
}

string f0_14(int Ai_0) {
   int Li_4 = MathMod(Ai_0, 5);
   return (Gsa_936[Li_4]);
}

void f0_41(int Ai_0, int Ai_4 = -1, int Ai_8 = -1) {
   if (Ai_4 == -1) Ai_4 = Gi_816;
   if (Ai_8 == -1) Ai_8 = Gi_812;
   Gi_816 = Ai_4;
   Gi_812 = Ai_8;
   if (Ai_0 & 16384 > 0) f0_37("Authenticated", TextColor1);
   else f0_37("Authentication failed - error(" + Ai_0 + ")", TextColor1);
   if (Ai_0 & 512 > 0) f0_37("Attention: Upgrade available", TextColor1);
   if (Ai_0 & 1024 > 0) f0_37("Error: Upgrade required", TextColor1);
   if (Ai_0 & 1 > 0) f0_37("Error: Internet initialization failed", TextColor1);
   if (Ai_0 & 2 > 0) f0_37("Error: Internet connection failed", TextColor1);
   if (Ai_0 & 4 > 0) f0_37("Error: Invalid account number", TextColor1);
   if (Ai_0 & 8 > 0) f0_37("Error: Invalid account status", TextColor1);
   if (Ai_0 & 16 > 0) f0_37("Error: Dll and Expert versions mismatch", TextColor1);
   if (Ai_0 & 128 > 0) f0_37("Error: Unable to retrieve authentication code", TextColor1);
   if (Ai_0 & 256 > 0) f0_37("Error: Server response failure", TextColor1);
   if (Ai_0 & 2048 > 0) f0_37("Error: Invalid authorisation details", TextColor1);
   if (Ai_0 & 4096 > 0) f0_37("Error: Authorisation declined", TextColor1);
}

string f0_54(int Ai_0) {
   return (StringConcatenate("MegaDroid", " lb: ", Ai_0));
}

void f0_5(int Ai_0, int &Ai_4, int &Ai_8) {
   string name_12 = f0_54(Ai_0);
   if (ObjectFind(name_12) == 0) {
      Ai_4 = ObjectGet(name_12, OBJPROP_XDISTANCE);
      Ai_8 = ObjectGet(name_12, OBJPROP_YDISTANCE);
   }
}

void f0_37(string A_text_0, color A_color_8 = -1, int Ai_12 = -1, double Ad_16 = -1.0, int Ai_24 = 0) {
   if (A_color_8 == CLR_NONE) A_color_8 = TextColor1;
   if (Ai_12 == -1) Ai_12 = Gi_816;
   if (Ad_16 == -1.0) Ad_16 = Gi_812;
   string name_28 = f0_54(Ai_12);
   if (ObjectFind(name_28) != 0) {
      ObjectCreate(name_28, OBJ_LABEL, 0, 0, 0);
      ObjectSet(name_28, OBJPROP_CORNER, 0);
   }
   ObjectSetText(name_28, A_text_0, 9, "Courier New", A_color_8);
   ObjectSet(name_28, OBJPROP_XDISTANCE, Gi_828 + Ai_24);
   ObjectSet(name_28, OBJPROP_YDISTANCE, Gi_824 + 14.0 * Ad_16);
   if (Gi_812 < Ad_16 + 1.0) Gi_812 = Ad_16 + 1.0;
   if (Gi_816 < Ai_12 + 1) Gi_816 = Ai_12 + 1;
   if (Gi_820 < Ai_12) Gi_820 = Ai_12;
}

void f0_35(int Ai_0 = -1, double Ad_4 = -1.0, int Ai_12 = 0) {
   if (Ai_0 == -1) Ai_0 = Gi_816;
   if (Ad_4 == -1.0) Ad_4 = Gi_812;
   f0_37("_______", TextColor2, Ai_0, Ad_4 - 0.3, Ai_12);
   if (Gi_812 < Ad_4 + 1.0) Gi_812 = Ad_4 + 1.0;
}

int f0_44(string As_0, int Ai_8 = -1, int Ai_12 = -1, double Ad_16 = -1.0, int Ai_24 = 0) {
   string Ls_36;
   int Li_52;
   int Li_56;
   string Ls_60;
   string Ls_68;
   string Ls_76;
   string name_84;
   int Li_92;
   int Li_96;
   int Li_28 = 0;
   int Li_32 = 0;
   if (Ai_12 == -1) Ai_12 = Gi_816;
   if (Ad_16 == -1.0) Ad_16 = Gi_812;
   int Li_44 = StringLen(As_0);
   int Li_48 = 0;
   while (Li_32 < Li_44) {
      Li_48 = 0;
      Li_32 = StringFind(As_0, 
      "\n", Li_28);
      if (Li_32 == -1) Li_32 = Li_44;
      else Li_48 = 1;
      Ls_36 = StringSubstr(As_0, Li_28, Li_32 - Li_28);
      if (Ls_36 == "0") {
         f0_35(Ai_12, Ad_16, Ai_24);
         Ai_12++;
      } else {
         Li_52 = StringFind(Ls_36, "<a>");
         Li_56 = -1;
         if (Li_52 >= 0) Li_56 = StringFind(Ls_36, "</a>", Li_52 + 3);
         if (Li_52 >= 0 && Li_56 > 0) {
            if (Li_52 > 0) Ls_60 = StringSubstr(Ls_36, 0, Li_52);
            else Ls_60 = "";
            Ls_68 = StringSubstr(Ls_36, Li_52 + 3, Li_56 - Li_52 - 3);
            Ls_76 = StringSubstr(Ls_36, Li_56 + 4);
            if (StringLen(Ls_60) > 0) {
               f0_37(Ls_60, Ai_8, Ai_12, Ad_16, Ai_24);
               Ai_12++;
            }
            name_84 = f0_54(Ai_12);
            f0_37(Ls_68, TextColor3, Ai_12, Ad_16, Ai_24 + 7 * StringLen(Ls_60));
            Li_92 = ObjectGet(name_84, OBJPROP_XDISTANCE);
            Li_96 = ObjectGet(name_84, OBJPROP_YDISTANCE);
            AddLink(Gi_380, Li_92, Li_96, Li_92 + 7 * StringLen(Ls_68), Li_96 + 14, Ls_68);
            Ai_12++;
            if (StringLen(Ls_76) > 0) {
               f0_37(Ls_76, Ai_8, Ai_12, Ad_16, Ai_24 + 7 * (StringLen(Ls_60) + StringLen(Ls_68)));
               Ai_12++;
            }
         } else {
            if (Li_32 - Li_28 > 60) Li_32 = Li_28 + 60;
            Ls_36 = StringSubstr(As_0, Li_28, Li_32 - Li_28);
            f0_37(Ls_36, Ai_8, Ai_12, Ad_16, Ai_24);
            Ai_12++;
         }
      }
      Li_28 = Li_32 + Li_48;
      Ad_16++;
   }
   return (Ai_12);
}

void f0_48(int Ai_0, int Ai_4) {
   for (int Li_8 = Ai_0; Li_8 <= Ai_4; Li_8++) ObjectDelete(f0_54(Li_8));
}

double f0_18(string As_0) {
   int Li_24;
   As_0 = f0_45(As_0);
   int str_len_8 = StringLen(As_0);
   double Ld_ret_12 = 0;
   for (int Li_20 = 0; Li_20 < str_len_8; Li_20++) {
      Li_24 = StringFind(Gs_948, StringSubstr(As_0, str_len_8 - Li_20 - 1, 1));
      Ld_ret_12 += Li_24 * MathPow(36, Li_20);
   }
   return (Ld_ret_12);
}

string f0_53(double Ad_0) {
   string str_concat_8 = "";
   for (Ad_0 = MathAbs(Ad_0); Ad_0 >= 1.0; Ad_0 = MathFloor(Ad_0 / 36.0)) str_concat_8 = StringConcatenate(StringSubstr(Gs_948, MathMod(Ad_0, 36), 1), str_concat_8);
   return (str_concat_8);
}

string f0_45(string As_0) {
   int Li_8;
   int Li_20;
   int str_len_16 = StringLen(As_0);
   for (int Li_12 = 0; Li_12 < str_len_16; Li_12++) {
      Li_20 = 0;
      Li_8 = StringGetChar(As_0, Li_12);
      if (Li_8 > '`' && Li_8 < '{') Li_20 = Li_8 - 32;
      if (Li_8 > '?' && Li_8 < 256) Li_20 = Li_8 - 32;
      if (Li_8 == '?') Li_20 = 168;
      if (Li_20 > 0) As_0 = StringSetChar(As_0, Li_12, Li_20);
   }
   return (As_0);
}

int f0_28() {
   for (int count_0 = 0; IsTradeContextBusy() && count_0 < 10; count_0++) Sleep(15);
   if (count_0 >= 10) Print("Trade context is buisy more than ", DoubleToStr(15 * count_0 / 1000, 2), " seconds");
   else
      if (count_0 > 0) Print("Trade context was buisy ", DoubleToStr(15 * count_0 / 1000, 2), " seconds");
   return (count_0);
}

int f0_29(int A_cmd_0, double A_lots_4, double A_price_12, double A_price_20, double A_price_28, int A_magic_36, color A_color_40, bool Ai_44 = FALSE) {
   double price_48;
   double price_56;
   int error_68;
   double price_76;
   int ticket_64 = -1;
   int count_72 = 0;
   bool Li_84 = FALSE;
   double Ld_88 = Gd_968 * Gd_340 * Point;
   while (!Li_84) {
      if (!Ai_44) {
         price_48 = A_price_20;
         price_56 = A_price_28;
      } else {
         price_48 = 0;
         price_56 = 0;
      }
      if (A_cmd_0 == OP_BUY) price_76 = MarketInfo(Symbol(), MODE_ASK);
      else
         if (A_cmd_0 == OP_SELL) price_76 = MarketInfo(Symbol(), MODE_BID);
      if (count_72 > 0 && MathAbs(price_76 - A_price_12) > Ld_88) {
         Print("Price is too far");
         break;
      }
      f0_28();
      ticket_64 = OrderSend(Symbol(), A_cmd_0, A_lots_4, A_price_12, Slippage * Gd_340, price_56, price_48, OrderComments, A_magic_36, 0, A_color_40);
      if (ticket_64 >= 0) {
         Gd_396 += A_lots_4;
         break;
      }
      count_72++;
      error_68 = GetLastError();
      switch (error_68) {
      case 130/* INVALID_STOPS */:
         if (!Ai_44) G_global_var_388 = 1;
      case 0/* NO_ERROR */:
         if (!Ai_44) Ai_44 = TRUE;
         else Li_84 = TRUE;
         break;
      case 4/* SERVER_BUSY */: break;
      case 6/* NO_CONNECTION */: break;
      case 129/* INVALID_PRICE */: break;
      case 136/* OFF_QUOTES */: break;
      case 137/* BROKER_BUSY */: break;
      case 146/* TRADE_CONTEXT_BUSY */: break;
      case 135/* PRICE_CHANGED */:
      case 138/* REQUOTE */:
         RefreshRates();
         break;
      default:
         Li_84 = TRUE;
      }
      if (count_72 > 10) break;
   }
   if (ticket_64 >= 0) {
      if (Ai_44) {
         if (OrderSelect(ticket_64, SELECT_BY_TICKET)) {
            Sleep(1000);
            f0_28();
            OrderModify(ticket_64, OrderOpenPrice(), A_price_28, A_price_20, 0, A_color_40);
         }
      }
      if (count_72 > 5) Print(f0_30(A_cmd_0) + " operation attempts: ", count_72);
      if (SendEmails) SendMail(Gs_452, "Open " + f0_30(A_cmd_0) + ": [" + Symbol() + "] " + NormalizeDouble(A_price_12, Digits));
   } else Print(f0_30(A_cmd_0) + " operation failed - error(", error_68, "): ", f0_50(error_68), " attempts: ", count_72);
   return (ticket_64);
}

int f0_43(color A_color_0, bool Ai_4 = FALSE, double Ad_8 = 1.0) {
   double price_16;
   double order_takeprofit_24;
   double order_stoploss_32;
   int Li_40;
   double order_lots_44;
   int error_60;
   if (Ad_8 == 1.0) order_lots_44 = OrderLots();
   else order_lots_44 = f0_9(OrderLots() * Ad_8, Li_40);
   bool Li_52 = FALSE;
   if (Ai_4) {
      f0_28();
      order_takeprofit_24 = OrderTakeProfit();
      order_stoploss_32 = OrderStopLoss();
      OrderModify(OrderTicket(), OrderOpenPrice(), 0, 0, 0, A_color_0);
   }
   for (int count_56 = 0; count_56 < 10; count_56++) {
      if (f0_28() > 5) RefreshRates();
      if (OrderType() == OP_BUY) price_16 = Bid;
      else price_16 = Ask;
      if (OrderClose(OrderTicket(), order_lots_44, price_16, Slippage * Gd_340, A_color_0)) {
         Li_52 = TRUE;
         if (Ad_8 >= 1.0) return (-1);
         f0_17(OrderMagicNumber(), OrderType());
         break;
      }
      error_60 = GetLastError();
      Print("Order close operation failed - error(", error_60, "): ", f0_50(error_60));
      RefreshRates();
   }
   if ((!Li_52) && Ai_4) {
      f0_28();
      OrderModify(OrderTicket(), OrderOpenPrice(), order_stoploss_32, order_takeprofit_24, 0, A_color_0);
   }
   if (!Li_52) Print("Order close operation failed");
   return (OrderTicket());
}

double f0_51(double Ad_0, double Ad_8, int &Ai_16) {
   if (AccountLeverage() < 100) return (f0_9(Ad_0 * Ad_8 / MarketInfo(Symbol(), MODE_MARGINREQUIRED), Ai_16));
   return (f0_9(Ad_0 * Ad_8 / MarketInfo(Symbol(), MODE_MARGINREQUIRED) / (AccountLeverage() / 100.0), Ai_16));
}

double f0_9(double Ad_0, int &Ai_8) {
   double lotstep_20 = MarketInfo(Symbol(), MODE_LOTSTEP);
   double Ld_28 = MarketInfo(Symbol(), MODE_MINLOT);
   double Ld_36 = MarketInfo(Symbol(), MODE_MAXLOT);
   double Ld_ret_12 = MathFloor(Ad_0 / lotstep_20) * lotstep_20;
   Ai_8 = 0;
   if (Ld_ret_12 < Ld_28) {
      Ld_ret_12 = Ld_28;
      Ai_8 = -1;
   }
   if (Ld_ret_12 > Ld_36) {
      Ld_ret_12 = Ld_36;
      Ai_8 = 1;
   }
   return (Ld_ret_12);
}

void f0_31(double Ad_0, double Ad_8, int Ai_16) {
   double Ld_20 = (Ad_8 - Ad_0) / (Point * Gd_340);
   if (Ai_16 == 1) Ld_20 = -Ld_20;
   Gd_844 += Ld_20;
   if (Gd_852 < Gd_844) Gd_852 = Gd_844;
}

int f0_4() {
   if (Gd_852 > Gd_844 + Gd_260 * Gd_340 && Gi_876 > Gi_976) return (1);
   Gi_976 = Gi_876;
   return (0);
}

int f0_32() {
   int count_0 = 0;
   Gd_844 = 0;
   Gd_852 = 0;
   for (int pos_4 = OrdersHistoryTotal() - 1; pos_4 >= 0; pos_4--) {
      if (OrderSelect(pos_4, SELECT_BY_POS, MODE_HISTORY)) {
         if (OrderMagicNumber() != S1_Reference && OrderMagicNumber() != S2_Reference) continue;
         f0_31(OrderOpenPrice(), OrderClosePrice(), OrderType());
         count_0++;
      }
   }
   return (count_0);
}

int f0_17(int A_magic_0, int A_cmd_4) {
   for (int pos_8 = OrdersTotal() - 1; pos_8 >= 0; pos_8--) {
      if (OrderSelect(pos_8, SELECT_BY_POS)) {
         if (OrderMagicNumber() == A_magic_0) {
            if (OrderSymbol() == Symbol())
               if (OrderType() == A_cmd_4) return (OrderTicket());
         }
      }
   }
   return (-1);
}

void f0_8() {
   G_count_868 = 0;
   for (int pos_0 = OrdersTotal() - 1; pos_0 >= 0; pos_0--) {
      if (OrderSelect(pos_0, SELECT_BY_POS)) {
         if (OrderSymbol() == Symbol())
            if (OrderMagicNumber() != S1_Reference && OrderMagicNumber() != S2_Reference) G_count_868++;
      }
   }
}

int f0_13() {
   return (G_count_868 <= 0 && G_ticket_880 < 0 && G_ticket_884 < 0 && G_ticket_912 < 0 && G_ticket_916 < 0);
}

int f0_34() {
   if (G_icci_1016 >= 0.0 || G_irsi_984 >= 50.0) G_datetime_1132 = G_datetime_304;
   if (G_icci_1016 <= 0.0 || G_irsi_984 <= 50.0) G_datetime_1128 = G_datetime_304;
   if (G_datetime_1132 > 0 && G_datetime_304 - G_datetime_1132 > 3600.0 * Gd_568) return (2);
   if (G_datetime_1128 > 0 && G_datetime_304 - G_datetime_1128 > 3600.0 * Gd_568) return (3);
   if (G_datetime_1132 == 0 || G_datetime_1128 == 0) return (0);
   return (1);
}

void f0_3() {
   int shift_0;
   if (G_datetime_304 - Gi_320 < 3600.0 * Gi_528) shift_0 = iBarShift(NULL, G_timeframe_476, Gi_320 - 86400);
   else shift_0 = iBarShift(NULL, G_timeframe_476, Gi_320);
   G_ihigh_1072 = iHigh(NULL, G_timeframe_476, iHighest(NULL, G_timeframe_476, MODE_HIGH, shift_0 - Gi_300, Gi_300));
   G_ilow_1080 = iLow(NULL, G_timeframe_476, iLowest(NULL, G_timeframe_476, MODE_LOW, shift_0 - Gi_300, Gi_300));
}

void f0_55() {
   int Li_0;
   HideTestIndicators(TRUE);
   G_irsi_984 = iRSI(NULL, G_timeframe_476, G_period_508, PRICE_CLOSE, Gi_300);
   G_irsi_992 = iRSI(NULL, G_timeframe_476, G_period_508, PRICE_CLOSE, Gi_300 + 1);
   G_irsi_1000 = iRSI(NULL, G_timeframe_476, G_period_508, PRICE_CLOSE, Gi_300 + 2);
   if (Gi_520) G_irsi_1008 = iRSI(NULL, PERIOD_M1, G_period_512, PRICE_CLOSE, Gi_300);
   G_icci_1016 = iCCI(NULL, G_timeframe_476, G_period_516, PRICE_TYPICAL, Gi_300);
   G_icci_1024 = iCCI(NULL, G_timeframe_476, G_period_516, PRICE_TYPICAL, Gi_300 + 1);
   G_icci_1032 = iCCI(NULL, G_timeframe_476, G_period_516, PRICE_TYPICAL, Gi_300 + 2);
   G_ima_1056 = iMA(NULL, G_timeframe_476, G_period_516, 0, MODE_SMA, PRICE_MEDIAN, Gi_300);
   if (Gi_532) {
      if (G_irsi_984 >= 50 - Gi_536 / 2 && G_irsi_984 <= Gi_536 / 2 + 50) {
         Gi_1064 = TRUE;
         Gi_1068 = TRUE;
      }
   }
   if (Gi_524) f0_3();
   if (Gi_564) {
      Li_0 = Gi_1108;
      Gi_1108 = f0_34();
      if (Li_0 != Gi_1108) {
         Gi_1112 = Li_0;
         if (Gi_1108 == 1) Gi_1116 = G_datetime_304 + 3600.0 * Gd_576;
      }
   }
   if (Gi_588 > 0) {
      if (G_spread_328 > Gi_588 * Gd_340) {
         if (G_spread_332 < G_spread_328) {
            Print("Strategy1: Safe spread limit exceeded: spread = ", G_spread_328);
            if (Gi_592) Print("Strategy1: Using DayDirection filter");
         }
         Gi_1088 = TRUE;
      } else {
         if (G_spread_332 > Gi_588 * Gd_340) Print("Strategy1: Safe spread limit normalized: spread = ", G_spread_328);
         Gi_1088 = FALSE;
      }
   }
   HideTestIndicators(FALSE);
}

int f0_6() {
   double iclose_0;
   double iclose_8;
   int shift_16;
   int shift_20;
   if (!Gi_1064) return (0);
   if (Gi_564) {
      if (Gi_1108 == 2) return (0);
      if (G_datetime_304 <= Gi_1116)
         if (Gi_1112 == 2) return (0);
   }
   if (Gi_584 || Gi_1088) {
      if (G_datetime_304 - Gi_320 < 43200.0) {
         shift_16 = iBarShift(NULL, G_timeframe_476, Gi_320 - 86400);
         shift_20 = iBarShift(NULL, G_timeframe_476, Gi_320);
      } else {
         shift_16 = iBarShift(NULL, G_timeframe_476, Gi_320);
         shift_20 = Gi_300;
      }
      iclose_8 = iClose(NULL, G_timeframe_476, shift_16);
      iclose_0 = iClose(NULL, G_timeframe_476, shift_20);
      if (iclose_0 < iclose_8) return (0);
   }
   return (s1_Buy(Gi_380, Ask));
}

int f0_52() {
   double iclose_0;
   double iclose_8;
   int shift_16;
   int shift_20;
   if (!Gi_1068) return (0);
   if (Gi_564) {
      if (Gi_1108 == 3) return (0);
      if (G_datetime_304 <= Gi_1116)
         if (Gi_1112 == 3) return (0);
   }
   if (Gi_584 || Gi_1088) {
      if (G_datetime_304 - Gi_320 < 43200.0) {
         shift_16 = iBarShift(NULL, G_timeframe_476, Gi_320 - 86400);
         shift_20 = iBarShift(NULL, G_timeframe_476, Gi_320);
      } else {
         shift_16 = iBarShift(NULL, G_timeframe_476, Gi_320);
         shift_20 = Gi_300;
      }
      iclose_8 = iClose(NULL, G_timeframe_476, shift_16);
      iclose_0 = iClose(NULL, G_timeframe_476, shift_20);
      if (iclose_0 > iclose_8) return (0);
   }
   return (s1_Sell(Gi_380, Bid));
}

int f0_10() {
   bool Li_24;
   double Ld_28;
   if (Stealth || OrderTakeProfit() == 0.0) {
      if (Gi_480 > 0)
         if (NormalizeDouble(Bid - OrderOpenPrice(), Digits) >= NormalizeDouble(Gi_480 * Point * Gd_340, Digits)) return (1);
   }
   if (OrderStopLoss() == 0.0) {
      if (Gi_1096 > 0)
         if (NormalizeDouble(OrderOpenPrice() - Ask, Digits) >= NormalizeDouble(Gi_1096 * Point, Digits)) return (1);
   }
   double order_lots_0 = OrderLots();
   double Ld_8 = OrderProfit();
   double Ld_16 = OrderCommission();
   if (G_bool_616 && G_ticket_1120 >= 0) {
      Li_24 = FALSE;
      if (OrderSelect(G_ticket_1120, SELECT_BY_TICKET)) {
         Ld_8 += OrderProfit();
         Ld_16 += OrderCommission();
         if (Gd_644 > 0.0) {
            Ld_28 = Gd_644 * Gd_340 * order_lots_0 * MarketInfo(Symbol(), MODE_TICKVALUE);
            if (Ld_8 + f0_11(ConsiderCommission, Ld_16) >= Ld_28) Li_24 = TRUE;
         }
      }
      OrderSelect(G_ticket_880, SELECT_BY_TICKET);
      if (Li_24) return (1);
   }
   if (Gi_544) {
      if (G_ticket_1136 != OrderTicket()) {
         G_datetime_1140 = OrderOpenTime();
         G_ticket_1136 = OrderTicket();
      }
      if (G_icci_1016 >= 0.0 || G_irsi_984 >= 50.0) G_datetime_1140 = G_datetime_304;
 

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

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

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

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

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

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

Стоимость полного кода
5 629,40₽ ≈ $68.81