#property copyright "Copyright © 2013, Ice FX <icefx@icefx.eu> <http://www.icefx.eu>"
#property link "http://www.icefx.eu"
#include <WinUser32.mqh>
#import "IceFX.TraderAgent_edu.dll"
void IceLock_GetWindowSize(int a0, int& a1[]);
int IceLock_GetMouseState(int a0, int& a1[]);
void IceLock_StartTicker(int a0, int a1);
void IceLock_StopTicker(int a0);
#import
extern string _____Product_name_______ = " ..:: IceFX TraderAgent PRO ::..";
extern string CC1______________________ = "========= License settings =========";
extern string PassKey = "";
extern string CC2______________________ = "========= Common settings =========";
extern int MagicNumber = 0;
extern string CommentForOrder = "IceFX.TraderAgent";
extern int OrderSlippage = 3;
extern string CC3______________________ = "========= Money management =========";
extern double RiskPercent = 1.0;
extern double LOT = 0.0;
extern string CC4______________________ = "========= SL / TP settings =========";
extern double StopLoss = 40.0;
extern double TakeProfit = 80.0;
extern double TrailingStop = 25.0;
extern string CC4______________________1 = " TrailingStopAt: 0 - after BreakEventAt; x - after x pips";
extern double TrailingStopAt = 0.0;
extern bool ForceSetSLTPIfMissing = FALSE;
extern string CC5______________________ = "========= Break Even settings =========";
extern double BreakEvenAt = 0.0;
extern double BreakEvenPips = 0.0;
extern string CC6______________________ = "========= Partial Close settings =========";
extern double QuickPartialClose = 50.0;
extern double PartialClosePos1 = 0.0;
extern double PartialClosePercent1 = 50.0;
extern double PartialClosePos2 = 0.0;
extern double PartialClosePercent2 = 50.0;
extern double PartialClosePos3 = 0.0;
extern double PartialClosePercent3 = 50.0;
extern string CC13_____________________ = "========= Trendline handling =========";
extern bool UseTrendLines = FALSE;
extern bool UseChannels = FALSE;
extern bool TrueTLSupport = FALSE;
extern bool OppositeTrendLineOrder = FALSE;
extern bool OpenAfterCandleClose = FALSE;
extern bool DeleteTrendLinesAfterOpen = TRUE;
extern bool TrendLinesOCOMode = FALSE;
extern string CC19_____________________ = "========= Pending line handling =========";
extern bool UsePendingLines = TRUE;
extern color PendingLineColor = LightSkyBlue;
extern bool PendingOCOMode = FALSE;
extern string CC20_____________________ = "========= Auto Close-All settings =======";
extern double AutoCloseAllProfitMoney = 0.0;
extern double AutoCloseAllProfitPercent = 0.0;
extern double AutoCloseAllLossMoney = 0.0;
extern double AutoCloseAllLossPercent = 0.0;
extern string CC15_____________________ = "========= Grid feature settings =========";
bool vgi_392 = TRUE;
extern double GridStep = 20.0;
extern int GridMaxOrderCount = 10;
extern double GridLotMultiplier = 1.6;
extern bool GridReCalculateSLTP = TRUE;
extern bool AutoGridMode = FALSE;
string vgs_nsd_424 = "========= Hedge feature settings =========";
bool vgi_432 = TRUE;
extern string CC7______________________ = "========= Visual settings =========";
extern bool DrawPriceLabel = TRUE;
extern bool BackgroundOpacity = FALSE;
int vgi_452 = 2958105;
extern string CC7______________________1____________________ = "========= Control line settings =========";
extern bool ShowControlLineLabels = TRUE;
extern int ControlLineOffset = 10;
extern color ControlLineLabelColor = Black;
extern color StopLossColor = Red;
extern color TakeProfitColor = LimeGreen;
extern color PartialCloseColor = Orange;
extern color BreakEvenColor = LightSkyBlue;
extern string CC8______________________ = "========= Account Panel settings =========";
extern bool ShowAccountPanel = TRUE;
extern int AccountPanelX = 25;
extern int AccountPanelY = 25;
extern color AveragePriceLineColor = SlateGray;
extern string CC9______________________ = "========= Control Panel settings =========";
extern bool ShowControlPanel = TRUE;
extern int ControlPanelX = -220;
extern int ControlPanelY = 25;
extern string CC10_____________________ = "========= Order list settings =========";
extern bool ShowOrderListPanel = TRUE;
extern int OrderListPanelX = 25;
extern int OrderListPanelY = 220;
extern string CC8______________________1 = " 0 - Side by order list, 1 - Bottom of order list";
extern int PropertiesPanelPos = 1;
extern string CC11_____________________ = "========= Profit Panel settings =========";
extern bool ShowProfitPanel = TRUE;
extern int ProfitPanelX = 200;
extern int ProfitPanelY = 25;
extern string CC16_____________________ = "========= Dashboard Panel settings =========";
extern bool ShowDashboard = TRUE;
extern int DashboardX = -220;
extern int DashboardY = 200;
extern double DashboardSpreadRedValue = 3.0;
extern bool Dashboard_OnlyCurrentTF = FALSE;
extern int Dashboard_MAPeriod = 14;
extern int Dashboard_MAMode = 1;
extern int Dashboard_MAPrice = 0;
extern int Dashboard_CCIPeriod = 14;
extern int Dashboard_CCIPrice = 5;
extern int Dashboard_RSIPeriod = 14;
extern int Dashboard_RSIPrice = 5;
extern int Dashboard_StochKPeriod = 8;
extern int Dashboard_StockDPeriod = 3;
extern int Dashboard_StochSlowing = 3;
extern int Dashboard_StochMode = 1;
extern int Dashboard_StochPrice = 0;
extern string CC12_____________________ = "========= Notifications =========";
extern bool ShowNotifications = TRUE;
extern string CC14_____________________ = "========= Extra features =========";
extern bool StealthMode = FALSE;
extern double DontAllowOrderOpenMaxSpread = 0.0;
extern bool ShowPivotPoints = TRUE;
extern bool ShowNextCandleTime = TRUE;
extern color NextCandleTimeTextColor = White;
extern bool ShowSentinelAlerts = TRUE;
extern string CC17_____________________ = "======= Performance settings =========";
extern int TickTime = 200;
extern int BackTestTime = 50;
bool vgi_732 = FALSE;
bool vgi_736 = FALSE;
bool vgi_nsd_740 = TRUE;
int vgi_nsd_744 = 0;
double vgd_748 = 0.0;
int vgi_756;
int vgi_760;
int vgi_764 = 0;
int vgi_768 = 0;
int vg_dttm_772 = 0;
bool vg_bool_776 = FALSE;
double vg_Bid;
double vg_Ask = 0.0;
bool vgi_796 = FALSE;
int vg_dttm_800 = 0;
int vgi_804 = 0;
bool vg_StopEA = FALSE;
bool vg_bool_812 = FALSE;
int vgi_816 = 1000;
int vg_ticket_820 = -1;
string vg_IpServer = "127.0.0.1";
int vgi_832 = 42780;
int vgi_836 = 0;
int vgi_840 = 16;
bool vg_bool_844 = TRUE;
bool vgi_848 = FALSE;
bool vg_bool_852 = TRUE;
bool vg_bool_856 = FALSE;
string vg_name_860 = "";
string vg_InfoExecuteEA = "";
double vDigits = 1.0;
string vg_SymbolCurrencyAccount;
string vgs_892;
string vg_ArrayStrPeriodos[] = {"M1", "M5", "M15", "M30", "H1", "H4", "D1", "W1", "MN"};
int vg_ArrayIntPeriodos[] = {1, 5, 15, 30, 60, 240, 1440, 10080, 43200};
int vgi_nsd_908 = 1;
int vgi_nsd_912 = 10;
int vgi_nsd_916 = 10;
int vgi_nsd_920 = 6;
string vg_FonteLetra = "Verdana";
int vgi_932 = -1;
int vgi_936 = 3145645;
int vgi_940 = 255;
int vg_FontSize = 8;
bool vgi_948 = FALSE;
int vgi_952 = 3;
string vg_comment_956 = "";
bool vg_bool_964 = FALSE;
int vg_ticket_968 = -1;
int vgi_972;
int vgi_nsd_976;
int vgi_nsd_980;
string vgs_984 = "";
int vgi_992 = 0;
string vgs_996 = "DrW.";
string vgs_1004 = "TA";
string vg_NameLineSL = "SL";
string vg_NameLineTP = "TP";
string vgs_nsd_1028 = "TSL";
string vg_NameBreakEven = "BE";
string vgs_1044 = "PC";
string vg_PartialClose1 = "PC1";
string vg_PartialClose2 = "PC2";
string vg_PartialClose3 = "PC3";
string vg_NameGrid = "GRID";
string vg_NamGridParent = "GRIDPARENT";
string vg_NameLevelGrid = "GRIDLEVEL";
string vg_NameGridPrice = "GRIDPRICE";
string vg_NameAvgPrice = "AVGPRICE";
string vg_NamePendingPrice = "PENDING";
string vg_NameLastTrendOpen = "LASTTRENDOPEN";
string vgs_udplovg_1132 = "UDPLog";
double vgd_nsd_1140 = 0.0;
double vgd_nsd_1148 = 0.0;
double vgd_nsd_1156 = 0.0;
double vgd_nsd_1172 = 0.0;
int vg_corner_1180 = 0;
int vgia_1184[4];
int vgia_1188[4];
int vgi_1192;
int vgi_1196;
int vgia_1200[3];
int vgi_1204 = 1;
string vgs_1208 = "ZNTF_";
int vgi_1216 = 0;
int vgi_1220 = 2000;
int vgi_1224 = 20;
int vgi_1228 = 400;
int vgi_nsd_1232 = 50;
bool vgi_1236 = FALSE;
int vg_fontsize_1240 = 10;
int vg_clr_1244 = C'0xE6,0xE6,0xE6';
int vgi_1248 = 15;
int vgia_1252[6][8];
string vgsa_1256[6];
string vgs_1260 = "XCP_";
int vgi_1268;
int vgi_1272;
int vgi_1276 = 170;
int vgi_1280 = 170;
string vgs_1284 = "OL_";
int vgia_1292[11];
int vgi_1296 = 0;
int vgi_1300 = 24;
int vgi_1304 = 12;
int vgi_1308;
int vgi_1312;
int vgi_1316 = 170;
int vgi_1320 = 170;
bool vgi_1324 = FALSE;
int vg_dttm_1328 = 0;
string vgs_1332 = "PP_";
bool vgi_1340 = FALSE;
int vgi_1344;
int vgi_1348;
int vgi_1352 = 320;
int vgi_1356 = 160;
int vgi_1360 = 220;
int vgi_1364 = 30;
int vgi_1368 = 86;
int vgi_1372 = 20;
int vgi_1376 = 25;
string vgs_1380 = "AP_";
int vgi_1388 = 28;
int vgi_1392 = 14;
int vgi_1396;
int vgi_1400;
int vgi_nsd_1404 = 170;
int vgi_1408 = 170;
bool vgi_nsd_1412 = FALSE;
string vgs_1416 = "ProfitP_";
int vgi_1424 = 28;
int vgi_1428 = 14;
int vgi_1432;
int vgi_1436;
int vgi_nsd_1440 = 170;
int vgi_1444 = 170;
bool vgi_nsd_1448 = FALSE;
bool vgi_1452 = FALSE;
int vgi_1456 = 86400;
string vg_NameDashboard = "Dashboard_";
int vgi_1468;
int vgi_1472;
int vgi_nsd_1476 = 170;
int vgi_1480 = 170;
bool vgi_1484 = FALSE;
string vgs_1488 = ".Pivot_";
double vgd_1496;
double vgd_1504;
double vgd_1512;
double vgd_1520;
double vgd_1528;
double vgd_1536;
double vgd_1544;
int vgi_1552 = 14822282;
int vgi_1556 = 3329434;
int vgi_1560 = 16776960;
int vgi_nsd_1564 = 8421504;
int vgi_nsd_1568 = 6908265;
int vgi_1572 = 7;
string vg_NameNextBar = "BNextBar_";
int vg_count_1584 = 0;
string vg_ArrayComment[50];
int vg_count_1592 = 0;
bool vgi_1596 = FALSE;
bool vgi_1600 = FALSE;
//////////////////////////////////////////////////////////////////////////////////////////
int init() {
f0_38("DrW_");
GetDigitsPips();
GetAccountCurrency();
f0_47();
vgi_952 = OrderSlippage;
vg_comment_956 = CommentForOrder;
vg_bool_964 = ShowSentinelAlerts;
SetTraceLog(StringConcatenate("Pip multiplier: ", vDigits, ", Digits: ", Digits));
vgi_768 = GetTickCount() - 1000;
OrderSelect(OrdersHistoryTotal() - 1, SELECT_BY_POS, MODE_HISTORY);
vgi_932 = OrderTicket();
if (IsTesting()) vgi_732 = TRUE;
HideTestIndicators(TRUE);
vg_StopEA = TRUE;
int li_0 = StatusEA();
if (li_0 <= 0) {
AddComment(StringConcatenate("TraderAgent", " stopped!"));
if (li_0 > -1000) return (1);
}
vg_StopEA = FALSE;
if (f0_94()) f0_6();
if (!vgi_732) f0_113();
return (0);
}
int deinit() {
f0_38("DrW_");
if ((!vg_StopEA) && !vgi_732) f0_23();
if (!vg_StopEA) f0_163();
return (0);
}
int start() {
if (vg_StopEA) {
StopEA();
return (0);
}
vg_bool_776 = vg_Bid != Bid || vg_Ask != Ask;
vg_Bid = Bid;
vg_Ask = Ask;
if (vgi_1600) {
PrintComment();
vgi_1600 = FALSE;
}
f0_49();
return (0);
}
//////////////////////////////////////////////////////////////////////////////////////////
// D47AFFB6503B6D108F7DC3C7539BC8BB
void f0_141(int &aia_0[], int ai_4, string as_8) {
int li_20;
int count_24;
int li_16 = ai_4 >> 16;
if (li_16 >= 2) {
ai_4 &= 65535;
li_20 = ai_4 >> 2;
count_24 = ai_4 % 4;
for (int li_28 = 0; li_28 < StringLen(as_8); li_28++) {
aia_0[li_20] = aia_0[li_20] & (~(255 << (count_24 * 8)));
aia_0[li_20] = aia_0[li_20] | StringGetChar(as_8, li_28) << (count_24 * 8);
if (count_24 == 3) {
li_20++;
count_24 = 0;
} else count_24++;
if (li_16 == 2) break;
li_16--;
}
aia_0[li_20] = aia_0[li_20] & (~(255 << (count_24 * 8)));
}
}
// 9E32925D7C93C8DA847A44286E60E4E5
void f0_105(int &aia_0[5], int ai_4, int ai_8) {
int li_16;
int li_20;
if (ai_4 < 0) ai_4 = -ai_4;
int li_12 = ai_4 >> 16;
if (li_12 != 0) {
if (li_12 > 4) li_12 = 4;
ai_4 &= 65535;
li_16 = ai_4 >> 2;
li_20 = ai_4 % 4;
ai_8 &= (-1) >> ((4 - li_12) * 8);
aia_0[li_16] = aia_0[li_16] & (-1) >> ((4 - li_20) * 8);
aia_0[li_16] = aia_0[li_16] | ai_8 << (li_20 * 8);
if (li_20 + li_12 > 4) {
li_16++;
aia_0[li_16] = aia_0[li_16] & (-1) << ((li_20 + li_12 - 4) * 8);
aia_0[li_16] = aia_0[li_16] | ai_8 >> ((8 - li_20 - li_12) * 8);
}
}
}
// 4748625205F23D72AC04097BF0528233
int f0_51(int ai_0) {
return ((ai_0 & 255 * 256) | ai_0 & 65280 >> 8);
}
// 57F68BD7CB298DFCF8C1D55FF163E283
void VerifyTicket(int a_ticket_0, string as_4 = "", int ai_12 = 8) {
double ld_16;
double ld_24;
string ls_32;
if (OrderSelect(a_ticket_0, SELECT_BY_TICKET)) {
ld_16 = 0;
ld_24 = 0;
if (OrderStopLoss() > 0.0) ld_16 = MathAbs((OrderOpenPrice() - OrderStopLoss()) / Point);
if (OrderTakeProfit() > 0.0) ld_24 = MathAbs((OrderTakeProfit() - OrderOpenPrice()) / Point);
ls_32 = "";
if (OrderCloseTime() > 0) ls_32 = ", Close Price: " + DoubleToStr(OrderClosePrice(), Digits);
SetLog(as_4 + " Ticket #" + a_ticket_0 + ": " + " Type: " + GetStrTypeOrder(OrderType()) + ", LOT: " + DoubleToStr(OrderLots(), 2) + ", Open Price: " + DoubleToStr(OrderOpenPrice(),
Digits) + ", SL: " + DoubleToStr(OrderStopLoss(), Digits) + " (" + DoubleToStr(ld_16, 0) + ")" + ", TP: " + DoubleToStr(OrderTakeProfit(), Digits) + " (" + DoubleToStr(ld_24,
0) + ")" + ls_32 + ", Magic: " + OrderMagicNumber() + ", Comment: " + OrderComment(), "ORDER ", ai_12);
return;
}
SetWarningLog("Invalid ticket: " + a_ticket_0);
}
// F095AEEEF8A18556B81B2C841501C9C8
double GetDigitsPips(bool ai_0 = FALSE) {
vDigits = 1;
if (ai_0) {
if (Digits % 4 != FALSE) vDigits = 10;
} else {
if (Digits == 5 || (Digits == 3 && StringFind(Symbol(), "JPY") > -1) || (Digits == 2 && StringFind(Symbol(), "XAU") > -1) || (Digits == 2 && StringFind(Symbol(),
"GOLD") > -1) || (Digits == 3 && StringFind(Symbol(), "XAG") > -1) || (Digits == 3 && StringFind(Symbol(), "SILVER") > -1) || Digits == 1) vDigits = 10;
if (Digits == 6 || (Digits == 4 && StringFind(Symbol(), "JPY") > -1) || (Digits == 3 && StringFind(Symbol(), "XAU") > -1) || (Digits == 3 && StringFind(Symbol(),
"GOLD") > -1) || (Digits == 4 && StringFind(Symbol(), "XAG") > -1) || (Digits == 4 && StringFind(Symbol(), "SILVER") > -1)) vDigits = 100;
}
return (vDigits);
}
// 0D51E5907CFDB5931B9358945E89438B
double f0_7(double a_pips_0) {
return (a_pips_0 * Point * vDigits);
}
// D315BD4B967F698F17705C9D8F74028C
double f0_139(double ad_0) {
return (ad_0 / Point / vDigits);
}
// E5B9BDBE11C5EB46DAE10F059B104BF7
double f0_153(double ad_0, double ad_8) {
double ld_24;
double ticksize_16 = MarketInfo(Symbol(), MODE_TICKSIZE);
if (ticksize_16 != 0.0) {
ld_24 = MarketInfo(Symbol(), MODE_TICKVALUE) * (Point / ticksize_16);
return (ad_0 * vDigits * ld_24 * ad_8);
}
return (0);
}
// 9A116C50D133C8648404081885194300
double NormalizeDoubleDigits(double ad_0, int a_digits_8 = -1) {
if (a_digits_8 == -1) a_digits_8 = Digits;
return (NormalizeDouble(ad_0, a_digits_8));
}
// CCA857FBDD027B602626930098BCCF85
string f0_136(double ad_0, int ai_8 = 2) {
if (ad_0 < 0.0) return (StringConcatenate("-", vg_SymbolCurrencyAccount, GetDoubleToStr(MathAbs(ad_0), ai_8), vgs_892));
return (StringConcatenate(vg_SymbolCurrencyAccount, GetDoubleToStr(ad_0, ai_8), vgs_892));
}
// A2089E7697BB46B042BA7BD3E2EB50F1
string GetDoubleToStr(double ad_0, int ai_8 = 0) {
return (DoubleToStr(ad_0, ai_8));
}
// 44A6E0D66A0838FD2F5DD7630F7C1327
void GetAccountCurrency() {
string ls_0 = AccountCurrency();
if (ls_0 == "USD") {
vg_SymbolCurrencyAccount = "$";
return;
}
if (ls_0 == "EUR") {
vg_SymbolCurrencyAccount = "Ђ";
return;
}
if (ls_0 == "GBP") {
vg_SymbolCurrencyAccount = "Ј";
return;
}
if (ls_0 == "JPY") {
vg_SymbolCurrencyAccount = "Ґ";
return;
}
vg_SymbolCurrencyAccount = "";
}
// 8B2937C36CA255BF2098D743850095A6
double GetNormalizeLot(double pLot, string a_symbol_8 = "") {
string ls_48;
if (a_symbol_8 == "") a_symbol_8 = Symbol();
double marginrequired_16 = MarketInfo(a_symbol_8, MODE_MARGINREQUIRED);
double lotstep_24 = MarketInfo(a_symbol_8, MODE_LOTSTEP);
double minlot_32 = MarketInfo(a_symbol_8, MODE_MINLOT);
if (lotstep_24 != 0.0) pLot = MathFloor(pLot / lotstep_24) * lotstep_24;
pLot = MathMax(pLot, minlot_32);
double ld_40 = pLot * marginrequired_16;
if (ld_40 > AccountFreeMargin()) {
ls_48 = "You have not enough money! Free margin: " + DoubleToStr(AccountFreeMargin(), 2) + ", Require: " + DoubleToStr(ld_40, 2);
Print(ls_48);
return (0);
}
return (pLot);
}
// 620ECEBAA3D316E5E5B8B3F19CFCE19B
double f0_67(double ad_nsd_0, bool ai_8 = FALSE) {
double ld_ret_20;
double ld_ret_28;
double ld_12 = AccountBalance();
if (ld_12 != 0.0) {
ld_ret_20 = AccountMargin() + (AccountBalance() - AccountEquity());
ld_ret_28 = 100.0 * (ld_ret_20 / ld_12);
if (!(ai_8)) return (ld_ret_20);
return (ld_ret_28);
}
return (0);
}
// 88B988D72577FB329BF0848DE410CA17
string f0_89(string &as_0, string as_8) {
string ls_ret_16 = "";
int li_24 = StringFind(as_0, as_8, 0);
if (li_24 != -1) {
if (li_24 > 0) ls_ret_16 = StringSubstr(as_0, 0, li_24);
as_0 = StringSubstr(as_0, li_24 + StringLen(as_8));
} else {
ls_ret_16 = as_0;
as_0 = "";
}
return (ls_ret_16);
}
// 06CCE67E6D164C6A1BBC38BAD20E8EDF
int GetPrimeiroValor(bool ai_0, int ai_4, int ai_8) {
if (ai_0) return (ai_4);
return (ai_8);
}
// 3BE4B59601B7B2E82D21E1C5C718B88F
double GetPrimeiroValorDouble(bool ai_0, double ad_4, double ad_12) {
if (ai_0) return (ad_4);
return (ad_12);
}
// 1368D28A27D3419A04740CF6C5C45FD7
string f0_12(int ai_0) {
for (int li_4 = ArraySize(vg_ArrayIntPeriodos) - 1; li_4 >= 0; li_4--)
if (ai_0 == vg_ArrayIntPeriodos[li_4]) return (vg_ArrayStrPeriodos[li_4]);
return ("");
}
// 14C18FA4BA9031D803BCA7111529C553
string GetApenasLetras(string as_0) {
int li_36;
string ls_ret_8 = "";
string ls_16 = "abcdefghijklmnopqrstuvwxyz";
string ls_24 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
for (int li_32 = 0; li_32 < StringLen(as_0); li_32++) {
li_36 = StringFind(ls_24, StringSubstr(as_0, li_32, 1), 0);
if (li_36 >= 0) ls_ret_8 = ls_ret_8 + StringSubstr(ls_16, li_36, 1);
else ls_ret_8 = ls_ret_8 + StringSubstr(as_0, li_32, 1);
}
return (ls_ret_8);
}
// 3B196A05381EC289525B2E53A98926D7
void f0_38(string as_0 = "") {
for (int li_8 = ObjectsTotal() - 1; li_8 >= 0; li_8--)
if (as_0 == "" || StringFind(ObjectName(li_8), as_0, 0) >= 0) ObjectDelete(ObjectName(li_8));
}
// 7126649E3622237FA222CDC6BBA2273F
void f0_75(int a_dttm_0, double ad_4, string a_text_12, color a_clr_20 = 16777215, bool ai_24 = TRUE, bool ai_28 = FALSE) {
int count_32 = 0;
string ls_36 = "U";
if (!ai_24) ls_36 = "D";
string str_concat_44 = StringConcatenate("___PRICELBL_", ls_36, GetDoubleToStr(a_dttm_0, 0), "_", GetDoubleToStr(ad_4, 5));
if (ai_28 && ObjectFind(str_concat_44) != -1) {
while (ObjectFind(str_concat_44) != -1) {
count_32++;
str_concat_44 = StringConcatenate("PRICELBL_", ls_36, GetDoubleToStr(a_dttm_0, 0), "_", GetDoubleToStr(ad_4, 5), "_", count_32);
}
}
if (ObjectFind(str_concat_44) == -1 || ObjectCreate(str_concat_44, OBJ_TEXT, 0, 0, 0)) ObjectSet(str_concat_44, OBJPROP_TIME1, a_dttm_0);
double ld_52 = ad_4 + 5.0 * Point;
if (!ai_24) ld_52 = ad_4;
ObjectSet(str_concat_44, OBJPROP_PRICE1, ld_52);
ObjectSetText(str_concat_44, a_text_12, vg_FontSize, "Arial", a_clr_20);
}
// F5CF62E4BA63BB2971FB9EED7A4B943F
void f0_168(int ai_0, int ai_4, double ad_8, double ad_16) {
int li_24 = vgi_936;
if (ad_16 < 0.0) li_24 = vgi_940;
f0_75(ai_4, ad_8, StringConcatenate(f0_136(ad_16, 2), " "), li_24, (ai_0 == 0 && ad_16 > 0.0) || (ai_0 == 1 && ad_16 < 0.0), 1);
}
// E1C2C4B95F3F081D753ECB174966268B
void f0_148(int a_magic_0, int a_cmd_4 = -1) {
int li_8 = vgi_932;
int hist_total_12 = OrdersHistoryTotal();
for (int pos_16 = hist_total_12 - 1; pos_16 >= 0; pos_16--) {
if (OrderSelect(pos_16, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderType() == a_cmd_4 || a_cmd_4 == -1 && OrderSymbol() == Symbol() && OrderMagicNumber() == a_magic_0) {
if (!(OrderTicket() > vgi_932 || vgi_932 == -1 && OrderType() == OP_BUY || OrderType() == OP_SELL)) break;
f0_168(OrderType(), OrderCloseTime(), OrderClosePrice(), OrderProfit() + OrderSwap() + OrderCommission());
li_8 = MathMax(li_8, OrderTicket());
if (vgi_932 == -1) vgi_932 = OrderTicket();
}
}
}
vgi_932 = li_8;
}
// 498CFE7F1A6FB1C64C3B3ACF54438508
double f0_53(string a_symbol_0, double ad_8, double ad_16 = 0.0, double ad_24 = 0.0) {
double ld_72;
double ld_80;
double ld_88;
string ls_96;
double ld_ret_32 = 0;
if (a_symbol_0 == "") a_symbol_0 = Symbol();
double marginrequired_40 = MarketInfo(a_symbol_0, MODE_MARGINREQUIRED);
double ld_48 = MarketInfo(a_symbol_0, MODE_MINLOT);
double lotstep_56 = MarketInfo(a_symbol_0, MODE_LOTSTEP);
double free_magrin_64 = AccountFreeMargin();
if (ad_16 > 0.0) {
ld_72 = ad_16 * marginrequired_40;
if (ld_72 <= AccountFreeMargin()) ld_ret_32 = ad_16;
else ld_ret_32 = MathFloor(free_magrin_64 / marginrequired_40 / lotstep_56) * lotstep_56;
} else {
if (ad_24 > 0.0) {
ld_80 = AccountEquity() * (ad_8 / 100.0);
ld_88 = MarketInfo(a_symbol_0, MODE_TICKVALUE) * vDigits;
ld_ret_32 = ld_80 / (ld_88 * ad_24);
ld_ret_32 = MathFloor(ld_ret_32 / lotstep_56) * lotstep_56;
} else {
if (ad_8 > 100.0) ad_8 = 100;
if (ad_8 == 0.0) ld_ret_32 = ld_48;
else ld_ret_32 = MathFloor(free_magrin_64 * ad_8 / 100.0 / marginrequired_40 / lotstep_56) * lotstep_56;
}
}
if (ld_ret_32 < ld_48) ld_ret_32 = ld_48;
ld_72 = ld_ret_32 * marginrequired_40;
if (ld_72 > AccountFreeMargin()) {
ls_96 = "You have not enough money! Free margin: " + GetDoubleToStr(AccountFreeMargin(), 2) + ", Require: " + GetDoubleToStr(ld_72, 2);
Print(ls_96);
return (0);
}
return (ld_ret_32);
}
// 401811F13CF39DF9D4C78BFA5C77530C
int VerifyTradeBrokerBusy(int ai_0 = 20) {
int li_4 = 500;
for (int count_8 = 0; IsTradeContextBusy() && count_8 < ai_0; count_8++) Sleep(li_4);
if (count_8 >= ai_0) SetWarningLog(StringConcatenate("Trade context is busy more than ", GetDoubleToStr(li_4 * count_8 / 1000, 2), " seconds"));
else
if (count_8 > 0) SetErrorLog(StringConcatenate("Trade context was busy ", GetDoubleToStr(li_4 * count_8 / 1000, 2), " seconds"));
RefreshRates();
return (count_8 < ai_0);
}
// 3ED4137FCCCAF209812ED7B28A787689
int OpenOrder(int pTipoOrdem, double a_lots_4, double ad_12, double ad_20, int a_magic_28, double ad_32 = 0.0, double ad_40 = 0.0) {
color color_48;
double ld_52;
double ld_60;
double ld_68;
double ld_76;
int li_84;
int ticket_88;
double ld_92;
string str_concat_100;
if (a_lots_4 != 0.0) {
color_48 = GetColor(pTipoOrdem);
ld_60 = 0.0;
ld_68 = 0.0;
RefreshRates();
if (pTipoOrdem == OP_BUYLIMIT || pTipoOrdem == OP_BUYSTOP || pTipoOrdem == OP_BUY) {
if (ad_32 != 0.0) ld_52 = Ask + f0_7(ad_32);
else {
if (ad_40 != 0.0) ld_52 = ad_40;
else ld_52 = Ask;
}
if (ad_12 > 0.0) ld_60 = NormalizeDoubleDigits(ld_52 - f0_7(ad_12));
if (ad_20 > 0.0) ld_68 = NormalizeDoubleDigits(ld_52 + f0_7(ad_20));
} else {
if (pTipoOrdem == OP_SELLLIMIT || pTipoOrdem == OP_SELLSTOP || pTipoOrdem == OP_SELL) {
if (ad_32 != 0.0) ld_52 = Bid - f0_7(ad_32);
else {
if (ad_40 != 0.0) ld_52 = ad_40;
else ld_52 = Bid;
}
if (ad_12 > 0.0) ld_60 = NormalizeDoubleDigits(ld_52 + f0_7(ad_12));
if (ad_20 > 0.0) ld_68 = NormalizeDoubleDigits(ld_52 - f0_7(ad_20));
}
}
if (!VerifyTradeBrokerBusy()) {
vgs_984 = "Sorry, but the trade context is busy!";
SetWarningLog("Order open error! OrderSend(" + Symbol() + ", " + GetStrTypeOrder(pTipoOrdem) + ", " + DoubleToStr(a_lots_4, 2) + ", " + DoubleToStr(ld_52, Digits) + ", " + DoubleToStr(vgi_952 * vDigits,
1) + ", " + DoubleToStr(ld_60, Digits) + ", " + DoubleToStr(ld_68, Digits) + ", \'" + vg_comment_956 + "\', " + DoubleToStr(a_magic_28, 0) + ") error - " + vgs_984);
return (0);
}
ld_76 = MarketInfo(OrderSymbol(), MODE_SPREAD) / vDigits;
SetTraceLog("Open order OrderSend(" + Symbol() + ", " + GetStrTypeOrder(pTipoOrdem) + ", " + DoubleToStr(a_lots_4, 2) + ", " + DoubleToStr(ld_52, Digits) + ", " + DoubleToStr(vgi_952 * vDigits,
1) + ", " + DoubleToStr(ld_60, Digits) + ", " + DoubleToStr(ld_68, Digits) + ", \'" + vg_comment_956 + "\', " + DoubleToStr(a_magic_28, 0) + ") ... Current spread: " + GetDoubleToStr(ld_76, 2));
li_84 = GetTickCount();
ticket_88 = -1;
if (vgi_948) ticket_88 = OrderSend(Symbol(), pTipoOrdem, a_lots_4, NormalizeDoubleDigits(ld_52), vgi_952 * vDigits, 0, 0, vg_comment_956, a_magic_28, 0, color_48);
else ticket_88 = OrderSend(Symbol(), pTipoOrdem, a_lots_4, NormalizeDoubleDigits(ld_52), vgi_952 * vDigits, NormalizeDoubleDigits(ld_60), NormalizeDoubleDigits(ld_68), vg_comment_956, a_magic_28, 0, color_48);
if (ticket_88 < 0) {
vgs_984 = GetError(GetLastError());
SetWarningLog("Order open error! OrderSend(" + Symbol() + ", " + GetStrTypeOrder(pTipoOrdem) + ", " + DoubleToStr(a_lots_4, 2) + ", " + DoubleToStr(ld_52, Digits) + ", " + DoubleToStr(vgi_952 * vDigits,
1) + ", " + DoubleToStr(ld_60, Digits) + ", " + DoubleToStr(ld_68, Digits) + ", \'" + vg_comment_956 + "\', " + DoubleToStr(a_magic_28, 0) + ") error - " + vgs_984);
return (0);
}
vgi_992 = GetTickCount() - li_84;
VerifyTicket(ticket_88, StringConcatenate("New order (", vgi_992, " ms)!"));
vg_ticket_968 = ticket_88;
if (vgi_948) {
Sleep(1000);
VerifyTradeBrokerBusy();
if (!OrderModify(ticket_88, NormalizeDoubleDigits(OrderOpenPrice()), NormalizeDoubleDigits(ld_60), NormalizeDoubleDigits(ld_68), 0, Black)) {
vgs_984 = GetError(GetLastError());
SetErrorLog(StringConcatenate("OrderModify(", ticket_88, ", ", OrderOpenPrice(), ", ", ld_60, ", ", ld_68, ", 0) error (method: OpenOrder) - " + vgs_984));
}
}
if (vg_bool_964 && NormalizeDoubleDigits(OrderOpenPrice()) != NormalizeDoubleDigits(ld_52)) {
ld_92 = f0_139(OrderOpenPrice() - ld_52);
str_concat_100 = StringConcatenate("[", Symbol(), " ", f0_12(Period()), "] Order (", ticket_88, ") open price changed (", ld_92, " pips)! Original: ", NormalizeDoubleDigits(ld_52),
", Opened price: ", NormalizeDoubleDigits(OrderOpenPrice()), ", Before spread: ", ld_76);
if (ld_92 >= 1.0 || ld_92 <= -1.0) SetErrorLogAlert(str_concat_100);
else SetErrorLog(str_concat_100);
}
vgi_972 = Time[0];
if (pTipoOrdem == OP_BUY) vgi_nsd_976 = vgi_972;
else
if (pTipoOrdem == OP_SELL) vgi_nsd_980 = vgi_972;
}
return (1);
}
// F235F73FF9E6C9B0402F9856A41D6B1B
int ModifyTicketOrder(int a_ticket_0, double ad_4, double ad_12, double a_order_stoploss_20 = 0.0, double a_order_takeprofit_28 = 0.0) {
double price_40;
double order_stoploss_48;
double order_takeprofit_56;
bool li_ret_36 = FALSE;
if (OrderSelect(a_ticket_0, SELECT_BY_TICKET, MODE_TRADES)) {
order_stoploss_48 = OrderStopLoss();
order_takeprofit_56 = OrderTakeProfit();
if (OrderType() == OP_BUY) {
price_40 = MarketInfo(OrderSymbol(), MODE_ASK);
if (ad_4 > 0.0) order_stoploss_48 = NormalizeDoubleDigits(price_40 - f0_7(ad_4));
if (ad_12 > 0.0) order_takeprofit_56 = NormalizeDoubleDigits(price_40 + f0_7(ad_12));
} else {
if (OrderType() == OP_SELL) {
price_40 = MarketInfo(OrderSymbol(), MODE_BID);
if (ad_4 > 0.0) order_stoploss_48 = NormalizeDoubleDigits(price_40 + f0_7(ad_4));
if (ad_12 > 0.0) order_takeprofit_56 = NormalizeDoubleDigits(price_40 - f0_7(ad_12));
}
}
if (a_order_stoploss_20 > 0.0) order_stoploss_48 = a_order_stoploss_20;
if (a_order_takeprofit_28 > 0.0) order_takeprofit_56 = a_order_takeprofit_28;
if ((order_stoploss_48 > 0.0 && NormalizeDoubleDigits(order_stoploss_48) != NormalizeDoubleDigits(OrderStopLoss())) || (order_takeprofit_56 > 0.0 && NormalizeDoubleDigits(order_takeprofit_56) != NormalizeDoubleDigits(OrderTakeProfit()))) {
VerifyTradeBrokerBusy();
if (!OrderModify(OrderTicket(), NormalizeDoubleDigits(OrderOpenPrice()), NormalizeDoubleDigits(order_stoploss_48), NormalizeDoubleDigits(order_takeprofit_56), 0)) {
vgs_984 = GetError(GetLastError());
SetErrorLog(StringConcatenate("OrderModify(", OrderTicket(), ", ", OrderOpenPrice(), ", ", order_stoploss_48, ", ", order_takeprofit_56, ", 0) error (method: ModifyTicketOrder) - " +
vgs_984));
li_ret_36 = FALSE;
} else {
li_ret_36 = TRUE;
VerifyTicket(a_ticket_0, "Modify order!");
}
}
} else SetErrorLog("OrderSelect() error (method: ModifyTicketOrder) - " + GetError(GetLastError()));
return (li_ret_36);
}
// B48C18DF8AF1F72C0BA3C0FF3FEED7C1
int ModifyPendingOrderPrice(int a_ticket_0, double ad_4, double ad_12, double ad_20) {
bool li_ret_28 = FALSE;
if (OrderSelect(a_ticket_0, SELECT_BY_TICKET, MODE_TRADES)) {
if (NormalizeDoubleDigits(OrderOpenPrice()) != NormalizeDoubleDigits(ad_4)) {
VerifyTradeBrokerBusy();
if (!OrderModify(OrderTicket(), NormalizeDoubleDigits(ad_4), NormalizeDoubleDigits(ad_12), NormalizeDoubleDigits(ad_20), OrderExpiration(), GetColor(OrderType()))) {
vgs_984 = GetError(GetLastError());
SetErrorLog(StringConcatenate("OrderModify(", OrderTicket(), ", ", ad_4, ", ", ad_12, ", ", ad_20, ", ", OrderExpiration(), ") error (method: ModifyPendingOrderPrice) - " +
vgs_984));
li_ret_28 = FALSE;
} else {
li_ret_28 = TRUE;
VerifyTicket(a_ticket_0, "Modify pending order!");
}
}
} else SetErrorLog("OrderSelect() error (method: ModifyPendingOrderPrice) - " + GetError(GetLastError()));
return (li_ret_28);
}
// 1F083AF200C3B46024FBE1FC4E9CC80E
int GetColor(int ai_0) {
if (ai_0 == 0 || ai_0 == 2 || ai_0 == 4) return (16711680);
if (ai_0 == 1 || ai_0 == 3 || ai_0 == 5) return (255);
return (0);
}
// D43CF0F27808F53715C65F405A5023D1
int CloseOrder(int a_ticket_0) {
color color_4;
int li_8;
double ld_12;
double ld_20;
int is_closed_28;
double ld_32;
string str_concat_40;
if (OrderSelect(a_ticket_0, SELECT_BY_TICKET)) {
color_4 = GetColor(OrderType());
li_8 = GetTickCount();
VerifyTradeBrokerBusy();
ld_12 = GetPrimeiroValorDouble(OrderType() == OP_BUY, Bid, Ask);
ld_20 = MarketInfo(OrderSymbol(), MODE_SPREAD) / vDigits;
is_closed_28 = OrderClose(OrderTicket(), OrderLots(), NormalizeDoubleDigits(OrderClosePrice()), vgi_952 * vDigits, color_4);
if (is_closed_28 < 0) {
SetErrorLogAlert("OrderClose(" + OrderTicket() + ") error (method: CloseOrder) - " + GetError(GetLastError()));
return (0);
}
vgi_992 = GetTickCount() - li_8;
VerifyTicket(OrderTicket(), StringConcatenate("Order closed (", vgi_992, " ms)! Profit: $", DoubleToStr(OrderProfit() + OrderSwap() + OrderCommission(), 2)));
if (!(vg_bool_964)) return (1);
if (NormalizeDoubleDigits(OrderClosePrice()) == NormalizeDoubleDigits(ld_12)) return (1);
ld_32 = f0_139(OrderClosePrice() - ld_12);
str_concat_40 = StringConcatenate("[", Symbol(), " ", f0_12(Period()), "] Order (", a_ticket_0, ") close price changed (", ld_32, " pips)! Original: ", NormalizeDoubleDigits(ld_12),
", Closed price: ", NormalizeDoubleDigits(OrderClosePrice()), ", Before spread: ", ld_20);
if (ld_32 >= 1.0 || ld_32 <= -1.0) SetErrorLogAlert(str_concat_40);
else SetErrorLog(str_concat_40);
return (1);
}
return (0);
}
// 29C540D42AE92A3223D6E1A9AB741030
int CloseOrderPartial(int a_ticket_0, int ai_4) {
double order_lots_12;
double lots_20;
bool is_closed_8 = FALSE;
if (OrderSelect(a_ticket_0, SELECT_BY_TICKET, MODE_TRADES)) {
order_lots_12 = OrderLots();
lots_20 = GetNormalizeLot(order_lots_12 * ai_4 / 100.0);
if (lots_20 > 0.0 && lots_20 != order_lots_12) {
VerifyTradeBrokerBusy();
VerifyTicket(OrderTicket(), "Close partial order. Partial LOT: " + DoubleToStr(lots_20, 2));
is_closed_8 = OrderClose(OrderTicket(), lots_20, NormalizeDoubleDigits(OrderClosePrice()), vgi_952 * vDigits, Yellow);
if (!is_closed_8) SetErrorLogAlert("OrderClose(" + OrderTicket() + ", " + lots_20 + ") error (method: CloseOrderPartial) - " + GetError(GetLastError()));
}
}
return (is_closed_8);
}
// B428A88CD9DF965BCCC23643E79706F2
int GetOrderCount(int pTipoOrdem, int pMagicNumber) {
int count_8 = 0;
for (int pos_12 = OrdersTotal() - 1; pos_12 >= 0; pos_12--) {
if (OrderSelect(pos_12, SELECT_BY_POS, MODE_TRADES)) {
if (OrderType() == pTipoOrdem || pTipoOrdem == -1 && OrderSymbol() == Symbol() && OrderMagicNumber() == pMagicNumber) count_8++;
} else Print("OrderSelect() error (method: getOrderCount) - ", GetError(GetLastError()));
}
return (count_8);
}
// 3562582EF5099112B14C7258B3FECDA0
double GetOrderProfit(int pTipoOrdem, int pMagicNumber) {
double ld_ret_8 = 0.0;
for (int pos_16 = OrdersTotal() - 1; pos_16 >= 0; pos_16--) {
if (OrderSelect(pos_16, SELECT_BY_POS, MODE_TRADES)) {
if (OrderType() == pTipoOrdem || pTipoOrdem == -1 && OrderSymbol() == Symbol() && OrderMagicNumber() == pMagicNumber) ld_ret_8 += OrderProfit() + OrderSwap() + OrderCommission();
} else Print("OrderSelect() error (method: getOrderProfit) - ", GetError(GetLastError()));
}
return (ld_ret_8);
}
// Retorna o ticket da ultima ordem aberta
int GetLastOpenTicket(int pTipoOrdem, int pMagicNumber) {
int ticket_8;
int ticket_12 = 0;
for (int pos_16 = OrdersTotal() - 1; pos_16 >= 0; pos_16--) {
OrderSelect(pos_16, SELECT_BY_POS, MODE_TRADES);
if (OrderType() == pTipoOrdem || pTipoOrdem == -1 && OrderSymbol() == Symbol() && OrderMagicNumber() == pMagicNumber) {
ticket_8 = OrderTicket();
if (ticket_8 > ticket_12) ticket_12 = ticket_8;
}
}
return (ticket_12);
}
// E39EB44E9236337DBF2220C9902FAD68
string f0_151(string as_0, int ai_8 = -1) {
if (ai_8 == -1) return (StringConcatenate(vgs_996, "G_", as_0));
return (StringConcatenate(vgs_996, ai_8, "_", as_0));
}
// 5D5B78699E57104F2FA03BBDF7B9197B
string CreateHLine(string as_0, string a_text_8, int ai_16 = -1) {
string name_20 = f0_151(as_0, ai_16);
if (ObjectFind(name_20) == -1) {
ObjectCreate(name_20, OBJ_HLINE, 0, 0, 0);
ObjectSet(name_20, OBJPROP_COLOR, CLR_NONE);
}
ObjectSetText(name_20, a_text_8, 0);
return (name_20);
}
// FBDC0FE21760429A9A6F11B2349D9766
void f0_172(string as_0, int ai_8, int ai_12 = -1) {
CreateHLine(as_0, GetDoubleToStr(ai_8, 0), ai_12);
}
// F21D692D6A0306D3155FDAA501D856C4
void f0_164(string as_0, int ai_8, int ai_12 = -1) {
f0_172(as_0, GetPrimeiroValor(ai_8, 1, 0), ai_12);
}
// 02349AD6FAB026BA3C46B06ECCBC51A6
string CreateHLineForTicket(string as_0, double ad_8, int ai_16 = -1, color a_clr_20 = -1, int a_style_24 = 0) {
string name_28 = CreateHLine(as_0, ad_8, ai_16);
ObjectSet(name_28, OBJPROP_PRICE1, ad_8);
ObjectSet(name_28, OBJPROP_STYLE, a_style_24);
if (a_clr_20 != CLR_NONE) ObjectSet(name_28, OBJPROP_COLOR, a_clr_20);
return (name_28);
}
// C55582518CBA2C464F29F5BAE1C68DEF
string f0_129(string as_0, int ai_8 = -1) {
string ls_nsd_20;
string name_12 = f0_151(as_0, ai_8);
return (ObjectDescription(name_12));
}
// 356039C5D703DCB56F4879935BA31135
double f0_31(string as_0, int ai_8 = -1) {
string name_12 = f0_151(as_0, ai_8);
if (ObjectFind(name_12) == -1) return (EMPTY_VALUE);
return (NormalizeDoubleDigits(ObjectGet(name_12, OBJPROP_PRICE1)));
}
// 5173A4BF4B690EEB6E19049C96B168CE
int f0_56(string as_0, int ai_8 = -1) {
string ls_12 = f0_129(as_0, ai_8);
if (ls_12 == "") return (EMPTY_VALUE);
return (MathRound(StrToDouble(ls_12)));
}
// DCDE74C7DAC0D8DB7A9D163D8715FA29
double f0_145(string as_0, int ai_8 = -1) {
string ls_12 = f0_129(as_0, ai_8);
if (ls_12 == "") return (EMPTY_VALUE);
return (StrToDouble(ls_12));
}
// 4226BC9394DA5D70553D304AE75F7AFB
int f0_45(string as_0, int ai_8 = -1) {
string ls_12 = f0_129(as_0, ai_8);
if (ls_12 == "") return (0);
return (ls_12 == "1");
}
// 0F4BEB3FF65A97C25BFCE93C0F43B321
string f0_9(string as_0, int ai_8 = -1) {
string ls_12 = ".";
if (IsTesting()) ls_12 = "t.";
if (ai_8 == -1) return (StringConcatenate(vgs_1004, ls_12, "G_", Symbol(), "_", MagicNumber, "_", as_0));
return (StringConcatenate(vgs_1004, ls_12, ai_8, "_", as_0));
}
// 22DDEC2378F13A723E0661C5486289FB
double f0_22(string as_0, int ai_8 = -1, double ad_12 = EMPTY_VALUE, bool ai_20 = FALSE) {
string var_name_24 = f0_9(as_0, ai_8);
if (GlobalVariableCheck(var_name_24)) return (GlobalVariableGet(var_name_24));
if (ai_20 && ad_12 != EMPTY_VALUE) GlobalVariableSet(var_name_24, ad_12);
return (ad_12);
}
// 76D720982E767099D1C64D3CFDDE7E8D
void VerifyAutoCloseAll() {
bool li_4;
double ld_8;
double ld_16;
for (int pos_0 = OrdersTotal() - 1; pos_0 >= 0; pos_0--) {
if (OrderSelect(pos_0, SELECT_BY_POS, MODE_TRADES)) {
if (vgi_736 || OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderCloseTime() == 0) {
if (OrderType() == OP_BUY || OrderType() == OP_SELL) {
if (!(GerenciaGrid(OrderTicket()))) break;
continue;
}
if (OrderSelect(pos_0, SELECT_BY_POS, MODE_TRADES)) f0_167(OrderTicket());
}
}
}
if (AutoCloseAllProfitMoney > 0.0 || AutoCloseAllProfitPercent > 0.0 || AutoCloseAllLossMoney > 0.0 || AutoCloseAllLossPercent > 0.0) {
li_4 = FALSE;
ld_8 = GetOrderProfit(-1, MagicNumber);
if (AutoCloseAllProfitMoney > 0.0) {
if (ld_8 >= AutoCloseAllProfitMoney) {
SetWarningLog(StringConcatenate("Profit reach the \'AutoCloseAllProfitMoney\' value (", ld_8, " >= ", AutoCloseAllProfitMoney, "). Close all orders..."));
li_4 = TRUE;
}
}
if (!li_4 && AutoCloseAllLossMoney > 0.0) {
ld_8 = GetOrderProfit(-1, MagicNumber);
if (ld_8 <= 0.0 - AutoCloseAllLossMoney) {
SetWarningLog(StringConcatenate("Loss reach the \'AutoCloseAllLossMoney\' value (", ld_8, " <= -", AutoCloseAllLossMoney, "). Close all orders..."));
li_4 = TRUE;
}
}
if (!li_4 && AutoCloseAllProfitPercent > 0.0 && AccountBalance() > 0.0) {
ld_16 = AccountBalance() * (AutoCloseAllProfitPercent / 100.0);
if (ld_8 >= ld_16) {
SetWarningLog(StringConcatenate("Profit reach the \'AutoCloseAllProfitPercent\' value (", AutoCloseAllProfitPercent, "%). Profit: ", ld_8, ", EQLimit: ", ld_16, ". Close all orders..."));
li_4 = TRUE;
}
}
if (!li_4 && AutoCloseAllLossPercent > 0.0 && AccountBalance() > 0.0) {
ld_16 = -1.0 * (AccountBalance() * AutoCloseAllLossPercent / 100.0);
if (ld_16 < 0.0 && ld_8 <= ld_16) {
SetWarningLog(StringConcatenate("Profit reach the \'AutoCloseAllLossPercent\' value (", AutoCloseAllLossPercent, "%). Profit: ", ld_8, ", EQLimit: ", ld_16, ". Close all orders..."));
li_4 = TRUE;
}
}
if (li_4) {
ExibeMensagem("Please wait!", "Closing all orders...", 3);
CloseAllOrders();
}
}
LimpaLinhas();
if (DrawPriceLabel) f0_148(MagicNumber);
}
// C2E84E4BE8F91EAB42131A8D7A20024E
bool GerenciaGrid(int a_ticket_0) {
bool li_4;
int li_8;
int li_12;
if (OrderTicket() == a_ticket_0 || OrderSelect(a_ticket_0, SELECT_BY_TICKET, MODE_TRADES)) {
f0_167(a_ticket_0);
if (OrderTicket() == a_ticket_0 || OrderSelect(a_ticket_0, SELECT_BY_TICKET, MODE_TRADES) && OrderCloseTime() == 0) {
li_4 = f0_45(vg_NameGrid, a_ticket_0);
li_8 = f0_56(vg_NamGridParent, a_ticket_0);
if (li_8 != EMPTY_VALUE) {
if (f0_56(vg_NameLevelGrid, li_8) == EMPTY_VALUE && vg_bool_776) {
SetLog(StringConcatenate("Parent order (", li_8, ") not found. Closing..."));
CloseAllGrid(a_ticket_0);
return (TRUE);
}
}
if (li_4) OpenGridfoTicket(a_ticket_0);
else {
if (AutoGridMode) {
li_12 = f0_56(vg_NameGrid, a_ticket_0);
if (li_12 == EMPTY_VALUE && li_8 == EMPTY_VALUE) f0_134(a_ticket_0);
}
}
}
}
return (TRUE);
}
// AAEEC1DA66744E56049D8EB29EBD4B9E
int OpenOrderNow(int ai_0, double ad_4) {
double ld_12;
if (DontAllowOrderOpenMaxSpread > 0.0) {
ld_12 = MarketInfo(Symbol(), MODE_SPREAD) / vDigits;
if (ld_12 >= DontAllowOrderOpenMaxSpread) {
SetWarningLog(StringConcatenate("Order open don\'t allowed! Spread is too high: ", ld_12, " (Max: ", DontAllowOrderOpenMaxSpread, ")"));
ExibeMensagem("Order open error!", "Spread is too high! Current: " + GetDoubleToStr(ld_12, 1) + " (Max: " + GetDoubleToStr(DontAllowOrderOpenMaxSpread, 1) + ")", 2, 2000);
return (-1);
}
}
f0_5();
int ticket_20 = -1;
if (OpenOrder(ai_0, ad_4, 0, 0, MagicNumber)) {
ticket_20 = vg_ticket_968;
f0_160(ticket_20);
WindowRedraw();
GerenciaTicket(ticket_20);
} else f0_1();
return (ticket_20);
}
// 86EFCD35CE6F1F09B11E9598963798FE
int CloseAllOrders() {
for (int pos_0 = OrdersTotal() - 1; pos_0 >= 0; pos_0--) {
if (OrderSelect(pos_0, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol() == Symbol())
if (OrderMagicNumber() == MagicNumber) CloseAllGrid(OrderTicket());
}
}
return (0);
}
// 19DAC327423444E9E3A386AD9DFED170
int CloseAllGrid(int ai_0) {
f0_54(ai_0);
int li_4 = f0_56(vg_NameGrid, ai_0);
int li_ret_8 = CloseOrder(ai_0);
if (li_ret_8 && li_4 != EMPTY_VALUE) {
for (int pos_12 = OrdersTotal() - 1; pos_12 >= 0; pos_12--) {
if (OrderSelect(pos_12, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol() == Symbol()) {
if (OrderMagicNumber() == MagicNumber)
if (f0_56(vg_NamGridParent, OrderTicket()) == ai_0) CloseOrder(OrderTicket());
}
}
}
}
f0_131(ai_0);
return (li_ret_8);
}
// 712C4A32F28797E584F3D1327EA2AE16
int CloseOrderPartialNow(int a_ticket_0 = -1, double ad_4 = 0.0) {
double datetime_12;
double ld_20;
double ld_28;
double ld_36;
double ld_44;
double ld_52;
int li_ret_60;
int ticket_68;
if (a_ticket_0 == -1) a_ticket_0 = GetLastOpenTicket(-1, MagicNumber);
if (a_ticket_0 != -1) {
if (ad_4 == 0.0) ad_4 = QuickPartialClose;
if (ad_4 > 0.0 && ad_4 <= 100.0) {
SetLog("Partial close for " + a_ticket_0);
OrderSelect(a_ticket_0, SELECT_BY_TICKET, MODE_TRADES);
datetime_12 = OrderOpenTime();
ld_20 = f0_31(vg_NameLineSL, a_ticket_0);
ld_28 = f0_31(vg_NameLineTP, a_ticket_0);
ld_36 = f0_31(vg_PartialClose1, a_ticket_0);
ld_44 = f0_31(vg_PartialClose2, a_ticket_0);
ld_52 = f0_31(vg_PartialClose3, a_ticket_0);
f0_54(a_ticket_0);
li_ret_60 = CloseOrderPartial(a_ticket_0, ad_4);
f0_131(a_ticket_0);
for (int pos_64 = 0; pos_64 < OrdersTotal(); pos_64++) {
if (OrderSelect(pos_64, SELECT_BY_POS, MODE_TRADES)) {
if (OrderOpenTime() == datetime_12) {
ticket_68 = OrderTicket();
if (ld_20 != EMPTY_VALUE) CreateHLineForTicket(vg_NameLineSL, ld_20, ticket_68, StopLossColor);
if (ld_28 != EMPTY_VALUE) CreateHLineForTicket(vg_NameLineTP, ld_28, ticket_68, TakeProfitColor);
if (ld_36 != EMPTY_VALUE) CreateHLineForPartialClose(ticket_68, 1, PartialClosePos1, ld_36);
if (ld_44 != EMPTY_VALUE) CreateHLineForPartialClose(ticket_68, 2, PartialClosePos2, ld_44);
if (ld_52 != EMPTY_VALUE) CreateHLineForPartialClose(ticket_68, 3, PartialClosePos3, ld_52);
if (vg_ticket_820 != a_ticket_0) break;
vg_ticket_820 = ticket_68;
break;
}
}
}
return (li_ret_60);
}
}
return (0);
}
// C628A3FD73C8D961CDB3A222D4565D74
void SetBreakeEven(int a_ticket_0 = -1) {
double ld_4;
if (a_ticket_0 == -1) a_ticket_0 = GetLastOpenTicket(-1, MagicNumber);
SetLog("Order break-even for " + a_ticket_0);
if (OrderSelect(a_ticket_0, SELECT_BY_TICKET, MODE_TRADES)) {
ld_4 = OrderOpenPrice() + f0_7(GetPrimeiroValorDouble(OrderType() == OP_BUY, BreakEvenPips, -BreakEvenPips));
if ((OrderType() == OP_BUY && Bid > OrderOpenPrice()) || (OrderType() == OP_SELL && Ask < OrderOpenPrice())) CreateHLineForTicket(vg_NameLineSL, ld_4, a_ticket_0);
}
}
// 60D14E47B2DF497D9D8BFC9A6DF1C130
void SendOrderReverse(int a_ticket_0 = -1) {
double order_lots_4;
double cmd_12;
int ticket_20;
if (a_ticket_0 == -1) a_ticket_0 = GetLastOpenTicket(-1, MagicNumber);
SetLog("Order reverse for " + a_ticket_0);
if (OrderSelect(a_ticket_0, SELECT_BY_TICKET, MODE_TRADES)) {
order_lots_4 = OrderLots();
cmd_12 = OrderType();
if (CloseAllGrid(a_ticket_0)) {
ticket_20 = OpenOrderNow(1 - cmd_12, order_lots_4);
if (vg_ticket_820 == a_ticket_0) vg_ticket_820 = ticket_20;
}
}
}
// 5F3B02AD6210F6A480324B754A657904
int TrailingTicket(int a_ticket_0, int ai_4, bool ai_8) {
double ld_12;
double ld_20;
double bid_28;
double ask_36;
double ld_44;
double ld_52;
int li_ret_60;
if (OrderSelect(a_ticket_0, SELECT_BY_TICKET, MODE_TRADES)) {
ld_12 = NormalizeDoubleDigits(f0_145(vg_NameLineSL, a_ticket_0));
ld_20 = 0;
bid_28 = MarketInfo(OrderSymbol(), MODE_BID);
ask_36 = MarketInfo(OrderSymbol(), MODE_ASK);
ld_44 = GetOrderOpenPrice(a_ticket_0);
ld_52 = TrailingStopAt;
if (ld_52 == 0.0) ld_52 = MathMax(BreakEvenAt + BreakEvenPips, ai_4);
if (OrderType() == OP_BUY && ai_4 > 0 && ld_44 < bid_28 - f0_7(ld_52)) {
ld_20 = NormalizeDoubleDigits(bid_28 - f0_7(ai_4));
if (ld_12 >= ld_20) return (0);
SetTraceLog(StringConcatenate("Trailing stop active! Ticket: ", a_ticket_0, ", Bid: ", NormalizeDoubleDigits(bid_28), ", Trigger: ", ld_52, ", New SL: ", ld_20));
if (ai_8) li_ret_60 = ModifyTicketOrder(a_ticket_0, 0, 0, ld_20);
else {
CreateHLineForTicket(vg_NameLineSL, ld_20, a_ticket_0);
return (li_ret_60);
}
return (li_ret_60);
}
if (OrderType() == OP_SELL && ai_4 > 0 && ld_44 > ask_36 + f0_7(ld_52)) {
ld_20 = NormalizeDoubleDigits(ask_36 + f0_7(ai_4));
if (ld_12 > ld_20) {
SetTraceLog(StringConcatenate("Trailing stop active! Ticket: ", a_ticket_0, ", Ask: ", NormalizeDoubleDigits(ask_36), ", Trigger: ", ld_52, ", New SL: ", ld_20));
if (ai_8) li_ret_60 = ModifyTicketOrder(a_ticket_0, 0, 0, ld_20);
else {
CreateHLineForTicket(vg_NameLineSL, ld_20, a_ticket_0);
return (li_ret_60);
}
return (li_ret_60);
}
}
}
return (0);
}
// CA01614000B01CD69F6C857A26D84621
void f0_134(int ai_0) {
bool bool_4 = f0_45(vg_NameGrid, ai_0);
bool_4 = !bool_4;
f0_164(vg_NameGrid, bool_4, ai_0);
f0_172(vg_NameLevelGrid, 0, ai_0);
SetInfoLog(StringConcatenate("Grid mode: ", bool_4, " for ticket: ", ai_0));
}
// 2AC226274B5A56BE10DD89C0E4F6F6B6
int GetLevelGrid(int a_ticket_0) {
int li_12;
int li_ret_4 = 1;
for (int pos_8 = OrdersTotal() - 1; pos_8 >= 0; pos_8--) {
if (OrderSelect(pos_8, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol() == Symbol()) {
if (OrderMagicNumber() == MagicNumber && OrderCloseTime() == 0) {
li_12 = f0_56(vg_NamGridParent, OrderTicket());
if (li_12 == a_ticket_0) li_ret_4++;
}
}
}
}
OrderSelect(a_ticket_0, SELECT_BY_TICKET, MODE_TRADES);
return (li_ret_4);
}
// CCA9F5804B320357938880F3BA496D3D
int ValidTicket(int a_ticket_0) {
int li_16;
int li_20;
int li_4 = 0;
int ticket_8 = a_ticket_0;
for (int pos_12 = OrdersTotal() - 1; pos_12 >= 0; pos_12--) {
if (OrderSelect(pos_12, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol() == Symbol()) {
if (OrderMagicNumber() == MagicNumber && OrderCloseTime() == 0) {
li_16 = f0_56(vg_NamGridParent, OrderTicket());
li_20 = f0_56(vg_NameLevelGrid, OrderTicket());
if (li_16 == a_ticket_0 && li_20 != EMPTY_VALUE && li_20 > li_4) {
ticket_8 = OrderTicket();
li_4 = li_20;
}
}
}
}
}
OrderSelect(a_ticket_0, SELECT_BY_TICKET, MODE_TRADES);
return (ticket_8);
}
// E1D3C83CF0954E411ECB4A5C870BE017
double f0_149(double ad_0 = 0.0, int ai_8 = 0) {
double ld_12 = 0.0;
double ld_nsd_20 = 0.0;
ld_12 = ad_0 * MathPow(GridLotMultiplier, ai_8);
ld_12 = GetNormalizeLot(ld_12);
return (ld_12);
}
// 930D3DF8ACDBA14442C51753EE796F0C
double GetProfitTicket(int a_ticket_0) {
double ld_ret_8;
int li_20;
int li_4 = f0_56(vg_NameGrid, a_ticket_0);
if (li_4 == EMPTY_VALUE) {
if (a_ticket_0 == OrderTicket() || OrderSelect(a_ticket_0, SELECT_BY_TICKET, MODE_TRADES)) return (OrderProfit() + OrderSwap() + OrderCommission());
} else {
ld_ret_8 = 0;
for (int pos_16 = OrdersTotal() - 1; pos_16 >= 0; pos_16--) {
if (OrderSelect(pos_16, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol() == Symbol()) {
if (OrderMagicNumber() == MagicNumber) {
li_20 = f0_56(vg_NamGridParent, OrderTicket());
if (li_20 == a_ticket_0 || OrderTicket() == a_ticket_0) ld_ret_8 += OrderProfit() + OrderSwap() + OrderCommission();
}
}
}
}
OrderSelect(a_ticket_0, SELECT_BY_TICKET, MODE_TRADES);
return (ld_ret_8);
}
return (0.0);
}
// 6931510EEC1D544CDBB7B21C811B1A6A
double GetOrderOpenPrice(int a_ticket_0) {
double order_open_price_4;
int li_12;
double order_open_price_16;
if (a_ticket_0 == OrderTicket() || OrderSelect(a_ticket_0, SELECT_BY_TICKET, MODE_TRADES)) {
order_open_price_4 = OrderOpenPrice();
li_12 = f0_56(vg_NameGrid, a_ticket_0);
if (li_12 == EMPTY_VALUE) return (order_open_price_4);
order_open_price_16 = f0_31(vg_NameGridPrice, a_ticket_0);
if (order_open_price_16 == EMPTY_VALUE) return (order_open_price_4);
order_open_price_4 = order_open_price_16;
return (order_open_price_4);
}
return (0.0);
}
// 54013F4126E159CFBF9EDBF5C54CB30B
double GetLotsforTicket(int a_ticket_0) {
double ld_ret_8;
int li_20;
int li_4 = f0_56(vg_NameGrid, a_ticket_0);
if (li_4 == EMPTY_VALUE) {
if (a_ticket_0 == OrderTicket() || OrderSelect(a_ticket_0, SELECT_BY_TICKET, MODE_TRADES)) return (OrderLots());
} else {
ld_ret_8 = 0;
for (int pos_16 = OrdersTotal() - 1; pos_16 >= 0; pos_16--) {
if (OrderSelect(pos_16, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol() == Symbol()) {
if (OrderMagicNumber() == MagicNumber) {
li_20 = f0_56(vg_NamGridParent, OrderTicket());
if (li_20 == a_ticket_0 || OrderTicket() == a_ticket_0) ld_ret_8 += OrderLots();
}
}
}
}
OrderSelect(a_ticket_0, SELECT_BY_TICKET, MODE_TRADES);
return (ld_ret_8);
}
return (0.0);
}
// A7A7BD63893A41868B6FD78A8AF34542
void f0_110() {
if (vgi_1220 != 0 && vgi_1216 != 0 && GetTickCount() - vgi_1216 > vgi_1220) f0_33();
}
// 3CFCFEF22F80E2BA0879716EC20B2242
voidExibeMensagem(string as_0, string as_8, int ai_16, int ai_20 = 0) {
string name_24;
string ls_32;
int li_40;
int li_44;
string str_concat_48;
if (ShowNotifications) {
li_40 = MathRound((vgi_1192 - vgi_1228) / 2);
li_44 = vgi_1224;
str_concat_48 = StringConcatenate("DrW_", vgs_1208);
name_24 = str_concat_48 + "0";
CriaLabel(name_24, li_40, li_44, "gggggggggg", 28, "Webdings", C'0x28,0x32,0x3C');
ObjectSet(name_24, OBJPROP_BACK, BackgroundOpacity);
ls_32 = str_concat_48 + "1";
name_24 = str_concat_48 + "2";
if (ai_16 == 1) {
CriaLabel(ls_32, li_40 + 5, li_44 - 5, CharToStr(252), 40, "Wingdings", Black);
CriaLabel(name_24, li_40 + 4, li_44 - 6, CharToStr(252), 40, "Wingdings", LimeGreen);
} else {
if (ai_16 == 2) {
CriaLabel(ls_32, li_40 + 5, li_44 - 5, CharToStr(251), 40, "Wingdings", Black);
CriaLabel(name_24, li_40 + 4, li_44 - 6, CharToStr(251), 40, "Wingdings", Red);
} else {
if (ai_16 == 3) {
CriaLabel(ls_32, li_40 + 16, li_44 - 2, CharToStr(54), 28, "Wingdings", Black);
CriaLabel(name_24, li_40 + 15, li_44 - 1, CharToStr(54), 28, "Wingdings", White);
}
}
}
name_24 = str_concat_48 + "3";
CriaLabel(name_24, li_40 + 51, li_44 + 4, as_0, 10, "Verdana", Black);
name_24 = str_concat_48 + "4";
CriaLabel(name_24, li_40 + 50, li_44 + 3, as_0, 10, "Verdana", Gold);
name_24 = str_concat_48 + "5";
CriaLabel(name_24, li_40 + 50, li_44 + 21, as_8, 8, "Verdana", Lavender);
vgi_1220 = ai_20;
if (ai_20 != 0) vgi_1216 = GetTickCount();
vgi_1236 = TRUE;
WindowRedraw();
}
}
// EF55EB61069A84B053F95051A3724466
void f0_160(int a_ticket_0) {
if (OrderSelect(a_ticket_0, SELECT_BY_TICKET, MODE_TRADES))ExibeMensagem("Order opened successfully!", StringConcatenate("Ticket: ", a_ticket_0, " Price: ", GetDoubleToStr(OrderOpenPrice(), Digits), " Time: ", vgi_992 + "ms"), 1, 2000);
}
// C60DA1C2D19499586BB98E9E78000D23
void f0_131(int a_ticket_0) {
if (!OrderSelect(a_ticket_0, SELECT_BY_TICKET, MODE_HISTORY)) {
ExibeMensagem("Order closed successfully!", "", 1, 1000);
return;
}
ExibeMensagem("Order closed successfully!", StringConcatenate("Ticket: ", a_ticket_0, " Profit: ", f0_136(OrderProfit() + OrderSwap() + OrderCommission(), 2), " Time: ",
vgi_992 + "ms"), 1, 2000);
}
// 02FEDB4208B169F2AEFE06EC40955FA4
void f0_1() {
ExibeMensagem("Order open error!", vgs_984, 2, 2000);
}
// 09F811BB4E16AC1455F42F8FCE933EB7
void f0_5() {
ExibeMensagem("Please wait!", "Opening order...", 3);
}
// 5004AD33EC6D9A3D31C23DBBA6B929AC
void f0_54(int ai_0) {
ExibeMensagem("Please wait!", "Closing order " + GetDoubleToStr(ai_0) + "...", 3);
}
// 356C0B5B48197BDAC60AC2CA3FDFD40D
void f0_33() {
string str_concat_0 = StringConcatenate("DrW_", vgs_1208);
f0_38(str_concat_0);
vgi_1216 = 0;
vgi_1236 = FALSE;
WindowRedraw();
}
// 123E9B4FB777D3655C8723715E95FCBB
void ExibeControlPainel() {
int li_0;
int li_4;
string str_concat_8;
string name_16;
string str_concat_24;
string ls_32;
if (ShowControlPanel) {
li_0 = vgi_1268;
li_4 = vgi_1272;
str_concat_8 = StringConcatenate("DrW_", vgs_1260, "Bvg_");
name_16 = str_concat_8 + "0";
ObjectDelete(name_16);
CriaLabel(name_16, li_0, li_4, "g", 120, "Webdings", vgi_452);
ObjectSet(name_16, OBJPROP_BACK, BackgroundOpacity);
name_16 = str_concat_8 + "1";
ObjectDelete(name_16);
CriaLabel(name_16, li_0 + 5, li_4 + 2, "gggggggg", 14, "Webdings", C'0x8B,0x66,0x10');
str_concat_24 = StringConcatenate("IceFX ", "TraderAgent", " ", GetTypeLicence());
name_16 = str_concat_8 + "2";
ObjectDelete(name_16);
CriaLabel(name_16, li_0 + 17, li_4 + 7, str_concat_24, 10, "Tahoma", Black);
name_16 = str_concat_8 + "3";
ObjectDelete(name_16);
CriaLabel(name_16, li_0 + 18, li_4 + 6, str_concat_24, 10, "Tahoma", Gold);
ls_32 = CharToStr(145);
name_16 = str_concat_8 + "5";
ObjectDelete(name_16);
CriaLabel(name_16, li_0 - 10, li_4 - 9, ls_32, 26, "Webdings", C'0x32,0x32,0x32');
name_16 = str_concat_8 + "6";
ObjectDelete(name_16);
CriaLabel(name_16, li_0 - 11, li_4 - 10, ls_32, 26, "Webdings", Gold);
SetMatrix();
SettextBtn(0, StringConcatenate("Buy ", GetDoubleToStr(vgd_748, 2)));
SettextBtn(1, StringConcatenate("Sell ", GetDoubleToStr(vgd_748, 2)));
}
}
// 625A81B248C77C68CA67798166642489
void f0_68(int ai_0) {
int li_4 = vgi_1268;
int li_8 = vgi_1272;
string str_concat_12 = StringConcatenate("DrW_", vgs_1260, "Btn", ai_0, "_");
string name_20 = str_concat_12 + "BG";
ObjectDelete(name_20);
CriaLabel(name_20, li_4 + vgia_1252[ai_0][1], li_8 + vgia_1252[ai_0][2], "gg", 24, "Webdings", vgia_1252[ai_0][5]);
name_20 = str_concat_12 + "Text1";
ObjectDelete(name_20);
CriaLabel(name_20, li_4 + vgia_1252[ai_0][1] + vgia_1252[ai_0][7], li_8 + vgia_1252[ai_0][2] + vgi_1248 + 1, vgsa_1256[ai_0], vg_fontsize_1240, "Tahoma", Black);
name_20 = str_concat_12 + "Text2";
CriaLabel(name_20, li_4 + vgia_1252[ai_0][1] + vgia_1252[ai_0][7] + 1, li_8 + vgia_1252[ai_0][2] + vgi_1248, vgsa_1256[ai_0], vg_fontsize_1240, "Tahoma", vg_clr_1244);
name_20 = str_concat_12 + "Icon";
ObjectDelete(name_20);
CriaLabel(name_20, li_4 + vgia_1252[ai_0][1] + 26, li_8 + vgia_1252[ai_0][2], CharToStr(vgia_1252[ai_0][6]), vg_fontsize_1240, "Webdings", vg_clr_1244);
}
// 3AA2F22582134EAB3445680B1089F691
void SetMatrix() {
int li_0 = 10;
int li_4 = 85;
int li_8 = 35;
int li_12 = 40;
vgia_1252[0][0] = 0;
vgia_1252[0][1] = li_0;
vgia_1252[0][2] = li_8;
vgia_1252[0][3] = 66;
vgia_1252[0][4] = 34;
vgia_1252[0][5] = 6240281;
vgia_1252[0][6] = 53;
vgsa_1256[0] = "Buy 0.00";
vgia_1252[0][7] = 6;
vgia_1252[1][0] = 1;
vgia_1252[1][1] = li_4;
vgia_1252[1][2] = li_8;
vgia_1252[1][3] = 66;
vgia_1252[1][4] = 34;
vgia_1252[1][5] = 1644894;
vgia_1252[1][6] = 54;
vgsa_1256[1] = "Sell 0.00";
vgia_1252[1][7] = 7;
li_8 += li_12;
vgia_1252[2][0] = 2;
vgia_1252[2][1] = li_0;
vgia_1252[2][2] = li_8;
vgia_1252[2][3] = 66;
vgia_1252[2][4] = 34;
vgia_1252[2][5] = 5922330;
vgia_1252[2][6] = 114;
vgsa_1256[2] = "Partial";
vgia_1252[2][7] = 14;
vgia_1252[3][0] = 3;
vgia_1252[3][1] = li_4;
vgia_1252[3][2] = li_8;
vgia_1252[3][3] = 66;
vgia_1252[3][4] = 34;
vgia_1252[3][5] = 1662515;
vgia_1252[3][6] = 114;
vgsa_1256[3] = "Close all";
vgia_1252[3][7] = 7;
li_8 += li_12;
vgia_1252[5][0] = 5;
vgia_1252[5][1] = li_0;
vgia_1252[5][2] = li_8;
vgia_1252[5][3] = 66;
vgia_1252[5][4] = 34;
vgia_1252[5][5] = 1662302;
vgia_1252[5][6] = 97;
vgsa_1256[5] = "Breakeven";
vgia_1252[5][7] = 1;
vgia_1252[4][0] = 4;
vgia_1252[4][1] = li_4;
vgia_1252[4][2] = li_8;
vgia_1252[4][3] = 66;
vgia_1252[4][4] = 34;
vgia_1252[4][5] = 5970526;
vgia_1252[4][6] = 113;
vgsa_1256[4] = "Reverse";
vgia_1252[4][7] = 8;
li_8 += li_12;
for (int count_16 = 0; count_16 < ArrayRange(vgia_1252, 0); count_16++) f0_68(count_16);
}
// 1BEDD10B036445FC9065C868400C94C8
void SettextBtn(int ai_0, string a_text_4) {
vgsa_1256[ai_0] = a_text_4;
string str_concat_12 = StringConcatenate("DrW_", vgs_1260, "Btn", ai_0, "_", "Text1");
if (ObjectFind(str_concat_12) >= 0 && ObjectDescription(str_concat_12) != a_text_4) ObjectSetText(str_concat_12, a_text_4, vg_fontsize_1240, "Tahoma", Black);
str_concat_12 = StringConcatenate("DrW_", vgs_1260, "Btn", ai_0, "_", "Text2");
if (ObjectFind(str_concat_12) >= 0 && ObjectDescription(str_concat_12) != a_text_4) ObjectSetText(str_concat_12, a_text_4, vg_fontsize_1240, "Tahoma", vg_clr_1244);
}
// DC063D5188C6387A77D4A4B8AF2DF3B1
int f0_144() {
string str_concat_0 = StringConcatenate("DrW_", vgs_1260, "Bvg_0");
if (ShowControlPanel && ObjectFind(str_concat_0) == -1) ExibeControlPainel();
return (0);
}
// F85E6B1BCD21006936A5FC7650501B5A
int f0_170(int ai_0, int ai_4) {
if (!ShowControlPanel) return (0);
for (int count_8 = 0; count_8 < ArrayRange(vgia_1252, 0); count_8++) {
if (f0_85(ai_0, ai_4, count_8)) {
SetTraceLog("Pressed button: " + count_8);
if (count_8 == 0) {
if (vgd_748 > 0.0) OpenOrderNow(0, vgd_748);
else SetWarningLog("Invalid LOT size: " + GetDoubleToStr(vgd_748, 2));
} else {
if (count_8 == 1) {
if (vgd_748 > 0.0) OpenOrderNow(1, vgd_748);
else SetWarningLog("Invalid LOT size: " + GetDoubleToStr(vgd_748, 2));
} else {
if (count_8 == 2) CloseOrderPartialNow();
else {
if (count_8 == 3) CloseAllOrders();
else {
if (count_8 == 5) SetBreakeEven();
else
if (count_8 == 4) SendOrderReverse();
}
}
}
}
return (1);
}
}
return (0);
}
// 83C11C0D6BB6C72129E782F6802E19EF
int f0_85(int ai_0, int ai_4, int ai_8) {
return (vgi_1268 + vgia_1252[ai_8][1] < ai_0 && vgi_1268 + vgia_1252[ai_8][1] + vgia_1252[ai_8][3] > ai_0 && vgi_1272 + vgia_1252[ai_8][2] < ai_4 && vgi_1272 + vgia_1252[ai_8][2] +
vgia_1252[ai_8][4] > ai_4);
}
// B846A4EF99F35CE236E2A91B4E8E97B2
void f0_121() {
int li_0;
int li_4;
string str_concat_8;
string name_16;
string ls_24;
string ls_32;
if (ShowOrderListPanel) {
li_0 = vgi_1308;
li_4 = vgi_1312;
str_concat_8 = StringConcatenate("DrW_", vgs_1284);
name_16 = str_concat_8 + "0";
ObjectDelete(name_16);
CriaLabel(name_16, li_0, li_4, "g", 120, "Webdings", vgi_452);
ObjectSet(name_16, OBJPROP_BACK, BackgroundOpacity);
name_16 = str_concat_8 + "1";
ObjectDelete(name_16);
CriaLabel(name_16, li_0 + 5, li_4 + 2, "gggggggg", 14, "Webdings", C'0x14,0x14,0x14');
ls_24 = "Order list";
name_16 = str_concat_8 + "2";
ObjectDelete(name_16);
CriaLabel(name_16, li_0 + 55, li_4 + 7, ls_24, 10, "Tahoma", Black);
name_16 = str_concat_8 + "3";
ObjectDelete(name_16);
CriaLabel(name_16, li_0 + 54, li_4 + 6, ls_24, 10, "Tahoma", Gold);
ls_32 = CharToStr(157);
name_16 = str_concat_8 + "5";
ObjectDelete(name_16);
CriaLabel(name_16, li_0 + 9, li_4 + 6, ls_32, 12, "Webdings", C'0x32,0x32,0x32');
name_16 = str_concat_8 + "6";
ObjectDelete(name_16);
CriaLabel(name_16, li_0 + 8, li_4 + 5, ls_32, 12, "Webdings", Gold);
vgi_1324 = TRUE;
}
}
// 19BC271349716E65C7043520C1B84644
void PainelOrdersOpens(int ai_0) {
int color_24;
string ls_28;
string ls_36;
int li_44;
int li_48;
double ld_52;
int li_4 = vgi_1308;
int li_8 = vgi_1312 + vgi_1300;
string str_concat_12 = StringConcatenate("DrW_", vgs_1284, "Row", ai_0);
int ticket_20 = vgia_1292[ai_0];
if (OrderSelect(ticket_20, SELECT_BY_TICKET, MODE_TRADES)) {
color_24 = PaleTurquoise;
if (OrderType() == OP_SELL) color_24 = LightPink;
ls_36 = str_concat_12 + "0_CloseIcon";
CriaLabel(ls_36, li_4 + 3, li_8 + ai_0 * vgi_1304 - 2, CharToStr(114), 10, "Webdings", OrangeRed);
ls_28 = f0_97(ticket_20, 4);
li_44 = f0_56(vg_NameGrid, ticket_20);
if (li_44 != EMPTY_VALUE) {
li_48 = GetLevelGrid(ticket_20);
if (li_48 > 1) {
ls_28 = f0_97(ticket_20, 3) + " *" + GetDoubleToStr(li_48);
color_24 = Orange;
}
}
ls_36 = str_concat_12 + "2_Ticket";
CriaLabel(ls_36, li_4 + 20, li_8 + ai_0 * vgi_1304, ls_28, 8, "Tahoma", color_24);
ls_28 = GetDoubleToStr(GetLotsforTicket(ticket_20), 2);
ls_36 = str_concat_12 + "3_LOT";
CriaLabel(ls_36, li_4 + 68, li_8 + ai_0 * vgi_1304, ls_28, 8, "Tahoma", color_24);
ld_52 = GetProfitTicket(ticket_20);
if (ld_52 > 0.0) color_24 = TakeProfitColor;
else
if (ld_52 < 0.0) color_24 = StopLossColor;
ls_28 = f0_136(ld_52, 2);
ls_36 = str_concat_12 + "4_Profit";
CriaLabel(ls_36, li_4 + 108, li_8 + ai_0 * vgi_1304, ls_28, 8, "Tahoma", color_24);
}
}
// 7E36B3A88BDDE30BC968B675946154B7
void f0_83() {
int li_4;
int ticket_8;
if (GetOrderCount(OP_BUY, MagicNumber) + GetOrderCount(OP_SELL, MagicNumber) > 0 && (!vgi_1324) && ShowOrderListPanel) f0_121();
else
if (GetOrderCount(OP_BUY, MagicNumber) + GetOrderCount(OP_SELL, MagicNumber) == 0 && vgi_1324) f0_37();
if (ShowOrderListPanel && vgi_1324) {
for (int pos_0 = OrdersTotal() - 1; pos_0 >= 0; pos_0--) {
if (OrderSelect(pos_0, SELECT_BY_POS, MODE_TRADES)) {
if (OrderType() == OP_BUY || OrderType() == OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
li_4 = f0_15(OrderTicket());
if (li_4 != -1) {
PainelOrdersOpens(li_4);
continue;
}
if (vgi_1296 < ArraySize(vgia_1292) && f0_56(vg_NamGridParent, OrderTicket()) == EMPTY_VALUE) {
li_4 = vgi_1296;
vgia_1292[li_4] = OrderTicket();
PainelOrdersOpens(li_4);
vgi_1296++;
}
}
}
}
for (li_4 = MathMin(vgi_1296, ArraySize(vgia_1292)) - 1.0; li_4 >= 0; li_4--) {
ticket_8 = vgia_1292[li_4];
if (ticket_8 != -1) {
if (!OrderSelect(ticket_8, SELECT_BY_TICKET, MODE_TRADES) || OrderCloseTime() > 0) {
for (pos_0 = li_4; pos_0 < ArraySize(vgia_1292) - 1; pos_0++) vgia_1292[pos_0] = vgia_1292[pos_0 + 1];
vgi_1296--;
f0_106(vgi_1296);
}
}
}
}
vg_dttm_1328 = TimeCurrent();
}
// 18D5EFD0244A5B8BFDFCEDC688973A80
int f0_15(int ai_0) {
for (int index_4 = 0; index_4 < ArraySize(vgia_1292); index_4++)
if (vgia_1292[index_4] == ai_0) return (index_4);
return (-1);
}
// A04052CEA835C4DFD52423BA21668A86
void f0_106(int ai_0) {
string ls_nsd_4;
string str_concat_12 = StringConcatenate("DrW_", vgs_1284, "Row", ai_0);
f0_38(str_concat_12);
vgia_1292[ai_0] = -1;
WindowRedraw();
}
// 3AF94171AFD935A46421C3FDEBEF5D6E
void f0_37(int ai_0 = FALSE) {
if (!ai_0 && !vgi_1324) return;
string str_concat_4 = StringConcatenate("DrW_", vgs_1284);
f0_38(str_concat_4);
WindowRedraw();
vgi_1324 = FALSE;
}
// BFB9BD0BE88013789FD0C14B17156E63
int f0_124(int ai_0, int ai_4) {
int li_12;
if (!vgi_1324) return (0);
for (int index_8 = 0; index_8 < ArraySize(vgia_1292); index_8++) {
if (f0_107(ai_0, ai_4, index_8)) {
li_12 = vgia_1292[index_8];
if (f0_162(ai_0, ai_4, vgi_1308 + 8, ai_4, vgi_1308 + 16, ai_4)) CloseAllGrid(li_12);
else {
if (f0_162(ai_0, ai_4, vgi_1308 + 23, ai_4, vgi_1308 + 29, ai_4)) SetBreakeEven(li_12);
else f0_126(li_12);
}
return (1);
}
}
return (0);
}
// A192C86D2A9C7F68649E4E842C86CBE0
int f0_107(int ai_0, int ai_4, int ai_8) {
int li_12 = vgi_1312 + vgi_1300 + 3;
return (vgi_1308 <= ai_0 && vgi_1308 + vgi_1316 >= ai_0 && li_12 + ai_8 * vgi_1304 <= ai_4 && li_12 + (ai_8 + 1) * vgi_1304 > ai_4);
}
// 92A4B9699CF9C843B9D8F9832BB02B79
string f0_97(int ai_0, int ai_4) {
string ls_ret_8 = GetDoubleToStr(ai_0, 0);
if (StringLen(ls_ret_8) > ai_4) ls_ret_8 = ".." + StringSubstr(ls_ret_8, StringLen(ls_ret_8) - ai_4, ai_4);
return (ls_ret_8);
}
// C123310E38F564BFF896BAD76F1D4B1B
void f0_126(int a_ticket_0 = -1) {
string str_concat_12;
string name_20;
int count_28;
int li_32;
int li_36;
int li_40;
int li_44;
int color_48;
int cmd_52;
double ld_56;
double ld_64;
string str_concat_72;
int li_80;
int li_84;
int color_88;
double ld_92;
double ld_100;
string ls_108;
double ld_116;
double ld_124;
double ld_132;
string ls_140;
string str_concat_148;
double ld_156;
double ld_164;
double ld_172;
string ls_180;
double ld_188;
int li_196;
int li_200;
if (a_ticket_0 == -1) a_ticket_0 = vg_ticket_820;
else vg_ticket_820 = a_ticket_0;
if (PropertiesPanelPos == 0) {
vgi_1344 = GetPrimeiroValor(OrderListPanelX < 0, vgi_1308 - vgi_1352 - 10, vgi_1308 + vgi_1316 + 10);
vgi_1348 = vgi_1312;
} else {
vgi_1344 = GetPrimeiroValor(OrderListPanelX < 0, vgi_1192 - vgi_1352 - 60, OrderListPanelX);
vgi_1348 = vgi_1312 + vgi_1320;
}
int li_4 = vgi_1344;
int li_8 = vgi_1348;
if (OrderSelect(a_ticket_0, SELECT_BY_TICKET, MODE_TRADES)) {
if (OrderCloseTime() != 0) f0_19();
else {
str_concat_12 = StringConcatenate("DrW_", vgs_1332);
name_20 = str_concat_12 + ".BG1";
CriaLabel(name_20, li_4, li_8, "gg", 120, "Webdings", vgi_452);
ObjectSet(name_20, OBJPROP_BACK, BackgroundOpacity);
vgi_1356 = 160;
if (vgi_392) {
name_20 = str_concat_12 + ".BG2";
CriaLabel(name_20, li_4, li_8 + 20, "gg", 120, "Webdings", vgi_452);
ObjectSet(name_20, OBJPROP_BACK, BackgroundOpacity);
vgi_1356 = 180;
}
name_20 = str_concat_12 + "01";
CriaLabel(name_20, li_4 + 8, li_8 + 2, "gggggggggggggggg", 14, "Webdings", C'0x14,0x14,0x14');
name_20 = str_concat_12 + "03";
CriaLabel(name_20, li_4 + 32, li_8 + 6, "Order properties: " + GetDoubleToStr(a_ticket_0), 10, "Tahoma", Gold);
name_20 = str_concat_12 + "06";
CriaLabel(name_20, li_4 + 10, li_8 + 5, CharToStr(78), 12, "Webdings", Gold);
name_20 = str_concat_12 + "07";
CriaLabel(name_20, li_4 + vgi_1352 - 25, li_8 + 5, CharToStr(114), 12, "Webdings", Gold);
count_28 = 0;
li_32 = 13;
li_36 = li_4 + 8;
li_40 = li_4 + 80;
li_44 = 12632256;
color_48 = vg_clr_1244;
cmd_52 = OrderType();
ld_56 = GetOrderOpenPrice(a_ticket_0);
ld_64 = GetLotsforTicket(a_ticket_0);
str_concat_72 = "";
li_80 = f0_56(vg_NameGrid, a_ticket_0);
if (li_80 != EMPTY_VALUE) {
li_84 = GetLevelGrid(a_ticket_0);
if (li_84 > 1) str_concat_72 = StringConcatenate(" (", li_84, " orders)");
}
OrderSelect(a_ticket_0, SELECT_BY_TICKET);
name_20 = str_concat_12 + "10";
CriaLabel(name_20, li_36, li_8 + 24 + count_28 * li_32, "Type: ", 8, "Tahoma", li_44);
CriaLabel(name_20 + "_value", li_40, li_8 + 24 + count_28 * li_32, StringConcatenate(f0_169(OrderType()), " ", GetDoubleToStr(ld_64, 2), " lots ", str_concat_72), 8, "Tahoma",
color_48);
count_28++;
name_20 = str_concat_12 + "12";
CriaLabel(name_20, li_36, li_8 + 24 + count_28 * li_32, "Open price: ", 8, "Tahoma", li_44);
CriaLabel(name_20 + "_value", li_40, li_8 + 24 + count_28 * li_32, GetDoubleToStr(ld_56, Digits), 8, "Tahoma", color_48);
count_28++;
name_20 = str_concat_12 + "13";
CriaLabel(name_20, li_36, li_8 + 24 + count_28 * li_32, "Open time: ", 8, "Tahoma", li_44);
CriaLabel(name_20 + "_value", li_40, li_8 + 24 + count_28 * li_32, f0_10(TimeCurrent() - OrderOpenTime()), 8, "Tahoma", color_48);
count_28++;
count_28++;
color_88 = color_48;
name_20 = str_concat_12 + "14";
ld_92 = f0_139(GetPrimeiroValorDouble(cmd_52 == OP_BUY, Bid - ld_56, ld_56 - Ask));
ld_100 = GetProfitTicket(a_ticket_0);
ls_108 = f0_136(ld_100, 2);
if (ld_100 > 0.0) color_88 = TakeProfitColor;
else
if (ld_100 < 0.0) color_88 = StopLossColor;
CriaLabel(name_20, li_36, li_8 + 24 + count_28 * li_32 - 6, "Profit: ", 8, "Tahoma", li_44);
CriaLabel(name_20 + "_value", li_40, li_8 + 24 + count_28 * li_32 - 6, StringConcatenate(ls_108, " (", GetDoubleToStr(ld_92, 1), " pips)"), 10, "Tahoma", color_88);
count_28++;
name_20 = str_concat_12 + "15";
ld_116 = f0_31(vg_NameLineTP, a_ticket_0);
if (ld_116 != EMPTY_VALUE && ld_116 != 0.0) {
ld_124 = f0_139(MathAbs(ld_56 - ld_116));
ld_132 = f0_153(ld_124, ld_64);
ls_140 = f0_136(ld_132, 2);
str_concat_148 = StringConcatenate(ld_124, " pips (", ls_140, ")");
} else str_concat_148 = "Not set";
CriaLabel(name_20, li_36, li_8 + 24 + count_28 * li_32, "TakeProfit: ", 8, "Tahoma", li_44);
CriaLabel(name_20 + "_value", li_40, li_8 + 24 + count_28 * li_32, str_concat_148, 8, "Tahoma", color_48);
count_28++;
name_20 = str_concat_12 + "16";
ld_156 = f0_31(vg_NameLineSL, a_ticket_0);
if (ld_156 != EMPTY_VALUE && ld_156 != 0.0) {
ld_164 = f0_139(GetPrimeiroValorDouble(cmd_52 == OP_BUY, ld_156 - ld_56, ld_56 - ld_156));
ld_172 = f0_153(ld_164, ld_64);
ls_180 = f0_136(ld_172, 2);
str_concat_148 = StringConcatenate(ld_164, " pips (", ls_180, ")");
} else str_concat_148 = "Not set";
if (ld_172 > 0.0) color_88 = TakeProfitColor;
else
if (ld_172 < 0.0) color_88 = StopLossColor;
CriaLabel(name_20, li_36, li_8 + 24 + count_28 * li_32, "StopLoss: ", 8, "Tahoma", li_44);
CriaLabel(name_20 + "_value", li_40, li_8 + 24 + count_28 * li_32, str_concat_148, 8, "Tahoma", color_88);
count_28++;
count_28++;
color_88 = color_48;
name_20 = str_concat_12 + "17";
str_concat_148 = "--";
if (ld_164 < 0.0 && ld_124 > 0.0) {
ld_188 = MathAbs(ld_124 / ld_164);
if (ld_188 >= 2.0) color_88 = TakeProfitColor;
else
if (ld_188 < 1.0) color_88 = StopLossColor;
if (ld_124 != 0.0 && ld_164 != 0.0) str_concat_148 = GetDoubleToStr(ld_188, 1);
}
CriaLabel(name_20, li_36, li_8 + 24 + count_28 * li_32, "R/R: ", 8, "Tahoma", li_44);
CriaLabel(name_20 + "_value", li_40, li_8 + 24 + count_28 * li_32 - 4, str_concat_148, 16, "Impact", color_88);
count_28++;
str_concat_12 = StringConcatenate("DrW_", vgs_1332, "Btn");
li_196 = li_4 + vgi_1360;
li_200 = li_8 + vgi_1364;
f0_79(str_concat_12 + "Break", li_196, li_200, 15, "Breakeven", 1662302, vg_clr_1244);
li_200 += vgi_1376;
f0_79(str_concat_12 + "Partial", li_196, li_200, 10, "Partial close", 5922330, vg_clr_1244);
li_200 += vgi_1376;
f0_79(str_concat_12 + "Reverse", li_196, li_200, 20, "Reverse", 5970526, vg_clr_1244);
li_200 += vgi_1376;
f0_79(str_concat_12 + "Close", li_196, li_200, 28, "Close", 1662515, vg_clr_1244);
li_200 += vgi_1376;
if (vgi_432) f0_79(str_concat_12 + "Hedge", li_196, li_200, 28, "Hedge", 91798, vg_clr_1244);
li_200 += vgi_1376;
if (vgi_392) {
if (li_80 == 1) f0_79(str_concat_12 + "Grid", li_196, li_200, 20, "Grid On", 128, vg_clr_1244);
else f0_79(str_concat_12 + "Grid", li_196, li_200, 18, "Grid Off", 60, vg_clr_1244);
li_200 += vgi_1376;
}
vgi_1340 = TRUE;
}
}
}
// 7A1A81E6D4F7763DA5275206F8CCEB6D
void f0_79(string as_0, int ai_8, int ai_12, int ai_16, string as_20, int ai_28, int ai_32) {
int li_36 = 10;
int li_40 = 2;
string ls_44 = as_0 + "BG";
CriaLabel(ls_44, ai_8, ai_12, "ggggg", 13, "Webdings", ai_28);
ls_44 = as_0 + "Txt1";
CriaLabel(ls_44, ai_8 + ai_16 + 1, ai_12 + li_40 + 1, as_20, li_36, "Tahoma", Black);
ls_44 = as_0 + "Txt2";
CriaLabel(ls_44, ai_8 + ai_16, ai_12 + li_40, as_20, li_36, "Tahoma", ai_32);
}
// EB73A07A134C212369DCC3747A0780D5
int f0_156(int ai_0, int ai_4) {
if (!vgi_1340) return (0);
if (f0_162(ai_0, ai_4, vgi_1344 + vgi_1352 - 20, vgi_1348 + 8, vgi_1344 + vgi_1352, vgi_1348 + 8 + 16)) {
f0_19();
return (1);
}
if (f0_162(ai_0, ai_4, vgi_1344 + vgi_1360, vgi_1348 + vgi_1364, vgi_1344 + vgi_1360 + vgi_1368, vgi_1348 + vgi_1364 + vgi_1372)) {
SetBreakeEven(vg_ticket_820);
return (1);
}
if (f0_162(ai_0, ai_4, vgi_1344 + vgi_1360, vgi_1348 + vgi_1364 + vgi_1376, vgi_1344 + vgi_1360 + vgi_1368, vgi_1348 + vgi_1364 + vgi_1372 + vgi_1376)) {
CloseOrderPartialNow(vg_ticket_820);
return (1);
}
if (f0_162(ai_0, ai_4, vgi_1344 + vgi_1360, vgi_1348 + vgi_1364 + vgi_1376 * 2, vgi_1344 + vgi_1360 + vgi_1368, vgi_1348 + vgi_1364 + vgi_1372 + vgi_1376 * 2)) {
SendOrderReverse(vg_ticket_820);
return (1);
}
if (f0_162(ai_0, ai_4, vgi_1344 + vgi_1360, vgi_1348 + vgi_1364 + 3 * vgi_1376, vgi_1344 + vgi_1360 + vgi_1368, vgi_1348 + vgi_1364 + vgi_1372 + 3 * vgi_1376)) {
CloseAllGrid(vg_ticket_820);
f0_19();
WindowRedraw();
return (1);
}
if (f0_162(ai_0, ai_4, vgi_1344 + vgi_1360, vgi_1348 + vgi_1364 + vgi_1376 * 4, vgi_1344 + vgi_1360 + vgi_1368, vgi_1348 + vgi_1364 + vgi_1372 + vgi_1376 * 4)) {
if (!(vgi_432)) return (0);
OpenHedgePosition(vg_ticket_820);
f0_19();
WindowRedraw();
return (1);
}
if (vgi_392 && f0_162(ai_0, ai_4, vgi_1344 + vgi_1360, vgi_1348 + vgi_1364 + 5 * vgi_1376, vgi_1344 + vgi_1360 + vgi_1368, vgi_1348 + vgi_1364 + vgi_1372 + 5 * vgi_1376)) {
f0_134(vg_ticket_820);
f0_126();
WindowRedraw();
return (1);
}
return (0);
}
// 1CF67D674039C9BB64BDCB42D6706A26
void f0_19() {
string str_concat_0;
if (vgi_1340) {
str_concat_0 = StringConcatenate("DrW_", vgs_1332);
f0_38(str_concat_0);
vgi_1340 = FALSE;
}
}
// ACAE909BAFD5095E6236CD9403AAE758
void ExibeInformacoesPainel() {
int li_0;
int li_4;
int li_8;
string str_concat_12;
string name_20;
string ls_28;
string ls_36;
int li_44;
int color_48;
int count_52;
int color_56;
double ld_60;
int li_68;
int count_72;
double ld_76;
double ld_84;
double ld_92;
double ld_100;
string ls_112;
double ld_120;
if (ShowAccountPanel) {
li_0 = vgi_1396;
li_4 = vgi_1400;
li_8 = vgi_1396 + 80;
str_concat_12 = StringConcatenate("DrW_", vgs_1380);
name_20 = str_concat_12 + "0";
CriaLabel(name_20, li_0, li_4, "g", 120, "Webdings", vgi_452);
ObjectSet(name_20, OBJPROP_BACK, BackgroundOpacity);
name_20 = str_concat_12 + "00";
CriaLabel(name_20, li_0, li_4 + 16, "g", 120, "Webdings", vgi_452);
ObjectSet(name_20, OBJPROP_BACK, BackgroundOpacity);
name_20 = str_concat_12 + "1";
CriaLabel(name_20, li_0 + 5, li_4 + 2, "gggggggg", 14, "Webdings", C'0x14,0x14,0x14');
ls_28 = "Account info";
name_20 = str_concat_12 + "2";
CriaLabel(name_20, li_0 + 45, li_4 + 7, ls_28, 10, "Tahoma", Black);
name_20 = str_concat_12 + "3";
CriaLabel(name_20, li_0 + 44, li_4 + 6, ls_28, 10, "Tahoma", Gold);
ls_36 = CharToStr(165);
name_20 = str_concat_12 + "5";
CriaLabel(name_20, li_0 + 9, li_4 + 6, ls_36, 10, "Webdings", C'0x32,0x32,0x32');
name_20 = str_concat_12 + "6";
CriaLabel(name_20, li_0 + 8, li_4 + 5, ls_36, 10, "Webdings", Gold);
li_44 = 12632256;
color_48 = vg_clr_1244;
count_52 = 0;
MontaLabel(count_52, "Balance:", li_44);
MontaLabelValor(count_52, li_8, f0_136(AccountBalance()), color_48);
count_52++;
color_56 = color_48;
if (AccountEquity() < AccountBalance()) color_56 = LightPink;
else
if (AccountEquity() > AccountBalance()) color_56 = PaleTurquoise;
MontaLabel(count_52, "Equity:", li_44);
MontaLabelValor(count_52, li_8, f0_136(AccountEquity()), color_56);
count_52++;
MontaLabel(count_52, "Free margin:", li_44);
MontaLabelValor(count_52, li_8, GetDoubleToStr(AccountFreeMargin(), 2), color_48);
count_52++;
ld_60 = f0_67(0, 1);
color_56 = color_48;
if (ld_60 > 20.0) color_56 = Red;
MontaLabel(count_52, "Drawdown:", li_44);
MontaLabelValor(count_52, li_8, GetDoubleToStr(ld_60, 2) + "%", color_56);
count_52++;
MontaLabel(count_52, "-------------------------------------", li_44);
count_52++;
count_72 = 0;
ld_84 = 0;
ld_100 = 0;
for (int pos_108 = OrdersTotal() - 1; pos_108 >= 0; pos_108--) {
if (OrderSelect(pos_108, SELECT_BY_POS, MODE_TRADES)) {
if (OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
li_68++;
ld_92 += OrderProfit() + OrderSwap() + OrderCommission();
ld_76 += OrderLots();
continue;
}
if (OrderType() == OP_SELL && OrderSymbol() == Symbol()) {
count_72++;
ld_100 += OrderProfit() + OrderSwap() + OrderCommission();
ld_84 += OrderLots();
}
}
}
color_56 = color_48;
if (ld_92 < 0.0) color_56 = Red;
else
if (ld_92 > 0.0) color_56 = Lime;
MontaLabel(count_52, "Buy:", 15658671);
MontaLabelValor(count_52, vgi_1396 + 40, StringConcatenate(li_68, " | ", GetDoubleToStr(ld_76, 2), " | ", f0_136(ld_92, 2)), color_56);
count_52++;
color_56 = color_48;
if (ld_100 < 0.0) color_56 = Red;
else
if (ld_100 > 0.0) color_56 = Lime;
MontaLabel(count_52, "Sell:", 12695295);
MontaLabelValor(count_52, vgi_1396 + 40, StringConcatenate(count_72, " | ", GetDoubleToStr(ld_84, 2), " | ", f0_136(ld_100, 2)), color_56);
count_52++;
MontaLabel(count_52, "-------------------------------------", li_44);
count_52++;
color_56 = color_48;
if (ld_92 + ld_100 < 0.0) color_56 = Red;
else
if (ld_92 + ld_100 > 0.0) color_56 = Lime;
MontaLabel(count_52, "Sum:", 55295);
MontaLabelValor(count_52, vgi_1396 + 40, StringConcatenate(li_68 + count_72, " | ", GetDoubleToStr(ld_76 + ld_84, 2), " | ", f0_136(ld_92 + ld_100, 2)), color_56);
count_52++;
MontaLabel(count_52, "Avg:", 55295);
ls_112 = "-----------------";
color_56 = Gray;
if (li_68 + count_72 > 0) {
ld_120 = GetMedianPrice();
if (ld_120 != EMPTY_VALUE) {
ls_112 = GetDoubleToStr(ld_120, Digits);
color_56 = color_48;
if (li_68 + count_72 > 1 && AveragePriceLineColor != CLR_NONE) CreateHLineForTicket(vg_NameAvgPrice, ld_120, -1, AveragePriceLineColor, STYLE_DOT);
}
} else
if (AveragePriceLineColor != CLR_NONE) CreateHLineForTicket(vg_NameAvgPrice, 0, -1, AveragePriceLineColor, STYLE_DOT);
MontaLabelValor(count_52, vgi_1396 + 40, ls_112, color_56);
count_52++;
vgi_nsd_1412 = TRUE;
}
}
// 2D16C2E5D3DD33F6C2ECBE53BC848288
double GetMedianPrice() {
double ld_0;
double ld_8 = 0;
for (int pos_16 = OrdersTotal() - 1; pos_16 >= 0; pos_16--) {
if (OrderSelect(pos_16, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
if (OrderType() == OP_BUY || OrderType() == OP_SELL) {
ld_0 += OrderOpenPrice() * OrderLots();
ld_8 += OrderLots();
}
}
}
}
if (ld_8 > 0.0) return (NormalizeDoubleDigits(ld_0 / ld_8));
return (EMPTY_VALUE);
}
// A7C093DDD4EBAF0E80FC957EBF7C53AB
void MontaLabel(int ai_0, string as_4, int ai_12) {
string str_concat_16 = StringConcatenate("DrW_", vgs_1380, "C", ai_0);
CriaLabel(str_concat_16, vgi_1396 + 6, vgi_1388 + vgi_1400 + ai_0 * vgi_1392, as_4, 8, "Tahoma", ai_12);
}
// EEC6F43503E25962F346B950A31DA94D
void MontaLabelValor(int ai_0, int ai_4, string as_8, int ai_16) {
string str_concat_20 = StringConcatenate("DrW_", vgs_1380, "V", ai_0);
CriaLabel(str_concat_20, ai_4, vgi_1388 + vgi_1400 + ai_0 * vgi_1392, as_8, 8, "Tahoma", ai_16);
}
// 5D2E36B397609AC857C0AF71C6613194
void ExibeProfitPanel() {
int li_0;
int li_4;
string str_concat_8;
string name_16;
string ls_24;
string ls_32;
int li_nsd_40;
int li_nsd_44;
int count_48;
int str2time_52;
int str2time_56;
int datetime_60;
int li_64;
if (ShowProfitPanel) {
li_0 = vgi_1432;
li_4 = vgi_1436;
str_concat_8 = StringConcatenate("DrW_", vgs_1416);
name_16 = str_concat_8 + "0";
CriaLabel(name_16, li_0, li_4, "gg", 75, "Webdings", vgi_452);
ObjectSet(name_16, OBJPROP_BACK, BackgroundOpacity);
name_16 = str_concat_8 + "1";
CriaLabel(name_16, li_0 + 5, li_4 + 2, "gggggggggg", 14, "Webdings", C'0x14,0x14,0x14');
ls_24 = "Profit info";
name_16 = str_concat_8 + "2";
CriaLabel(name_16, li_0 + 75, li_4 + 7, ls_24, 10, "Tahoma", Black);
name_16 = str_concat_8 + "3";
CriaLabel(name_16, li_0 + 74, li_4 + 6, ls_24, 10, "Tahoma", Gold);
ls_32 = CharToStr(164);
name_16 = str_concat_8 + "5";
CriaLabel(name_16, li_0 + 9, li_4 + 6, ls_32, 10, "Webdings", C'0x32,0x32,0x32');
name_16 = str_concat_8 + "6";
CriaLabel(name_16, li_0 + 8, li_4 + 5, ls_32, 10, "Webdings", Gold);
li_nsd_40 = 12632256;
li_nsd_44 = vg_clr_1244;
count_48 = 0;
datetime_60 = TimeCurrent();
str2time_56 = StrToTime(TimeToStr(datetime_60, TIME_DATE));
f0_59(str2time_56, datetime_60, count_48, "Today");
count_48++;
str2time_52 = str2time_56;
li_64 = f0_152(str2time_52 - vgi_1456);
f0_59(li_64, str2time_52, count_48, "Yesterday");
count_48++;
str2time_52 = f0_93();
f0_59(str2time_52, datetime_60, count_48, "Week");
count_48++;
str2time_52 = StrToTime(Year() + "." + Month() + ".01");
f0_59(str2time_52, datetime_60, count_48, "Month");
count_48++;
str2time_52 = StrToTime(Year() + ".01.01");
f0_59(str2time_52, datetime_60, count_48, "Year");
count_48++;
vgi_nsd_1448 = TRUE;
}
}
// 55B8E7F64ACEAFC2E33BA1080F79A8B9
void f0_59(int ai_0, int ai_4, int ai_8, string a_time2str_12 = "") {
double ld_20;
double ld_28;
if (a_time2str_12 == "") a_time2str_12 = TimeToStr(ai_0, TIME_DATE);
double ld_nsd_36 = 0.0;
int li_52 = 10;
int li_56 = 80;
int li_60 = 140;
f0_82(ai_0, ai_4, ld_20, ld_28);
double ld_64 = 0;
if (AccountBalance() > 0.0) ld_64 = 100.0 * (ld_28 / AccountBalance());
string ls_44 = StringConcatenate(a_time2str_12, ": ");
f0_171(ai_8, li_52, ls_44, 12632256);
ls_44 = f0_136(ld_28, 2);
f0_171(ai_8, li_56, ls_44, f0_14(ld_28));
ls_44 = GetDoubleToStr(ld_20, 1) + " pips";
f0_171(ai_8, li_60, ls_44, f0_14(ld_20));
}
// 18395C9D5496CE3BB9D2FCDDB85B6140
int f0_14(double ad_0) {
int li_ret_8 = 12632256;
if (ad_0 > 0.0) li_ret_8 = 65280;
if (ad_0 < 0.0) li_ret_8 = 255;
return (li_ret_8);
}
// FAA80C7FAF626ACD4F482B5EEC0C0420
void f0_171(int ai_0, int ai_4, string as_8, int ai_16) {
string str_concat_20 = StringConcatenate("DrW_", vgs_1416, "V", ai_0, ai_4);
CriaLabel(str_concat_20, vgi_1432 + ai_4, vgi_1424 + vgi_1436 + ai_0 * vgi_1428, as_8, 8, "Tahoma", ai_16);
}
// 7E0062AA8C59AA9E68163945475F7764
int f0_82(int ai_0, int ai_4, double &ad_8, double &ad_16) {
int hist_total_28 = OrdersHistoryTotal();
ad_8 = 0;
ad_16 = 0;
for (int pos_24 = 0; pos_24 < hist_total_28; pos_24++) {
if (OrderSelect(pos_24, SELECT_BY_POS, MODE_HISTORY)) {
if (vgi_1452 || OrderSymbol() == Symbol()) {
if (OrderType() == OP_BUY || OrderType() == OP_SELL) {
if (ai_4 >= OrderCloseTime() && OrderCloseTime() >= ai_0) {
ad_16 += OrderProfit() + OrderCommission() + OrderSwap();
if (OrderType() == OP_BUY) ad_8 += f0_139(OrderClosePrice() - OrderOpenPrice());
if (OrderType() == OP_SELL) ad_8 += f0_139(OrderOpenPrice() - OrderClosePrice());
}
}
}
}
}
return (1);
}
// E3D77C5FEF5B55479437EF591440DE35
int f0_152(int ai_0) {
for (int li_ret_4 = ai_0; TimeDayOfWeek(li_ret_4) < 1 || TimeDayOfWeek(li_ret_4) > 5; li_ret_4 -= vgi_1456) {
}
return (li_ret_4);
}
// 8A729F392CA03BCF676C04744BE4AB2E
int f0_93(int ai_0 = 0) {
for (int li_ret_4 = StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)); TimeDayOfWeek(li_ret_4) != 1; li_ret_4 -= vgi_1456) {
}
li_ret_4 += 7 * ai_0 * vgi_1456;
return (li_ret_4);
}
// D87000F73B355D66104C50794879C500
void f0_142(bool ai_0) {
int li_4;
int li_8;
string str_concat_12;
string name_20;
string ls_28;
string ls_36;
int li_44;
int digits_48;
double spread_52;
string ls_60;
string ls_68;
string ls_76;
string ls_84;
string ls_96;
int li_104;
int li_108;
int li_112;
int li_116;
int li_120;
double ihigh_124;
double ilow_132;
double iopen_140;
double iclose_148;
double ld_156;
double ld_164;
double ld_172;
double ld_180;
int li_188;
if (ShowDashboard) {
li_4 = vgi_1468;
li_8 = vgi_1472;
str_concat_12 = StringConcatenate("DrW_", vg_NameDashboard);
if (ai_0 || (!vgi_1484)) {
name_20 = str_concat_12 + "0";
CriaLabel(name_20, li_4, li_8, "g", 120, "Webdings", vgi_452);
ObjectSet(name_20, OBJPROP_BACK, BackgroundOpacity);
name_20 = str_concat_12 + "00";
CriaLabel(name_20, li_4, li_8 + 28, "g", 120, "Webdings", vgi_452);
ObjectSet(name_20, OBJPROP_BACK, BackgroundOpacity);
name_20 = str_concat_12 + "1";
CriaLabel(name_20, li_4 + 5, li_8 + 2, "gggggggg", 14, "Webdings", C'0x14,0x14,0x14');
ls_28 = "Dashboard";
name_20 = str_concat_12 + "2";
CriaLabel(name_20, li_4 + 55, li_8 + 7, ls_28, 10, "Tahoma", Black);
name_20 = str_concat_12 + "3";
CriaLabel(name_20, li_4 + 54, li_8 + 6, ls_28, 10, "Tahoma", Gold);
ls_36 = CharToStr(105);
name_20 = str_concat_12 + "5";
CriaLabel(name_20, li_4 + 9, li_8 + 6, ls_36, 10, "Webdings", C'0x32,0x32,0x32');
name_20 = str_concat_12 + "6";
CriaLabel(name_20, li_4 + 8, li_8 + 5, ls_36, 10, "Webdings", Gold);
}
li_44 = li_8 + 25;
digits_48 = Digits;
spread_52 = MarketInfo(Symbol(), MODE_SPREAD);
ls_60 = GetDoubleToStr(Bid, digits_48);
ls_68 = GetDoubleToStr(Ask, digits_48);
ls_76 = GetDoubleToStr(spread_52);
ls_84 = "";
for (int li_92 = 0; li_92 < StringLen(ls_60); li_92++) {
if (StringGetChar(ls_60, li_92) != StringGetChar(ls_68, li_92)) break;
ls_84 = ls_84 + StringSubstr(ls_60, li_92, 1);
}
ls_96 = Symbol();
ls_28 = StringSubstr(ls_96, 0, 6);
CriaLabel(str_concat_12 + "07", li_4 + 55, li_44 + 1, ls_28, 10, "Arial Black", Black);
CriaLabel(str_concat_12 + "08", li_4 + 54, li_44, ls_28, 10, "Arial Black", DarkGray);
li_44 += 15;
li_104 = 5 * (7 - StringLen(ls_84)) + 28;
ls_28 = ls_84;
CriaLabel(str_concat_12 + "14", li_4 + li_104 + 2, li_44 + 2, ls_28, 20, "Verdana", Black);
CriaLabel(str_concat_12 + "15", li_4 + li_104, li_44, ls_28, 20, "Verdana", White);
li_44++;
li_108 = li_104 + 16.5 * StringLen(ls_84);
ls_28 = StringSubstr(ls_68, StringLen(ls_84));
CriaLabel(str_concat_12 + "16", li_4 + li_108 + 1, li_44 + 1, ls_28, 10, "Verdana", Black);
CriaLabel(str_concat_12 + "17", li_4 + li_108, li_44, ls_28, 10, "Verdana", White);
li_44 += 13;
ls_28 = StringSubstr(ls_60, StringLen(ls_84));
CriaLabel(str_concat_12 + "18", li_4 + li_108 + 1, li_44 + 1, ls_28, 10, "Verdana", Black);
CriaLabel(str_concat_12 + "19", li_4 + li_108, li_44, ls_28, 10, "Verdana", White);
li_44 += 21;
ls_28 = "Spread";
CriaLabel(str_concat_12 + "7", li_4 + 64, li_44 + 1, ls_28, 10, "Tahoma", Black);
CriaLabel(str_concat_12 + "8", li_4 + 63, li_44, ls_28, 10, "Tahoma", DarkGray);
li_44 += 16;
ls_28 = GetDoubleToStr(spread_52 / vDigits, 1);
li_112 = 10026686;
if (spread_52 / vDigits >= DashboardSpreadRedValue) li_112 = 255;
CriaLabel(str_concat_12 + "10", li_4 + 62, li_44 + 2, ls_28, 22, "Verdana", Black);
CriaLabel(str_concat_12 + "11", li_4 + 60, li_44, ls_28, 22, "Verdana", li_112);
if (ai_0) {
li_44 += 30;
li_44 += 14;
li_116 = 20;
li_120 = 9;
CriaLabel(str_concat_12 + "30", li_4 + 10, li_44, "M1", 7, "Arial", f0_158(1));
CriaLabel(str_concat_12 + "31", li_4 + 6, li_44 - li_116, "-", 42, "Arial", f0_72(PERIOD_M1));
CriaLabel(str_concat_12 + "32", li_4 + 6, li_44 - li_116 + li_120, "-", 42, "Arial", f0_103(PERIOD_M1));
CriaLabel(str_concat_12 + "33", li_4 + 6, li_44 - li_116 + li_120 * 2, "-", 42, "Arial", f0_103(PERIOD_M1));
CriaLabel(str_concat_12 + "34", li_4 + 6, li_44 - li_116 + 3 * li_120, "-", 42, "Arial", f0_102(PERIOD_M1));
CriaLabel(str_concat_12 + "40", li_4 + 30, li_44, "M5", 7, "Arial", f0_158(5));
CriaLabel(str_concat_12 + "41", li_4 + 26, li_44 - li_116, "-", 42, "Arial", f0_72(PERIOD_M5));
CriaLabel(str_concat_12 + "42", li_4 + 26, li_44 - li_116 + li_120, "-", 42, "Arial", f0_103(PERIOD_M5));
CriaLabel(str_concat_12 + "43", li_4 + 26, li_44 - li_116 + li_120 * 2, "-", 42, "Arial", f0_90(PERIOD_M5));
CriaLabel(str_concat_12 + "44", li_4 + 26, li_44 - li_116 + 3 * li_120, "-", 42, "Arial", f0_102(PERIOD_M5));
CriaLabel(str_concat_12 + "50", li_4 + 47, li_44, "M15", 7, "Arial", f0_158(15));
CriaLabel(str_concat_12 + "51", li_4 + 46, li_44 - li_116, "-", 42, "Arial", f0_72(PERIOD_M15));
CriaLabel(str_concat_12 + "52", li_4 + 46, li_44 - li_116 + li_120, "-", 42, "Arial", f0_103(PERIOD_M15));
CriaLabel(str_concat_12 + "53", li_4 + 46, li_44 - li_116 + li_120 * 2, "-", 42, "Arial", f0_90(PERIOD_M15));
CriaLabel(str_concat_12 + "54", li_4 + 46, li_44 - li_116 + 3 * li_120, "-", 42, "Arial", f0_102(PERIOD_M15));
CriaLabel(str_concat_12 + "60", li_4 + 68, li_44, "M30", 7, "Arial", f0_158(30));
CriaLabel(str_concat_12 + "61", li_4 + 66, li_44 - li_116, "-", 42, "Arial", f0_72(PERIOD_M30));
CriaLabel(str_concat_12 + "62", li_4 + 66, li_44 - li_116 + li_120, "-", 42, "Arial", f0_103(PERIOD_M30));
CriaLabel(str_concat_12 + "63", li_4 + 66, li_44 - li_116 + li_120 * 2, "-", 42, "Arial", f0_90(PERIOD_M30));
CriaLabel(str_concat_12 + "64", li_4 + 66, li_44 - li_116 + 3 * li_120, "-", 42, "Arial", f0_102(PERIOD_M30));
CriaLabel(str_concat_12 + "70", li_4 + 90, li_44, "H1", 7, "Arial", f0_158(60));
CriaLabel(str_concat_12 + "71", li_4 + 86, li_44 - li_116, "-", 42, "Arial", f0_72(PERIOD_H1));
CriaLabel(str_concat_12 + "72", li_4 + 86, li_44 - li_116 + li_120, "-", 42, "Arial", f0_103(PERIOD_H1));
CriaLabel(str_concat_12 + "73", li_4 + 86, li_44 - li_116 + li_120 * 2, "-", 42, "Arial", f0_90(PERIOD_H1));
CriaLabel(str_concat_12 + "74", li_4 + 86, li_44 - li_116 + 3 * li_120, "-", 42, "Arial", f0_102(PERIOD_H1));
CriaLabel(str_concat_12 + "80", li_4 + 110, li_44, "H4", 7, "Arial", f0_158(240));
CriaLabel(str_concat_12 + "81", li_4 + 106, li_44 - li_116, "-", 42, "Arial", f0_72(PERIOD_H4));
CriaLabel(str_concat_12 + "82", li_4 + 106, li_44 - li_116 + li_120, "-", 42, "Arial", f0_103(PERIOD_H4));
CriaLabel(str_concat_12 + "83", li_4 + 106, li_44 - li_116 + li_120 * 2, "-", 42, "Arial", f0_90(PERIOD_H4));
CriaLabel(str_concat_12 + "84", li_4 + 106, li_44 - li_116 + 3 * li_120, "-", 42, "Arial", f0_102(PERIOD_H4));
CriaLabel(str_concat_12 + "90", li_4 + 130, li_44, "D1", 7, "Arial", f0_158(1440));
CriaLabel(str_concat_12 + "91", li_4 + 126, li_44 - li_116, "-", 42, "Arial", f0_72(PERIOD_D1));
CriaLabel(str_concat_12 + "92", li_4 + 126, li_44 - li_116 + li_120, "-", 42, "Arial", f0_103(PERIOD_D1));
CriaLabel(str_concat_12 + "93", li_4 + 126, li_44 - li_116 + li_120 * 2, "-", 42, "Arial", f0_90(PERIOD_D1));
CriaLabel(str_concat_12 + "94", li_4 + 126, li_44 - li_116 + 3 * li_120, "-", 42, "Arial", f0_102(PERIOD_D1));
li_120 = 10;
CriaLabel(str_concat_12 + "101", li_4 + 145, li_44 + li_120, "MA", 6, "Arial", SkyBlue);
CriaLabel(str_concat_12 + "102", li_4 + 145, li_44 + li_120 * 2, "CCI", 6, "Arial", SkyBlue);
CriaLabel(str_concat_12 + "103", li_4 + 145, li_44 + 3 * li_120, "RSI", 6, "Arial", SkyBlue);
CriaLabel(str_concat_12 + "104", li_4 + 145, li_44 + li_120 * 4, "Sth", 6, "Arial", SkyBlue);
ihigh_124 = iHigh(Symbol(), PERIOD_D1, 0);
ilow_132 = iLow(Symbol(), PERIOD_D1, 0);
iopen_140 = iOpen(Symbol(), PERIOD_D1, 0);
iclose_148 = iClose(Symbol(), PERIOD_D1, 0);
ld_156 = f0_139(ihigh_124 - ilow_132);
ld_164 = ld_156 / 29.0;
if (ld_164 != 0.0) {
ld_172 = f0_139(ihigh_124 - iopen_140) / ld_164;
ld_180 = f0_139(ihigh_124 - iclose_148) / ld_164;
li_188 = 6908265;
li_112 = li_188;
for (li_92 = 0; li_92 < 30; li_92++) {
if (ld_172 > ld_180) {
if (MathFloor(ld_180) <= li_92) li_112 = 25600;
if (MathFloor(ld_172) < li_92) li_112 = li_188;
} else {
if (ld_172 < ld_180) {
if (MathFloor(ld_172) <= li_92) li_112 = 2237106;
if (MathFloor(ld_180) < li_92) li_112 = li_188;
}
}
CriaLabel(StringConcatenate(str_concat_12, "DR", li_92), li_4 + 145, li_8 + 10 + 3 * li_92, "-", 20, "Arial", li_112);
}
CriaLabel(StringConcatenate(str_concat_12, "DRCurr"), li_4 + 137, li_8 + 18 + 3.0 * MathFloor(ld_180), "4", 8, "Webdings", Gold);
}
}
vgi_1484 = TRUE;
}
}
// EDEA1FE21A3EDE39BF7E8D6E9831284D
int f0_158(int ai_0) {
if (Period() == ai_0) return (16777215);
return (15453831);
}
// 6A398A7CB1A89E7422220FC9AC47FAF8
int f0_72(int a_timeframe_0) {
if (Dashboard_OnlyCurrentTF && a_timeframe_0 != Period()) return (6908265);
double ima_4 = iMA(Symbol(), a_timeframe_0, Dashboard_MAPeriod, 0, Dashboard_MAMode, Dashboard_MAPrice, 0);
double ima_12 = iMA(Symbol(), a_timeframe_0, Dashboard_MAPeriod, 0, Dashboard_MAMode, Dashboard_MAPrice, 1);
if (ima_4 > ima_12) return (65280);
return (255);
}
// 9BBE1B727E7454DAF1054B4380C412FB
int f0_103(int a_timeframe_0) {
if (Dashboard_OnlyCurrentTF && a_timeframe_0 != Period()) return (6908265);
double icci_4 = iCCI(Symbol(), a_timeframe_0, Dashboard_CCIPeriod, Dashboard_CCIPrice, 0);
double icci_12 = iCCI(Symbol(), a_timeframe_0, Dashboard_CCIPeriod, Dashboard_CCIPrice, 1);
if (icci_4 > 0.0) {
if (icci_4 <= icci_12) return (2237106);
return (65280);
}
if (icci_4 < icci_12) return (255);
return (32768);
}
// 8924A78C0605254C6973A5E079E5C60C
int f0_90(int a_timeframe_0) {
if (Dashboard_OnlyCurrentTF && a_timeframe_0 != Period()) return (6908265);
double irsi_4 = iRSI(Symbol(), a_timeframe_0, Dashboard_RSIPeriod, Dashboard_RSIPrice, 0);
if (irsi_4 >= 50.0) return (65280);
return (255);
}
// 9B63D776DCDB7E5F9566C12936C962CB
int f0_102(int a_timeframe_0) {
if (Dashboard_OnlyCurrentTF && a_timeframe_0 != Period()) return (6908265);
double istochastic_4 = iStochastic(Symbol(), a_timeframe_0, Dashboard_StochKPeriod, Dashboard_StockDPeriod, Dashboard_StochSlowing, Dashboard_StochMode, Dashboard_StochPrice,
MODE_MAIN, 0);
double istochastic_12 = iStochastic(Symbol(), a_timeframe_0, Dashboard_StochKPeriod, Dashboard_StockDPeriod, Dashboard_StochSlowing, Dashboard_StochMode, Dashboard_StochPrice,
MODE_SIGNAL, 0);
if (istochastic_4 > istochastic_12) return (65280);
return (255);
}
// 506D7272A84C5F087624880F1171C82D
void f0_55() {
int li_4;
double iclose_8;
double iopen_16;
double ihigh_24;
double ilow_32;
double iopen_40;
double ihigh_48;
double ilow_56;
double ld_64;
double ld_72;
double ld_80;
int timeframe_0 = 0;
if (Period() == PERIOD_D1) timeframe_0 = 43200;
else {
if (Period() == PERIOD_H4) timeframe_0 = 10080;
else
if (Period() < PERIOD_H4) timeframe_0 = 1440;
}
if (timeframe_0 > 0) {
li_4 = 1;
if (TimeDayOfWeek(iTime(Symbol(), timeframe_0, li_4)) == 0) li_4++;
iclose_8 = iClose(Symbol(), timeframe_0, li_4);
iopen_16 = iOpen(Symbol(), timeframe_0, li_4);
ihigh_24 = iHigh(Symbol(), timeframe_0, li_4);
ilow_32 = iLow(Symbol(), timeframe_0, li_4);
iopen_40 = iOpen(Symbol(), timeframe_0, 0);
ihigh_48 = iHigh(Symbol(), timeframe_0, 0);
ilow_56 = iLow(Symbol(), timeframe_0, 0);
ld_64 = ihigh_48 - ilow_56;
ld_72 = ihigh_24 - ilow_32;
ld_80 = (ihigh_24 + ilow_32 + iclose_8) / 3.0;
vgd_1496 = ld_80;
vgd_1504 = 2.0 * ld_80 + (ihigh_24 - 2.0 * ilow_32);
vgd_1512 = ld_80 + (ihigh_24 - ilow_32);
vgd_1520 = 2.0 * ld_80 - ilow_32;
vgd_1528 = 2.0 * ld_80 - ihigh_24;
vgd_1536 = ld_80 - (ihigh_24 - ilow_32);
vgd_1544 = 2.0 * ld_80 - (2.0 * ihigh_24 - ilow_32);
}
}
// 05EC5F8CC81F86D68993F307785CD862
void ExibePivotPoints() {
f0_55();
int li_0 = 2;
int li_4 = vgi_1552;
string str_concat_8 = StringConcatenate("DrW_", vgs_1488);
ShowSuportResistence(str_concat_8 + "R3Text", "R3", str_concat_8 + "R3 line", li_0, li_4, vgd_1504);
ShowSuportResistence(str_concat_8 + "R2Text", "R2", str_concat_8 + "R2 line", li_0, li_4, vgd_1512);
ShowSuportResistence(str_concat_8 + "R1Text", "R1", str_concat_8 + "R1 line", li_0, li_4, vgd_1520);
li_4 = vgi_1556;
ShowSuportResistence(str_concat_8 + "PText", "P", str_concat_8 + "P line", li_0, li_4, vgd_1496);
li_4 = vgi_1560;
ShowSuportResistence(str_concat_8 + "S1Text", "S1", str_concat_8 + "S1 line", li_0, li_4, vgd_1528);
ShowSuportResistence(str_concat_8 + "S2Text", "S2", str_concat_8 + "S2 line", li_0, li_4, vgd_1536);
ShowSuportResistence(str_concat_8 + "S3Text", "S3", str_concat_8 + "S3 line", li_0, li_4, vgd_1544);
}
// ECEC9869575AF9DCB685E4A3B133CFE8
void ShowSuportResistence(string a_name_0, string a_text_8, string a_name_16, int ai_24, color a_clr_28, double a_price_32) {
if (ObjectFind(a_name_0) != 0) {
ObjectCreate(a_name_0, OBJ_TEXT, 0, Time[0] + 60 * Period() * vgi_1572, a_price_32);
ObjectSetText(a_name_0, a_text_8, 8, "Arial", CLR_NONE);
} else ObjectMove(a_name_0, 0, Time[0] + 60 * Period() * vgi_1572, a_price_32);
if (ObjectFind(a_name_16) != 0) {
ObjectCreate(a_name_16, ai_24, 0, Time[1], a_price_32, Time[0], a_price_32);
ObjectSet(a_name_16, OBJPROP_STYLE, STYLE_DASHDOTDOT);
ObjectSet(a_name_16, OBJPROP_COLOR, a_clr_28);
return;
}
ObjectMove(a_name_16, 0, Time[1], a_price_32);
ObjectMove(a_name_16, 1, Time[0], a_price_32);
}
// E86AC8F15FE841E2A07F823AE236DB69
void f0_154() {
int li_0 = 60 * Period() - (TimeCurrent() - Time[0]);
string text_4 = " < ";
if (li_0 < 0) text_4 = text_4 + "--:--:--";
else text_4 = text_4 + TimeToStr(li_0, TIME_SECONDS);
string str_concat_12 = StringConcatenate("DrW_", vg_NameNextBar, "Text");
string str_concat_20 = StringConcatenate("DrW_", vg_NameNextBar, "Bg");
if (ObjectFind(str_concat_12) != 0) ObjectCreate(str_concat_12, OBJ_TEXT, 0, Time[0], Bid);
ObjectMove(str_concat_12, 0, Time[0], Bid);
ObjectSetText(str_concat_12, text_4, 8, "Verdana", NextCandleTimeTextColor);
}
// 4986B4C5BB37CA1A703AB220CAF9CD65
void ExibeFooter() {
string str_concat_0 = StringConcatenate("DrW_", "CopyRight");
string str_concat_8 = StringConcatenate("TraderAgent", " ", "v2.3.3", " ", GetTypeLicence());
string ls_16 = "More info: http://www.icefx.eu";
string ls_24 = "Build " + "159";
string name_32 = str_concat_0 + "0";
ObjectDelete(name_32);
CriaLabel(name_32, 4, 1, "±", 80, "IceFX", C'0x5A,0x5A,0x5A');
ObjectSet(name_32, OBJPROP_CORNER, 3);
name_32 = str_concat_0 + "1";
ObjectDelete(name_32);
CriaLabel(name_32, 18, 16, str_concat_8, 10, "Tahoma", Gold);
ObjectSet(name_32, OBJPROP_CORNER, 3);
name_32 = str_concat_0 + "2";
ObjectDelete(name_32);
CriaLabel(name_32, 4, 4, ls_16, 8, "Tahoma", Silver);
ObjectSet(name_32, OBJPROP_CORNER, 3);
name_32 = str_concat_0 + "3";
ObjectDelete(name_32);
CriaLabel(name_32, 4, 30, ls_24, 8, "Tahoma", Gray);
ObjectSet(name_32, OBJPROP_CORNER, 3);
}
// 3689FAF537C7277424867A8C8C0E0163
void ExibeCopyRight() {
string str_concat_0 = StringConcatenate("DrW_", "CopyRight");
string name_8 = str_concat_0 + "clock";
if (ObjectFind(name_8) < 0) {
ObjectCreate(name_8, OBJ_LABEL, 0, 0, 0);
ObjectSet(name_8, OBJPROP_CORNER, 3);
ObjectSet(name_8, OBJPROP_BACK, FALSE);
ObjectSet(name_8, OBJPROP_XDISTANCE, 4);
ObjectSet(name_8, OBJPROP_YDISTANCE, 15);
}
ObjectSetText(name_8, CharToStr(vg_count_1584 + 183), 10, "Wingdings", Gold);
vg_count_1584++;
if (vg_count_1584 > 11) vg_count_1584 = 0;
if (ObjectFind(str_concat_0 + "0") == -1) ExibeFooter();
}
// 8A9AA0276E92E1E287ED3D315CA553B8
int f0_94() {
vgia_1184[0] = vgia_1188[0];
vgia_1184[1] = vgia_1188[1];
vgia_1184[2] = vgia_1188[2];
vgia_1184[3] = vgia_1188[3];
IceLock_GetWindowSize(vgi_804, vgia_1188);
vgi_1192 = vgia_1188[2] - vgia_1188[0];
vgi_1196 = vgia_1188[3] - vgia_1188[1];
vgi_1268 = GetPrimeiroValor(ControlPanelX < 0, vgi_1192 + ControlPanelX, ControlPanelX);
vgi_1272 = GetPrimeiroValor(ControlPanelY < 0, vgi_1196 + ControlPanelY - vgi_1280, ControlPanelY);
vgi_1308 = GetPrimeiroValor(OrderListPanelX < 0, vgi_1192 + OrderListPanelX, OrderListPanelX);
vgi_1312 = GetPrimeiroValor(OrderListPanelY < 0, vgi_1196 + OrderListPanelY - vgi_1320, OrderListPanelY);
vgi_1396 = GetPrimeiroValor(AccountPanelX < 0, vgi_1192 + AccountPanelX, AccountPanelX);
vgi_1400 = GetPrimeiroValor(AccountPanelY < 0, vgi_1196 + AccountPanelY - vgi_1408, AccountPanelY);
vgi_1432 = GetPrimeiroValor(ProfitPanelX < 0, vgi_1192 + ProfitPanelX, ProfitPanelX);
vgi_1436 = GetPrimeiroValor(ProfitPanelY < 0, vgi_1196 + ProfitPanelY - vgi_1444, ProfitPanelY);
vgi_1468 = GetPrimeiroValor(DashboardX < 0, vgi_1192 + DashboardX, DashboardX);
vgi_1472 = GetPrimeiroValor(DashboardY < 0, vgi_1196 + DashboardY - vgi_1480, DashboardY);
if (vgia_1188[0] != vgia_1184[0] || vgia_1188[1] != vgia_1184[1] || vgia_1188[2] != vgia_1184[2] || vgia_1188[3] != vgia_1184[3]) {
f0_6();
return (1);
}
return (0);
}
// 0A0AC84BAFDEEFE131C3CA141E3191DC
void f0_6() {
ExibeControlPainel();
ExibeInformacoesPainel();
ExibeProfitPanel();
f0_142(1);
ExibeFooter();
if (ShowOrderListPanel && vgi_1324) {
f0_121();
f0_83();
}
}
// C5AA0DDDA68543E36FBE2BD55B806ECA
int f0_130() {
int lia_0[2];
string ls_20;
int li_4 = IceLock_GetMouseState(vgi_804, lia_0);
int li_8 = lia_0[0];
int li_12 = lia_0[1];
if (li_4 == 1) {
for (int count_16 = 0; count_16 < ArrayRange(vgia_1252, 0); count_16++) {
if (vgi_1204 && GetTickCount() - vgia_1200[0] > 2000 || vgia_1200[1] != li_8 || vgia_1200[2] != li_12) {
if (ShowControlPanel && f0_162(li_8, li_12, vgi_1268, vgi_1272, vgi_1268 + vgi_1276, vgi_1272 + vgi_1280)) f0_170(li_8, li_12);
else {
if (ShowOrderListPanel && f0_162(li_8, li_12, vgi_1308, vgi_1312, vgi_1308 + vgi_1316, vgi_1312 + vgi_1320)) f0_124(li_8, li_12);
else
if (vgi_1340 && f0_162(li_8, li_12, vgi_1344, vgi_1348, vgi_1344 + vgi_1352, vgi_1348 + vgi_1356)) f0_156(li_8, li_12);
}
vgia_1200[0] = GetTickCount();
vgia_1200[1] = li_8;
vgia_1200[2] = li_12;
vgi_1204 = FALSE;
return (count_16);
}
}
} else {
if (li_4 < 0) {
if (!vgi_1236) {
ls_20 = "";//IceLock_GetLastResponseText(vgi_804);
ExibeMensagem("License problem!", ls_20, 2, 5000);
}
} else vgi_1204 = TRUE;
}
vgi_796 = li_4 > 0;
return (-1);
}
// F1C2A50AB274EA5BB48B52676E8779BD
int f0_162(int ai_0, int ai_4, int ai_8, int ai_12, int ai_16, int ai_20) {
return (ai_8 <= ai_0 && ai_16 >= ai_0 && ai_12 <= ai_4 && ai_20 >= ai_4);
}
// F5543B7F0A2E0E1532973CAA9215D94B
void f0_167(int ai_0) {
int li_4 = f0_56(vg_NamGridParent, ai_0);
if (li_4 == EMPTY_VALUE) {
GerenciaStopLoass(ai_0);
GerenciaTakeProfit((ai_0);
GerenciaBreakEven(ai_0);
if (f0_45(vg_NameGrid, ai_0)) ExibeLinhasGride(ai_0);
if (PartialClosePos1 != 0.0 && PartialClosePercent1 > 0.0 && PartialClosePercent1 <= 100.0) f0_29(ai_0, 1, PartialClosePos1, PartialClosePercent1);
if (PartialClosePos2 != 0.0 && PartialClosePercent2 > 0.0 && PartialClosePercent2 <= 100.0) f0_29(ai_0, 2, PartialClosePos2, PartialClosePercent2);
if (PartialClosePos3 != 0.0 && PartialClosePercent3 > 0.0 && PartialClosePercent3 <= 100.0) f0_29(ai_0, 3, PartialClosePos3, PartialClosePercent3);
}
}
// 8891ADA670F5B3992A8951FA0D442FC0
void f0_88(string as_0, double ad_8, string a_text_16, color a_clr_24) {
int li_44;
double ld_28 = 0;
if (vgi_1196 > 0) ld_28 = 7.5 * ((WindowPriceMax() - WindowPriceMin()) / (1.0 * vgi_1196));
string name_36 = as_0 + "_Text";
if (ObjectFind(name_36) > -1 || ObjectCreate(name_36, OBJ_TEXT, 0, 0, 0)) {
ObjectSet(name_36, OBJPROP_TIME1, Time[0] + 60 * (ControlLineOffset * Period()));
ObjectSet(name_36, OBJPROP_PRICE1, ad_8 + ld_28);
ObjectSetText(name_36, a_text_16, 8, "Arial", a_clr_24);
name_36 = as_0 + "_BgText";
if (ObjectFind(name_36) != 0) ObjectCreate(name_36, OBJ_TEXT, 0, 0, 0);
ObjectSet(name_36, OBJPROP_TIME1, Time[0] + 60 * (ControlLineOffset * Period()));
ObjectSet(name_36, OBJPROP_PRICE1, ad_8 + ld_28);
li_44 = StringLen(a_text_16) + 2;
a_text_16 = "";
for (int count_48 = 0; count_48 < li_44; count_48++) a_text_16 = a_text_16 + "Ы";
ObjectSetText(name_36, a_text_16, 8, "Terminal", ControlLineLabelColor);
}
}
// 82D963C450BA8CDDE78C498C77E7F272
int f0_84(int ai_0) {
return (ai_0 == 0 || ai_0 == 2 || ai_0 == 4);
}
// C1037ECE641795974231751B55767CD8
void GerenciaTicket(int a_ticket_0) {
int cmd_4;
double order_lots_8;
double order_open_price_16;
double ld_24;
double ld_32;
if (OrderSelect(a_ticket_0, SELECT_BY_TICKET, MODE_TRADES)) {
cmd_4 = OrderType();
order_lots_8 = OrderLots();
order_open_price_16 = OrderOpenPrice();
ld_24 = 0;
ld_32 = 0;
if (StopLoss > 0.0) {
ld_24 = GetPrimeiroValorDouble(f0_84(cmd_4), order_open_price_16 - f0_7(StopLoss), order_open_price_16 + f0_7(StopLoss));
CreateHLineForTicket(vg_NameLineSL, ld_24, a_ticket_0, StopLossColor);
}
if (TakeProfit > 0.0) {
ld_32 = GetPrimeiroValorDouble(f0_84(cmd_4), order_open_price_16 + f0_7(TakeProfit), order_open_price_16 - f0_7(TakeProfit));
CreateHLineForTicket(vg_NameLineTP, ld_32, a_ticket_0, TakeProfitColor);
}
if (!StealthMode && ld_24 > 0.0 || ld_32 > 0.0) ModifyTicketOrder(a_ticket_0, 0, 0, ld_24, ld_32);
f0_35(a_ticket_0);
}
}
// 3980953FD047E9F2CEAC750BFDF7FD07
void f0_35(int a_ticket_0) {
double ld_4;
if (OrderSelect(a_ticket_0, SELECT_BY_TICKET, MODE_TRADES)) {
ld_4 = GetOrderOpenPrice(a_ticket_0);
f0_40(a_ticket_0, 1, PartialClosePos1);
f0_40(a_ticket_0, 2, PartialClosePos2);
f0_40(a_ticket_0, 3, PartialClosePos3);
if (BreakEvenAt > 0.0) f0_120(a_ticket_0, OrderType(), ld_4);
}
}
// 685F792C37B8B836793CE6A2B866715A
void GerenciaStopLoass(int a_ticket_0) {
int cmd_4;
double ld_8;
double ld_16;
double order_stoploss_24;
string ls_32;
string ls_40;
bool li_48;
double ld_52;
double ld_60;
string ls_68;
int color_76;
if (OrderSelect(a_ticket_0, SELECT_BY_TICKET, MODE_TRADES)) {
cmd_4 = OrderType();
ld_8 = GetLotsforTicket(a_ticket_0);
ld_16 = GetOrderOpenPrice(a_ticket_0);
order_stoploss_24 = f0_31(vg_NameLineSL, a_ticket_0);
if (order_stoploss_24 == EMPTY_VALUE) {
if (OrderStopLoss() > 0.0) {
order_stoploss_24 = OrderStopLoss();
CreateHLineForTicket(vg_NameLineSL, order_stoploss_24, a_ticket_0, StopLossColor);
} else {
if (ForceSetSLTPIfMissing) {
order_stoploss_24 = GetPrimeiroValorDouble(f0_84(cmd_4), ld_16 - f0_7(StopLoss), ld_16 + f0_7(StopLoss));
CreateHLineForTicket(vg_NameLineSL, order_stoploss_24, a_ticket_0, StopLossColor);
}
}
f0_35(a_ticket_0);
} else {
if ((cmd_4 == OP_BUY && Bid <= order_stoploss_24) || (cmd_4 == OP_SELL && Ask >= order_stoploss_24)) {
SetLog(StringConcatenate("Ticket ", a_ticket_0, ": Price reach the StopLoss line! Closing order! SL line: ", order_stoploss_24, ", Price: ", GetPrimeiroValorDouble(cmd_4 == OP_BUY,
Bid, Ask)));
CloseAllGrid(a_ticket_0);
} else {
ls_32 = "[SL] ";
ls_40 = f0_151(vg_NameLineSL, a_ticket_0);
if (TrailingStop > 0.0) {
ls_32 = "[TSL=" + GetDoubleToStr(TrailingStop) + "] ";
li_48 = TrailingTicket(a_ticket_0, TrailingStop, 0);
if (li_48) order_stoploss_24 = f0_31(vg_NameLineSL, a_ticket_0);
}
if (!StealthMode && order_stoploss_24 != NormalizeDoubleDigits(OrderStopLoss())) ModifyTicketOrder(a_ticket_0, 0, 0, order_stoploss_24);
if (ShowControlLineLabels) {
ld_52 = f0_139(GetPrimeiroValorDouble(f0_84(cmd_4), order_stoploss_24 - ld_16, ld_16 - order_stoploss_24));
ld_60 = f0_153(ld_52, ld_8);
ls_68 = f0_136(ld_60, 2);
color_76 = StopLossColor;
if (ld_60 > 0.0) color_76 = TakeProfitColor;
f0_88(ls_40, order_stoploss_24, StringConcatenate(ls_32, OrderTicket(), ": ", GetDoubleToStr(ld_52, 1), " pips (", ls_68, ")"), color_76);
}
}
}
}
}
// 89769B13ED4F492C312B67394076B751
void GerenciaTakeProfit((int a_ticket_0) {
int cmd_4;
double ld_8;
double ld_16;
double order_takeprofit_24;
string ls_nsd_32;
double ld_40;
double ld_48;
string ls_56;
string ls_64;
if (OrderSelect(a_ticket_0, SELECT_BY_TICKET, MODE_TRADES)) {
cmd_4 = OrderType();
ld_8 = GetLotsforTicket(a_ticket_0);
ld_16 = GetOrderOpenPrice(a_ticket_0);
order_takeprofit_24 = f0_31(vg_NameLineTP, a_ticket_0);
if (order_takeprofit_24 == EMPTY_VALUE) {
if (OrderTakeProfit() > 0.0) {
order_takeprofit_24 = OrderTakeProfit();
CreateHLineForTicket(vg_NameLineTP, order_takeprofit_24, a_ticket_0, TakeProfitColor);
} else {
if (ForceSetSLTPIfMissing) {
order_takeprofit_24 = GetPrimeiroValorDouble(f0_84(cmd_4), ld_16 + f0_7(TakeProfit), ld_16 - f0_7(TakeProfit));
CreateHLineForTicket(vg_NameLineTP, order_takeprofit_24, a_ticket_0, TakeProfitColor);
}
}
} else {
if ((cmd_4 == OP_BUY && Bid >= order_takeprofit_24) || (cmd_4 == OP_SELL && Ask <= order_takeprofit_24)) {
SetLog(StringConcatenate("Ticket ", a_ticket_0, ": Price reach the TakeProfit line! Closing order! TP line: ", order_takeprofit_24, ", Price: ", GetPrimeiroValorDouble(cmd_4 == OP_BUY,
Bid, Ask)));
CloseAllGrid(a_ticket_0);
} else {
if (!StealthMode && order_takeprofit_24 != NormalizeDoubleDigits(OrderTakeProfit())) ModifyTicketOrder(a_ticket_0, 0, 0, 0, order_takeprofit_24);
if (ShowControlLineLabels) {
ls_nsd_32 = "[TP] ";
ld_40 = f0_139(MathAbs(ld_16 - order_takeprofit_24));
ld_48 = f0_153(ld_40, ld_8);
ls_56 = f0_136(ld_48, 2);
ls_64 = f0_151(vg_NameLineTP, a_ticket_0);
f0_88(ls_64, order_takeprofit_24, StringConcatenate("[TP] ", OrderTicket(), ": ", GetDoubleToStr(ld_40, 1), " pips (", ls_56, ")"), TakeProfitColor);
}
}
}
}
}
// B83E55AB5F40B64638ACCC1C1CC0F66F
void f0_120(int ai_0, int ai_4, double ad_8) {
double ld_16 = GetPrimeiroValorDouble(f0_84(ai_4), ad_8 + f0_7(BreakEvenAt), ad_8 - f0_7(BreakEvenAt));
CreateHLineForTicket(vg_NameBreakEven, ld_16, ai_0, BreakEvenColor);
}
// 3BE9355AC3F791222AD6D439E4AFF99A
void f0_40(int a_ticket_0, int ai_4, double ad_8) {
if (!OrderSelect(a_ticket_0, SELECT_BY_TICKET, MODE_TRADES) || OrderSymbol() != Symbol() || ad_8 == 0.0) return;
int cmd_16 = OrderType();
double order_lots_20 = OrderLots();
double order_open_price_28 = OrderOpenPrice();
double ld_36 = GetPrimeiroValorDouble(f0_84(cmd_16), order_open_price_28 + f0_7(ad_8), order_open_price_28 - f0_7(ad_8));
CreateHLineForPartialClose(a_ticket_0, ai_4, ad_8, ld_36);
}
// 3F9D4D0323EF7F5AD257F632CD2A26CA
void CreateHLineForPartialClose(int a_ticket_0, int ai_4, double ad_8, double ad_16) {
if (!OrderSelect(a_ticket_0, SELECT_BY_TICKET, MODE_TRADES) || OrderSymbol() != Symbol()) return;
int cmd_24 = OrderType();
double stoplevel_28 = MarketInfo(Symbol(), MODE_STOPLEVEL);
double ld_36 = Ask - Bid;
if (cmd_24 > OP_SELL) {
if (ad_8 != 0.0) CreateHLineForTicket(vgs_1044 + GetDoubleToStr(ai_4), ad_16, a_ticket_0, PartialCloseColor);
} else {
if (((cmd_24 == OP_BUY && ad_8 > 0.0) || (cmd_24 == OP_SELL && ad_8 < 0.0) && ad_16 > Bid + ld_36 + f0_7(1)) || ((cmd_24 == OP_SELL && ad_8 > 0.0) || (cmd_24 == OP_BUY &&
ad_8 < 0.0) && ad_16 < Bid - ld_36 - f0_7(1))) CreateHLineForTicket(vgs_1044 + GetDoubleToStr(ai_4), ad_16, a_ticket_0, PartialCloseColor);
}
}
// 2F1DB2AE07F19F39E12ED9F3C6736290
void f0_29(int a_ticket_0, int ai_4, double ad_8, double ad_16) {
double ld_52;
string ls_60;
string name_68;
if (!OrderSelect(a_ticket_0, SELECT_BY_TICKET, MODE_TRADES) || OrderSymbol() != Symbol()) return;
int cmd_24 = OrderType();
double ld_28 = GetLotsforTicket(a_ticket_0);
double ld_36 = GetOrderOpenPrice(a_ticket_0);
double ld_44 = f0_31(vgs_1044 + GetDoubleToStr(ai_4), a_ticket_0);
if (ld_44 != EMPTY_VALUE) {
ld_52 = f0_139(MathAbs(ld_36 - ld_44));
ls_60 = f0_136(f0_153(ld_52, ld_28), 2);
name_68 = f0_151(vgs_1044 + GetDoubleToStr(ai_4), a_ticket_0);
if (ShowControlLineLabels) f0_88(name_68, ld_44, StringConcatenate("[PC", ai_4, "] ", OrderTicket(), ": ", GetDoubleToStr(ld_52, 1), " pips (", ad_16, "%)"), PartialCloseColor);
if (((cmd_24 == OP_BUY && ad_8 > 0.0) || (cmd_24 == OP_SELL && ad_8 < 0.0) && ld_44 <= Close[0]) || ((cmd_24 == OP_SELL && ad_8 > 0.0) || (cmd_24 == OP_BUY && ad_8 < 0.0) &&
ld_44 >= Close[0])) {
CloseOrderPartialNow(a_ticket_0, ad_16);
ObjectDelete(name_68 + "_Text");
ObjectDelete(name_68 + "_BgText");
ObjectDelete(name_68);
}
}
}
// 453E13E7614D8CCF30123D2AD5C771DC
void GerenciaBreakEven(int a_ticket_0) {
double ld_32;
string ls_40;
string name_48;
if (!OrderSelect(a_ticket_0, SELECT_BY_TICKET, MODE_TRADES) || OrderSymbol() != Symbol()) return;
int cmd_4 = OrderType();
double ld_8 = GetLotsforTicket(a_ticket_0);
double ld_16 = GetOrderOpenPrice(a_ticket_0);
double ld_24 = f0_31(vg_NameBreakEven, a_ticket_0);
if (ld_24 != EMPTY_VALUE) {
ld_32 = f0_139(MathAbs(ld_16 - ld_24));
ls_40 = f0_136(f0_153(ld_32, ld_8), 2);
name_48 = f0_151(vg_NameBreakEven, a_ticket_0);
if (ShowControlLineLabels) f0_88(name_48, ld_24, StringConcatenate("[BE] ", OrderTicket(), ": ", GetDoubleToStr(ld_32, 1), " pips (", ls_40, ")"), BreakEvenColor);
if ((cmd_4 == OP_BUY && ld_24 <= Close[0]) || (cmd_4 == OP_SELL && ld_24 >= Close[0])) {
SetBreakeEven(a_ticket_0);
ObjectDelete(name_48 + "_Text");
ObjectDelete(name_48 + "_BgText");
ObjectDelete(name_48);
}
}
}
// ADA7C40C36B61F2F558BD473F21B8B5B
void f0_116() {
string name_8;
string name_16;
string ls_24;
int li_0 = ObjectsTotal();
for (int li_4 = li_0 - 1; li_4 >= 0; li_4--) {
name_8 = ObjectName(li_4);
if (ObjectFind(name_8) == 0) {
if (UseTrendLines && ObjectType(name_8) == 2) OpenOrderByTrendLine(name_8);
if (UseChannels && ObjectType(name_8) == 5) OpenOrderByChannel(name_8);
if (UsePendingLines && ObjectType(name_8) == 1) f0_26(name_8);
}
}
if (UsePendingLines) {
li_0 = OrdersTotal();
for (li_4 = li_0 - 1; li_4 >= 0; li_4--) {
if (OrderSelect(li_4, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
if (OrderType() > OP_SELL) {
name_16 = f0_151(vg_NamePendingPrice, OrderTicket());
ls_24 = name_16 + "_Text";
if (ObjectFind(name_16) == -1) {
VerifyTicket(OrderTicket(), "Delete pending order because there is no line on chart!");
OrderDelete(OrderTicket());
}
}
}
}
}
}
}
// 6CB6B16E41BC868A64E6E67B270514C9
void OpenOrderByTrendLine(string a_name_0) {
string text_48;
double str2dbl_56;
double str2dbl_64;
int str2int_72;
int str2int_76;
int li_84;
double ld_88;
double ld_96;
string ls_8 = ObjectDescription(a_name_0);
double ld_16 = NormalizeDoubleDigits(ObjectGet(a_name_0, OBJPROP_PRICE1));
double ld_24 = NormalizeDoubleDigits(ObjectGet(a_name_0, OBJPROP_PRICE2));
double ld_32 = NormalizeDoubleDigits(ObjectGet(a_name_0, OBJPROP_TIME1));
double ld_40 = NormalizeDoubleDigits(ObjectGet(a_name_0, OBJPROP_TIME2));
if (ls_8 != "" && StringFind(ls_8, "!") == 0) {
text_48 = ls_8;
f0_89(text_48, "|");
str2dbl_56 = StrToDouble(f0_89(text_48, "|"));
str2dbl_64 = StrToDouble(f0_89(text_48, "|"));
str2int_72 = StrToInteger(f0_89(text_48, "|"));
str2int_76 = StrToInteger(f0_89(text_48, "|"));
if (NormalizeDoubleDigits(str2dbl_56) != ld_16 || NormalizeDoubleDigits(str2dbl_64) != ld_24 || NormalizeDoubleDigits(str2int_72) != ld_32 || NormalizeDoubleDigits(str2int_76) != ld_40) {
ObjectSetText(a_name_0, text_48);
ObjectSet(a_name_0, OBJPROP_COLOR, Red);
ls_8 = ObjectDescription(a_name_0);
SetTraceLog(StringConcatenate("Reactivate trend line: ", a_name_0, " (", ls_8, ")"));
}
}
int li_80 = -1;
if (StringFind(ls_8, "!") != 0 && ObjectGet(a_name_0, OBJPROP_RAY) == 1.0 || (Time[0] >= ld_32 && Time[0] <= ld_40)) {
li_84 = 0;
if (OpenAfterCandleClose) li_84 = 1;
ld_88 = ObjectGetValueByShift(a_name_0, li_84);
if (StringFind(a_name_0, "Trendline", 0) == 0 || (TrueTLSupport && StringFind(a_name_0, "TrueTL", 0) == 0) && ld_88 > Open[li_84]) {
if (Close[li_84] >= ld_88 && Open[li_84] < ld_88) {
ld_96 = f0_27(ls_8, vgd_748);
li_80 = 0;
if (OppositeTrendLineOrder || StringFind(ls_8, "sell", 0) == 0) li_80 = 1;
}
} else {
if (StringFind(a_name_0, "Trendline", 0) == 0 || (TrueTLSupport && StringFind(a_name_0, "TrueTL", 0) == 0) && ld_88 < Open[li_84]) {
if (Close[li_84] <= ld_88 && Open[li_84] > ld_88) {
ld_96 = f0_27(ls_8, vgd_748);
li_80 = 1;
if (OppositeTrendLineOrder || StringFind(ls_8, "buy", 0) == 0) li_80 = 0;
}
}
}
if (li_80 != -1) {
SetLog(StringConcatenate("Open order for trend line! Name: ", a_name_0));
if (OpenOrderNow(li_80, ld_96) > 0) {
f0_172(vg_NameLastTrendOpen, TimeCurrent());
if (DeleteTrendLinesAfterOpen) {
SetTraceLog("Delete trend line: " + a_name_0);
ObjectDelete(a_name_0);
} else {
SetTraceLog("Disable trend line: " + a_name_0);
ObjectSetText(a_name_0, StringConcatenate("!Old", "|", ObjectGet(a_name_0, OBJPROP_PRICE1), "|", ObjectGet(a_name_0, OBJPROP_PRICE2), "|", ObjectGet(a_name_0, OBJPROP_TIME1),
"|", ObjectGet(a_name_0, OBJPROP_TIME2), "|", ls_8));
ObjectSet(a_name_0, OBJPROP_COLOR, Gray);
}
if (TrendLinesOCOMode) f0_122();
}
}
}
}
// 9C4D9879A9CC1EC0B794F0312287CE43
void OpenOrderByChannel(string a_name_0) {
int li_68;
double ld_72;
double ld_80;
double ld_88;
string ls_8 = ObjectDescription(a_name_0);
double ld_16 = NormalizeDoubleDigits(ObjectGet(a_name_0, OBJPROP_PRICE1));
double ld_24 = NormalizeDoubleDigits(ObjectGet(a_name_0, OBJPROP_PRICE2));
double ld_32 = NormalizeDoubleDigits(ObjectGet(a_name_0, OBJPROP_PRICE3));
double ld_40 = NormalizeDoubleDigits(ObjectGet(a_name_0, OBJPROP_TIME1));
double ld_48 = NormalizeDoubleDigits(ObjectGet(a_name_0, OBJPROP_TIME2));
double ld_56 = NormalizeDoubleDigits(ObjectGet(a_name_0, OBJPROP_TIME3));
int li_64 = -1;
if (StringFind(ls_8, "!") != 0 && ObjectGet(a_name_0, OBJPROP_RAY) == 1.0 || (Time[0] >= ld_40 && Time[0] <= ld_48)) {
li_68 = 0;
if (OpenAfterCandleClose) li_68 = 1;
if (ld_32 > ld_16) {
ld_72 = ObjectGetValueByShift(a_name_0, li_68);
ld_80 = ld_72 + (ld_32 - ld_16);
} else {
ld_80 = ObjectGetValueByShift(a_name_0, li_68);
ld_72 = ld_80 - (ld_16 - ld_32);
}
if (Close[li_68] >= ld_80 && Open[li_68] < ld_80) {
ld_88 = vgd_748;
li_64 = 0;
if (OppositeTrendLineOrder) li_64 = 1;
} else {
if (Close[li_68] <= ld_72 && Open[li_68] > ld_72) {
ld_88 = vgd_748;
li_64 = 1;
if (OppositeTrendLineOrder) li_64 = 0;
}
}
if (li_64 != -1) {
SetLog(StringConcatenate("Open order for channel! Name: ", a_name_0));
if (OpenOrderNow(li_64, ld_88) > 0) {
SetTraceLog("Delete channel: " + a_name_0);
ObjectDelete(a_name_0);
}
}
}
}
// 2C5A855C6F830E8B269D08DDD9D53A1A
void f0_26(string a_name_0) {
double ld_28;
int ticket_36;
string name_40;
bool li_48;
double ld_52;
double ld_60;
double ld_68;
double ld_76;
double ld_84;
string ls_8 = GetApenasLetras(ObjectDescription(a_name_0));
double price_16 = NormalizeDoubleDigits(ObjectGet(a_name_0, OBJPROP_PRICE1));
int li_24 = -1;
if (StringFind(a_name_0, "Horizontal Line", 0) == 0) {
if (StringFind(ls_8, "buy") == 0) {
if (price_16 > Close[0]) li_24 = 4;
else li_24 = 2;
} else {
if (StringFind(ls_8, "sell") == 0) {
if (price_16 > Close[0]) li_24 = 3;
else li_24 = 5;
}
}
if (li_24 != -1) {
SetLog(StringConcatenate("Open pending (", f0_169(li_24), ") position by line: ", a_name_0));
ld_28 = f0_27(ls_8, vgd_748);
if (OpenOrder(li_24, ld_28, 0, 0, MagicNumber, 0, price_16)) {
ticket_36 = vg_ticket_968;
GerenciaTicket(ticket_36);
name_40 = f0_151(vg_NamePendingPrice, ticket_36);
if (ObjectFind(name_40) == -1) {
ObjectCreate(name_40, OBJ_HLINE, 0, 0, price_16);
ObjectSet(name_40, OBJPROP_COLOR, PendingLineColor);
ObjectSet(name_40, OBJPROP_STYLE, STYLE_DASHDOT);
}
if (ShowControlLineLabels) f0_88(name_40, price_16, StringConcatenate("[", f0_169(li_24), "] ", OrderTicket(), ": ", GetDoubleToStr(ld_28, 2), " lots"), PendingLineColor);
ObjectDelete(a_name_0);
}
}
} else {
if (StringFind(a_name_0, vgs_996, 0) == 0 && StringFind(a_name_0, vg_NamePendingPrice, 0) > 0) {
li_48 = FALSE;
price_16 = ObjectGet(a_name_0, OBJPROP_PRICE1);
ticket_36 = f0_70(a_name_0);
if (OrderSelect(ticket_36, SELECT_BY_TICKET)) {
if (OrderType() == OP_BUY || OrderType() == OP_SELL) {
li_48 = TRUE;
if (PendingOCOMode) {
SetLog(StringConcatenate("Delete all pending orders. Cause: PendingOCOMode is true and ticket ", ticket_36, " is opened. "));
RemoveOrdersPendents();
}
} else {
if (NormalizeDoubleDigits(OrderOpenPrice()) != NormalizeDoubleDigits(price_16)) {
ld_52 = 0;
ld_60 = 0;
ld_68 = OrderOpenPrice() - price_16;
ld_76 = f0_31(vg_NameLineSL, ticket_36);
if (ld_76 != EMPTY_VALUE) ld_52 = ld_76 - ld_68;
ld_84 = f0_31(vg_NameLineTP, ticket_36);
if (ld_84 != EMPTY_VALUE) ld_60 = ld_84 - ld_68;
if (ModifyPendingOrderPrice(ticket_36, price_16, GetPrimeiroValorDouble(StealthMode, 0, ld_52), GetPrimeiroValorDouble(StealthMode, 0, ld_60))) {
if (OrderSelect(ticket_36, SELECT_BY_TICKET)) {
if (ld_52 > 0.0) CreateHLineForTicket(vg_NameLineSL, ld_52, ticket_36);
if (ld_60 > 0.0) CreateHLineForTicket(vg_NameLineTP, ld_60, ticket_36);
for (int li_92 = 1; li_92 <= 3; li_92++)
if (f0_31(vgs_1044 + GetDoubleToStr(li_92), ticket_36) != EMPTY_VALUE) CreateHLineForTicket(vgs_1044 + GetDoubleToStr(li_92), f0_31(vgs_1044 + GetDoubleToStr(li_92), ticket_36) - ld_68, ticket_36, PartialCloseColor);
if (f0_31(vg_NameBreakEven, ticket_36) != EMPTY_VALUE) CreateHLineForTicket(vg_NameBreakEven, f0_31(vg_NameBreakEven, ticket_36) - ld_68, ticket_36, BreakEvenColor);
}
}
}
if (ShowControlLineLabels) {
name_40 = f0_151(vg_NamePendingPrice, ticket_36);
f0_88(name_40, price_16, StringConcatenate("[", f0_169(OrderType()), "] ", OrderTicket(), ": ", GetDoubleToStr(OrderLots(), 2), " lots"), PendingLineColor);
}
}
} else li_48 = TRUE;
if (li_48) {
ObjectDelete(a_name_0);
name_40 = f0_151(vg_NamePendingPrice, ticket_36);
ObjectDelete(name_40 + "_BgText");
ObjectDelete(name_40 + "_Text");
}
}
}
}
// B8657638CFA5247FE57D2D00F2E198B8
void f0_122() {
string name_8;
int objs_total_0 = ObjectsTotal();
for (int li_4 = objs_total_0 - 1; li_4 >= 0; li_4--) {
name_8 = ObjectName(li_4);
if (ObjectType(name_8) != 2 || ObjectFind(name_8) != 0) continue;
ObjectDelete(name_8);
}
}
// 7B26EB163EEA6BBA01A1869096B0C7F1
void RemoveOrdersPendents() {
int order_total_0 = OrdersTotal();
for (int pos_4 = order_total_0 - 1; pos_4 >= 0; pos_4--) {
if (OrderSelect(pos_4, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
if (OrderType() > OP_SELL) OrderDelete(OrderTicket());
}
}
}
// A2EAB982495DA51539FEDFD4F431755F
void ExibeLinhasGride(int a_ticket_0) {
if (!OrderSelect(a_ticket_0, SELECT_BY_TICKET, MODE_TRADES) || OrderSymbol() != Symbol()) return;
int cmd_4 = OrderType();
double ld_8 = f0_96(a_ticket_0);
if (GetLevelGrid(a_ticket_0) > 1) CreateHLineForTicket(vg_NameGridPrice, ld_8, a_ticket_0, LightSkyBlue, STYLE_DOT);
}
// 91F4903D720AB7A282618D4DEAA0D2D1
double f0_96(int ai_0) {
double ld_4;
int li_24;
double ld_12 = 0;
for (int pos_20 = OrdersTotal() - 1; pos_20 >= 0; pos_20--) {
if (OrderSelect(pos_20, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
if (OrderType() == OP_BUY || OrderType() == OP_SELL) {
li_24 = f0_56(vg_NamGridParent, OrderTicket());
if (li_24 == ai_0 || OrderTicket() == ai_0) {
ld_4 += OrderOpenPrice() * OrderLots();
ld_12 += OrderLots();
}
}
}
}
}
if (ld_12 > 0.0) return (NormalizeDoubleDigits(ld_4 / ld_12));
return (EMPTY_VALUE);
}
// 2C6D6D7A6D0F1902FDEAEAB1C37DD7FB
double f0_27(string as_0, double a_str2dbl_8) {
double str2dbl_16 = a_str2dbl_8;
string ls_24 = as_0;
string ls_32 = f0_89(ls_24, "=");
if (StringLen(ls_24) > 0) str2dbl_16 = StrToDouble(ls_24);
return (GetNormalizeLot(str2dbl_16));
}
// 68CECFBE4049D002E8B8CE95B3832A6E
int f0_70(string as_0) {
int str2int_8 = -1;
string ls_12 = StringSubstr(as_0, StringLen(vgs_996));
string ls_20 = StringSubstr(ls_12, 0, StringFind(ls_12, "_", 0));
str2int_8 = StrToInteger(ls_20);
return (str2int_8);
}
// 7CE58342490F2719632C99A1A5E38D1B
void CriaLabel(string a_name_0, int a_x_8, int a_y_12, string a_text_16, int a_fontsize_24, string a_fontname_28, color a_clr_36) {
if (ObjectFind(a_name_0) < 0) ObjectCreate(a_name_0, OBJ_LABEL, 0, 0, 0);
ObjectSet(a_name_0, OBJPROP_CORNER, vg_corner_1180);
ObjectSet(a_name_0, OBJPROP_BACK, FALSE);
ObjectSet(a_name_0, OBJPROP_XDISTANCE, a_x_8);
ObjectSet(a_name_0, OBJPROP_YDISTANCE, a_y_12);
ObjectSetText(a_name_0, a_text_16, a_fontsize_24, a_fontname_28, a_clr_36);
}
// 6BF191DB9F328C0F42640F1F596A2384
void LimpaLinhas() {
string name_4;
string ls_12;
string ls_20;
int str2int_28;
for (int li_0 = ObjectsTotal() - 1; li_0 >= 0; li_0--) {
name_4 = ObjectName(li_0);
if (ObjectFind(name_4) == 0) {
if (StringFind(name_4, vgs_996, 0) == 0) {
ls_12 = StringSubstr(name_4, StringLen(vgs_996));
ls_20 = StringSubstr(ls_12, 0, StringFind(ls_12, "_", 0));
str2int_28 = StrToInteger(ls_20);
if (str2int_28 > 0 && !OrderSelect(str2int_28, SELECT_BY_TICKET, MODE_TRADES) || OrderCloseTime() != 0) ObjectDelete(name_4);
}
}
}
}
// 1135155E048F3DF4275620DA6DD845E6
string f0_10(int ai_0) {
string lsa_4[6] = {"year", "month", "day", "h", "m", "s"};
int lia_8[6] = {31536000, 2678400, 86400, 3600, 60, 1};
if (ai_0 < 0) return ("-");
string ls_ret_12 = "";
int count_20 = 0;
int li_24 = ai_0;
int li_28 = 0;
for (int index_32 = 0; index_32 < 6; index_32++) {
li_28 = MathFloor(li_24 / lia_8[index_32]);
if (li_28 > 0) {
if (count_20 > 0) ls_ret_12 = ls_ret_12 + " ";
ls_ret_12 = StringConcatenate(ls_ret_12, li_28, lsa_4[index_32]);
count_20++;
if (count_20 > 1) break;
li_24 = MathMod(li_24, lia_8[index_32]);
}
}
return (ls_ret_12);
}
// 61BCD96A2C1F8026527CBF2019D6E9A4
int StatusEA() {
string ls_24;
bool li_ret_0 = FALSE;
AddComment("");
AddComment("Starting " + StringConcatenate("TraderAgent", " ", "v2.3.3", " Build ", "159", " ", GetTypeLicence(), "..."));
AddComment("Checking DLL calls............");
if (!IsDllsAllowed()) {
AddComment("ERROR", 1);
AddComment("Set Parameter **AllowDLL Imports** ON in menu Tools -> Options -> ExpertAdvisors.");
return (1);
}
AddComment("OK", 1);
AddComment("Checking Expert enabled............");
if (!IsExpertEnabled()) {
AddComment("ERROR", 1);
AddComment("Please enable the Expert Advisors.");
return (1);
}
AddComment("OK", 1);
string ls_4 = "2.3.1.60";//IceLock_GetVersion();
AddComment("DLL version: " + ls_4);
SetLog("Product version: " + "v2.3.3" + " Build " + "159");
SetLog("IceLock DLL version: " + ls_4);
AddComment("Checking passkey............");
int str2int_12 = 0;
string ls_16 = "";
vgi_804 = WindowHandle(Symbol(), Period());
ls_16 = "1 | Pro mode!";//IceLock_CheckLicense(vgi_804, PassKey, TerminalPath(), WindowExpertName(), "30b491b240062cd4e41874504960a075", "v2.3.3", 0);
str2int_12 = StrToInteger(f0_89(ls_16, " | "));
if (str2int_12 <= 0) {
ls_24 = "unknown";//IceLock_GetComputerID();
AddComment("ERROR", 1);
AddComment("License error! " + ls_16);
SetErrorLog("License error! " + ls_16);
AddComment("Computer ID: " + ls_24);
SetErrorLog("Computer ID: " + ls_24);
Alert("TraderAgent", " ", "v2.3.3", " - License check error (", str2int_12, ")! ", ls_16);
return (str2int_12);
}
if (str2int_12 == 1) AddComment("OK", 1);
else {
if (str2int_12 == 2) {
AddComment("OK", 1);
AddComment("Trial mode!");
vgi_1596 = TRUE;
}
}
SetInfoLog("Your computer ID: unknown"/* + IceLock_GetComputerID()*/);
SetInfoLog("License check result (" + GetDoubleToStr(str2int_12) + "): " + ls_16);
AddComment("Waiting for first tick............");
vgi_1600 = TRUE;
li_ret_0 = TRUE;
return (li_ret_0);
}
// 5DDE2CC43817CF3BC77DE1C0C7978C13
void PrintComment() {
vg_count_1592 = 0;
ExibeComment();
}
// B70A9113C5772E6DFB45E474B46C9979
void AddComment(string pMessage, bool ai_8 = FALSE, int ai_12 = -1) {
if (ai_12 == -1) {
if (!ai_8) {
ai_12 = vg_count_1592;
vg_count_1592++;
} else ai_12 = vg_count_1592 - 1;
}
if (ai_8) vg_ArrayComment[ai_12] = vg_ArrayComment[ai_12] + pMessage;
else vg_ArrayComment[ai_12] = pMessage;
ExibeComment();
}
// 2F7095AADF8745BE0F469991AD836EF1
void ExibeComment() {
string vcoment = "";
for (int index_8 = 0; index_8 < vg_count_1592; index_8++) {
if (index_8 > 0) {
vcoment = vcoment + "\n";
}
vcoment = vcoment + vg_ArrayComment[index_8];
}
Comment(vcoment);
}
// 0E40DB3B593F30DA392370025B26753A
void StopEA() {
Print("Self-destruct initiated!");
int li_0 = WindowHandle(Symbol(), 0);
PostMessageA(li_0, WM_COMMAND, 33050, 0);
}
// 43FCCB9D3B9E6FC994AC54D13FB61D2F
void f0_47() {
vg_bool_844 = (!IsOptimization()) && 1;
vg_bool_852 = !IsTesting();
vgi_848 = TRUE;
vg_IpServer = "127.0.0.1";
vg_bool_856 = IsTesting() || f0_22(vgs_udplovg_1132, -1, 0, 1) == 1.0;
f0_2();
GravaInformacoesLog();
}
// F21A94BE6FBDF8D56C501172DCEDA4CC
void f0_163() {
ArrayInitialize(vgia_1188, 0);
vgi_nsd_744 = 0;
ArrayInitialize(vgia_1200, 0);
vgi_1324 = FALSE;
vgi_1296 = 0;
vg_dttm_1328 = 0;
f0_19();
f0_33();
}
// A9AC747ECC57E99EEF4277C89F17F1C7
void f0_113() {
vgi_804 = WindowHandle(Symbol(), Period());
IceLock_StartTicker(vgi_804, TickTime);
}
// 29984943467A7EC2DB2B1FC0BE6394DE
void f0_23() {
IceLock_StopTicker(vgi_804);
}
// 451B93CD5361E5070EDA031D26C5855B
void f0_49() {
double ld_0;
vgi_760++;
vgi_756 = GetTickCount();
f0_130();
ExibeCopyRight();
if (vg_bool_776) f0_142(0);
if (IsTesting() && BackTestTime > 0)
if (TimeCurrent() - vg_dttm_772 < BackTestTime) return;
vg_dttm_772 = TimeCurrent();
if (GetTickCount() - vgi_768 > vgi_816 || IsTesting()) {
vg_bool_812 = GlobalVariableCheck("TADebug") && GlobalVariableGet("TADebug") == 1.0;
if (GlobalVariableCheck("TASlowTime")) vgi_816 = MathMax(GlobalVariableGet("TASlowTime"), 500);
if (vgi_796) f0_94();
VerifyAutoCloseAll();
ld_0 = vgd_748;
vgd_748 = f0_53(Symbol(), RiskPercent, LOT, StopLoss);
if (vgd_748 != ld_0) {
SettextBtn(0, StringConcatenate("Buy ", GetDoubleToStr(vgd_748, 2)));
SettextBtn(1, StringConcatenate("Sell ", GetDoubleToStr(vgd_748, 2)));
}
if (vg_bool_776) f0_142(1);
if (UseTrendLines || UsePendingLines || UseChannels) f0_116();
if ((vgi_796 && vg_bool_776) || TimeCurrent() - vg_dttm_800 > 30) {
if (ShowPivotPoints) ExibePivotPoints();
ExibeProfitPanel();
ExibeInformacoesPainel();
vg_dttm_800 = TimeCurrent();
}
f0_83();
if (vgi_1340) f0_126();
f0_110();
if (ShowNextCandleTime) f0_154();
if (ShowControlPanel) f0_144();
vgi_768 = GetTickCount();
vgi_764++;
if (vg_bool_812) Comment("Full tick count: ", vgi_764, ", Last Full Work time: ", GetTickCount() - vgi_756, " ms - Real tick:", vg_bool_776, ", HasFocus: ", vgi_796);
}
vgi_756 = GetTickCount() - vgi_756;
}
// BCAE19BFF0BBF16DE57434082605B5CF
string GetTypeLicence() {
if (vgi_1596) return ("Trial");
switch (2) {
case 1:
return ("");
case 2:
return ("Pro");
case 3:
return ("Ultra");
}
return ("");
}
// F787E1ED503D2D47A476A44E6CA26384
string f0_169(int ai_0) {
switch (ai_0) {
case 0:
return ("Buy");
case 1:
return ("Sell");
case 2:
return ("Buylimit");
case 3:
return ("Selllimit");
case 4:
return ("Buystop");
case 5:
return ("Sellstop");
}
return ("Unknow");
}
// 435B996F3BB934BC9504AD03D905BC90
int OpenHedgePosition(int a_ticket_0 = -1) {
double ld_4;
int li_12;
int li_16;
if (a_ticket_0 == -1) a_ticket_0 = GetLastOpenTicket(-1, MagicNumber);
if (a_ticket_0 != -1) {
SetLog("Open hedge position for #" + a_ticket_0);
if (OrderTicket() != a_ticket_0) OrderSelect(a_ticket_0, SELECT_BY_TICKET, MODE_TRADES);
ld_4 = GetLotsforTicket(a_ticket_0);
li_12 = 1 - OrderType();
li_16 = OpenOrderNow(li_12, ld_4);
return (li_16);
}
return (-1);
}
// 89FF7E2FBE79EDBFF74ECA22412DA098
void OpenGridfoTicket(int a_ticket_0) {
double order_lots_4;
double cmd_12;
double ticket_20;
double ld_28;
double order_lots_36;
double ld_44;
int li_52;
double ld_56;
double ld_64;
int ticket_72;
double ld_76;
double ld_84;
double ld_92;
double ld_104;
double ld_112;
if (OrderSelect(a_ticket_0, SELECT_BY_TICKET, MODE_TRADES) && GridStep > 0.0 && GridLotMultiplier > 0.0 && OrderCloseTime() == 0) {
order_lots_4 = OrderLots();
cmd_12 = OrderType();
ticket_20 = ValidTicket(a_ticket_0);
if (OrderSelect(ticket_20, SELECT_BY_TICKET, MODE_TRADES)) {
ld_28 = NormalizeDoubleDigits(OrderOpenPrice());
order_lots_36 = OrderLots();
ld_44 = f0_56(vg_NameLevelGrid, ticket_20);
li_52 = ld_44 + 1.0;
if ((cmd_12 == 0.0 && NormalizeDoubleDigits(Ask) < NormalizeDoubleDigits(ld_28 - f0_7(GridStep))) || (cmd_12 == 1.0 && NormalizeDoubleDigits(Bid) > NormalizeDoubleDigits(ld_28 + f0_7(GridStep))) && li_52 < GridMaxOrderCount ||
GridMaxOrderCount == 0) {
ld_56 = f0_149(order_lots_4, li_52);
if (ld_56 > 0.0) {
SetLog(StringConcatenate("Open new grid order! Parent ticket: ", a_ticket_0, ", LOT: ", ld_56, ", Level: ", li_52, ", Price: ", Bid, ", Distance: ", MathAbs(Ask - ld_28)));
ld_64 = GetOrderOpenPrice(a_ticket_0);
if (OpenOrder(cmd_12, ld_56, 0, 0, MagicNumber)) {
ticket_72 = vg_ticket_968;
f0_172(vg_NamGridParent, a_ticket_0, ticket_72);
f0_172(vg_NameLevelGrid, li_52, ticket_72);
if (GridReCalculateSLTP) {
ld_76 = f0_96(a_ticket_0);
ld_84 = ld_76 - ld_64;
SetLog(StringConcatenate("Recalculate SL/TP/BE values! Old avg. price: ", ld_64, ", new avg. price: ", ld_76, ", Difference: ", ld_84));
if (ld_84 != 0.0) {
ld_92 = f0_31(vg_NameLineSL, a_ticket_0);
if (ld_92 > 0.0 && ld_92 != EMPTY_VALUE) CreateHLineForTicket(vg_NameLineSL, ld_92 + ld_84, a_ticket_0);
ld_92 = f0_31(vg_NameLineTP, a_ticket_0);
if (ld_92 > 0.0 && ld_92 != EMPTY_VALUE) CreateHLineForTicket(vg_NameLineTP, ld_92 + ld_84, a_ticket_0);
ld_92 = f0_31(vg_NameBreakEven, a_ticket_0);
if (ld_92 != EMPTY_VALUE) CreateHLineForTicket(vg_NameBreakEven, ld_92 + ld_84, a_ticket_0, BreakEvenColor);
for (int li_100 = 1; li_100 <= 3; li_100++) {
ld_92 = f0_31(vgs_1044 + GetDoubleToStr(li_100), a_ticket_0);
if (ld_92 != EMPTY_VALUE) CreateHLineForTicket(vgs_1044 + GetDoubleToStr(li_100), ld_92 + ld_84, a_ticket_0, PartialCloseColor);
}
}
}
}
} else SetLog(StringConcatenate("Invalid new grid order lot: ", ld_56));
}
if (!StealthMode) {
if (OrderSelect(a_ticket_0, SELECT_BY_TICKET, MODE_TRADES)) {
ld_104 = NormalizeDoubleDigits(OrderStopLoss());
ld_112 = NormalizeDoubleDigits(OrderTakeProfit());
for (int pos_120 = OrdersTotal() - 1; pos_120 >= 0; pos_120--) {
if (OrderSelect(pos_120, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol() == Symbol()) {
if (OrderMagicNumber() == MagicNumber) {
if (f0_56(vg_NamGridParent, OrderTicket()) == a_ticket_0)
if (NormalizeDoubleDigits(OrderStopLoss()) != ld_104 || NormalizeDoubleDigits(OrderTakeProfit()) != ld_112) ModifyTicketOrder(OrderTicket(), 0, 0, ld_104, ld_112);
}
}
}
}
}
}
}
}
}
// C7B7E78A33FDB681AE876AC23EA003AB
int VerifyLicence(string as_0) {
int lia_8[];
int lia_12[5];
int li_16;
if (vgi_836 == FALSE) ValidLicence();
if (vgi_836 != FALSE) {
ArrayResize(lia_8, StringLen(as_0));
f0_141(lia_8, ArraySize(lia_8) << 18, as_0);
f0_105(lia_12, 131072, 2);
f0_105(lia_12, 131074, f0_51(vgi_832));
f0_105(lia_12, 262148, /*inet_addr(vg_IpServer)*/vg_IpServer);
li_16 = 1;//sendto(vgi_836, lia_8, ArraySize(lia_8), 0, lia_12, ArraySize(lia_12) * 4);
if (li_16 == -1) {
Print("Server: UDP send() failed: error "/* + WSAGetLastError()*/);
vgi_836 = FALSE;
}
}
return (vgi_836);
}
// DF0D5A17B34CAF650F5CADD3F2327AD8
int ValidLicence() {
int lia_4[100];
int lia_12[1];
int li_nsd_8 = 1;
if (vgi_832 == 0) return (0);
int li_0 = 0;//WSAStartup(514, lia_4);
if (li_0 != 0) {
Print("Server: WSAStartup() failed with error " + li_0);
return (0);
}
vgi_836 = TRUE;//socket(2, 2, 17);
if (vgi_836 == FALSE) {
Print("Server: socket() failed with error "/* + WSAGetLastError()*/);
// WSACleanup();
return (0);
}
lia_12[0] = f0_51(1);
li_0 = 1;//setsockopt(vgi_836, 65535, 4, lia_12, ArraySize(lia_12) * 4);
if (li_0 == -1) Print("Server: setsockopt() failed with error "/* + WSAGetLastError()*/);
return (vgi_836);
}
// F3F4879EA2CD57F6262AF6EBF1AA6BED
string GetPathLog() {
if (vg_bool_852) return (StringConcatenate("logs\\", TimeToStr(TimeLocal(), TIME_DATE), " - ", WindowExpertName(), " [", Symbol(), "].log"));
return (StringConcatenate("logs\\", WindowExpertName(), " [", Symbol(), "].log"));
}
// DF360FB723F3206D897C43B4EE63EC9B
void GravaInformacoesLog() {
int li_0 = vgi_848;
vgi_848 = FALSE;
SetLog("###########################################################################", "SET ", 8);
SetLog("Expert: " + vg_InfoExecuteEA, "SET ", 8);
SetLog("Symbol: " + Symbol(), "SET ", 8);
SetLog("Period: " + GetStrPeriodo(), "SET ", 8);
SetLog("Account Company: " + AccountCompany(), "SET ", 8);
SetLog("Account Currency: " + AccountCurrency(), "SET ", 8);
SetLog("Account Leverage: " + AccountLeverage(), "SET ", 8);
SetLog("Account Server: " + AccountServer(), "SET ", 8);
SetLog("Expert Enabled: " + GetStrBool(IsExpertEnabled()), "SET ", 8);
SetLog("Trade Allowed " + GetStrBool(IsTradeAllowed()), "SET ", 8);
SetLog("Dll Allowed " + GetStrBool(IsDllsAllowed()), "SET ", 8);
SetLog("Demo: " + GetStrBool(IsDemo()), "SET ", 8);
SetLog("Testing: " + GetStrBool(IsTesting()), "SET ", 8);
SetLog(" ", "SET ", 8);
SetLog("Digits: " + Digits, "SET ", 8);
SetLog("Spread: " + DoubleToStr(MarketInfo(Symbol(), MODE_SPREAD), 1), "SET ", 8);
SetLog("Point: " + MarketInfo(Symbol(), MODE_POINT), "SET ", 8);
SetLog("Stop level: " + DoubleToStr(MarketInfo(Symbol(), MODE_STOPLEVEL), 1), "SET ", 8);
SetLog("Lot size: " + DoubleToStr(MarketInfo(Symbol(), MODE_LOTSIZE), 0), "SET ", 8);
SetLog("Minimum LOT: " + DoubleToStr(MarketInfo(Symbol(), MODE_MINLOT), 5), "SET ", 8);
SetLog("Maximum LOT: " + DoubleToStr(MarketInfo(Symbol(), MODE_MAXLOT), 0), "SET ", 8);
SetLog("Lot step: " + MarketInfo(Symbol(), MODE_LOTSTEP), "SET ", 8);
SetLog("Lot cost (init): " + DoubleToStr(MarketInfo(Symbol(), MODE_MARGININIT), 2), "SET ", 8);
SetLog("Lot cost (req): " + DoubleToStr(MarketInfo(Symbol(), MODE_MARGINREQUIRED), 2), "SET ", 8);
SetLog("Lot cost (maintenance): " + DoubleToStr(MarketInfo(Symbol(), MODE_MARGINMAINTENANCE), 2), "SET ", 8);
SetLog("Lot cost (hedged): " + DoubleToStr(MarketInfo(Symbol(), MODE_MARGINHEDGED), 2), "SET ", 8);
SetLog("Tick value: " + MarketInfo(Symbol(), MODE_TICKVALUE), "SET ", 8);
SetLog("Tick size: " + MarketInfo(Symbol(), MODE_TICKSIZE), "SET ", 8);
SetLog("###########################################################################", "SET ", 8);
SetLog("Log level: " + GetTipoLog(vgi_840), "SET ", 8);
vgi_848 = li_0;
}
// EB053A21ADF8A5FF57B4BBC45DE07971
string GetStrBool(bool ai_0) {
if (ai_0) return ("True");
return ("False");
}
// 9A6BBDE4218D042CE08249A57FE5AAAF
string GetStrTypeOrder(int ai_0) {
switch (ai_0) {
case 0:
return ("BUY");
case 1:
return ("SELL");
case 2:
return ("BUYLIMIT");
case 3:
return ("SELLLIMIT");
case 4:
return ("BUYSTOP");
case 5:
return ("SELLSTOP");
}
return ("Unknow");
}
// C32C9AC1883956DF9E4F05F9C561E3D8
string GetStrPeriodo() {
switch (Period()) {
case PERIOD_M1:
return ("M1");
case PERIOD_M5:
return ("M5");
case PERIOD_M15:
return ("M15");
case PERIOD_M30:
return ("M30");
case PERIOD_H1:
return ("H1");
case PERIOD_H4:
return ("H4");
case PERIOD_D1:
return ("D1");
case PERIOD_W1:
return ("W1");
case PERIOD_MN1:
return ("MN1");
}
return ("Invalid");
}
// 98E15D86F9578A03D816241A92703D41
string GetTipoLog(int ai_0) {
switch (ai_0) {
case 1:
return ("ERROR ");
case 2:
return ("WARNING");
case 4:
return ("SUCCESS");
case 8:
return ("INFO ");
case 16:
return ("TRACE ");
}
return ("DEBUG ");
}
// CE0BE71E33226E4C1DB2BCEA5959F16B
void SetLog(string pMensagem, string as_8 = "NORMAL", int pTipolog = 8) {
string name_20;
string ls_28;
int file_36;
if (pTipolog <= vgi_840 && vg_bool_844) {
name_20 = GetPathLog();
if (name_20 != vg_name_860 && IsTesting()) {
FileDelete(name_20);
vg_name_860 = name_20;
}
ls_28 = "; ";
file_36 = FileOpen(name_20, FILE_CSV|FILE_WRITE|FILE_READ, ';');
FileSeek(file_36, 0, SEEK_END);
FileWrite(file_36, TimeToStr(TimeLocal(), TIME_DATE), " " + TimeToStr(TimeLocal(), TIME_SECONDS), " " + as_8, " " + GetTipoLog(pTipolog), " " + pMensagem);
FileClose(file_36);
if (vgi_848) Print(pMensagem);
if (vg_bool_856) {
VerifyLicence(StringConcatenate("L", ls_28, vg_InfoExecuteEA, ls_28, TimeToStr(TimeLocal(), TIME_DATE), ls_28, TimeToStr(TimeLocal(), TIME_SECONDS), ls_28, as_8, ls_28,
GetTipoLog(pTipolog), ls_28, pMensagem));
}
}
}
// 1E2D3E4519DB325889FC8F38EF6C766B
void SetErrorLog(string as_0, string as_8 = "NORMAL") {
SetLog(as_0, as_8, 1);
}
// E23D486C78092A2B54111904104FC071
void SetErrorLogAlert(string as_0, string as_8 = "NORMAL") {
SetLog(as_0, as_8, 1);
Alert(as_0);
}
// A8AF7782502AD176154B856C82283D97
void SetWarningLog(string as_0, string as_8 = "NORMAL") {
SetLog(as_0, as_8, 2);
}
// 84688D9507D6EDD699E41363EC5F400C
void SetTraceLog(string as_0, string as_8 = "NORMAL") {
SetLog(as_0, as_8, 16);
}
// 78E76497B869281F4747A3FC3558A71B
void SetInfoLog(string as_0, string as_8 = "NORMAL") {
SetLog(as_0, as_8, 4);
}
// 059080B1E7C854F6FFA0BD5AF5E562B5
void f0_2(string a_str_concat_0 = "") {
if (a_str_concat_0 != "") vg_InfoExecuteEA = a_str_concat_0;
else vg_InfoExecuteEA = StringConcatenate(WindowExpertName(), " [", Symbol(), "] - ", AccountNumber());
string ls_8 = "; ";
string ls_16 = "REAL";
if (IsDemo()) ls_16 = "DEMO";
if (IsTesting()) ls_16 = "TEST";
if (vg_bool_844 && vg_bool_856) VerifyLicence(StringConcatenate("I", ls_8, vg_InfoExecuteEA, ls_8, TimeToStr(TimeLocal(), TIME_DATE), ls_8, TimeToStr(TimeLocal(), TIME_SECONDS), ls_8, ls_16));
}
// DA69CBAFF4D38B87377667EEC549DE5A
string GetError(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);
}