Ea ni tak nak trade Real...
Lama juga dah tak coding mq4, dah kekok
Salam Bro Aiman...dah cuba edit utk real acc tapi bila dicompile..error memanjang...tolong bro...cuma mahu acc demo je...timakasih banyak ye..
#property copyright "Copyleft 2012"
#property link "http://www.net"
string modver = "ForexSetkaTrader";
extern bool ShowTradeComment = TRUE;
//extern bool RealtimeChartUpdate = FALSE;
extern double Lots = 0.01;
extern double MultiLotsFactor = 1.6;
extern double StepLots = 15.0;
extern double TakeProfit = 23.0;
extern bool UseTrailing = FALSE;
extern double TrailStart = 38.0;
extern double TrailStop = 18.0;
extern int MaxOpenOrders = 15;
extern bool SafeEquityStopOut = FALSE;
extern double SafeEquityRisk = 0.5;
extern double Slippage = 3.0;
extern int MagicNumber = 2024536;
extern bool FreezeAfterTP = FALSE;
extern bool Close_All_Orders = FALSE;
extern string TradeComment = "FXGT";
extern string ______________ = "Scheduler:";
extern int StartHour = 0;
extern int StartMinute = 0;
extern int StopHour = 0;
extern int StopMinute = 0;
extern int StartingTradeDay = 0;
extern int EndingTradeDay = 7;
/*extern*/ bool UseLotFix = TRUE;
bool gi_184 = FALSE;
double gd_188 = 48.0;
double gd_196 = 500.0;
double gd_204 = 0.0;
bool gi_212 = TRUE;
bool gi_216 = FALSE;
int gi_220 = 1;
double gd_224;
double gd_232;
double gd_240;
double gd_248;
double gd_256;
double gd_264;
double gd_272;
double gd_280;
bool gi_HaveNewOpenOrders;
int gt_292 = 0;
int gi_296;
int gi_300 = 0;
double gd_304;
int gi_312 = 0;
int gi_OrdersOpen;
double gd_320 = 0.0;
bool gi_328 = FALSE;
bool gi_332 = FALSE;
bool gi_336 = FALSE;
int gi_340;
bool gi_344 = FALSE;
int gi_348 = 0;
int gi_352 = 0;
double gd_356;
double gd_364;
string gs_off_372 = "OFF";
string gs_live_380 = "REAL";
string gs_396 = "";
bool gi_408 = TRUE;
bool gi_412 = TRUE;
int gi_416 = 0;
int gi_420;
int gStartMinutes, gStopMinutes;
double PipToTP, MaxDD = 0;
bool IsTradeTime() {
if (FreezeAfterTP) return(false);
bool AllowTrade = true;
gStartMinutes = 60 * StartHour + StartMinute;
gStopMinutes = 60 * StopHour + StopMinute;
int day = DayOfWeek();
if (day < StartingTradeDay || day > EndingTradeDay) AllowTrade = false;
int minuntes = 60 * TimeHour(TimeCurrent()) + TimeMinute(TimeCurrent());
if (day <= StartingTradeDay && gStartMinutes >= minuntes) AllowTrade = false;
if (day >= EndingTradeDay && gStopMinutes < minuntes) AllowTrade = false;
return(AllowTrade);
**
int init() {
if (Digits == 2 || Digits == 4) gi_420 = 1;
else gi_420 = 10;
gi_416 = AccountNumber();
gd_280 = MarketInfo(Symbol(), MODE_SPREAD) * Point * gi_420;
switch (MarketInfo(Symbol(), MODE_MINLOT)) {
case 0.001:
gd_204 = 3;
break;
case 0.01:
gd_204 = 2;
break;
case 0.1:
gd_204 = 1;
break;
case 1.0:
gd_204 = 0;
**
if (SafeEquityStopOut) gs_off_372 = "ON";
if (IsDemo()) gs_live_380 = "DEMO";
if (Period() != PERIOD_M1) {
Print("FGT ERROR :: Invalid Timeframe, Please switch to M1.");
Alert("FGT ERROR :: ", " Invalid Timeframe, Please switch to M1.");
gs_396 = "Invalid Timeframe. FGT works on M1";
gi_408 = FALSE;
**
return (0);
**
int deinit() {
Comment("");
if (ObjectFind("BG") >= 0) ObjectDelete("BG");
if (ObjectFind("BG1") >= 0) ObjectDelete("BG1");
if (ObjectFind("BG2") >= 0) ObjectDelete("BG2");
if (ObjectFind("BG3") >= 0) ObjectDelete("BG3");
if (ObjectFind("BG4") >= 0) ObjectDelete("BG4");
if (ObjectFind("BG5") >= 0) ObjectDelete("BG5");
if (ObjectFind("NAME") >= 0) ObjectDelete("NAME");
return (0);
**
int start() {
if (Close_All_Orders == TRUE) {f0_4(); return (0);**
int lia_0[1];
int lia_4[1];
double ld_12;
double ld_20;
double ld_28;
double ld_36;
int li_52;
if (UseTrailing) f0_18(TrailStart, TrailStop, gd_240);
if (gi_184) {
if (TimeCurrent() >= gi_296) {
f0_4();
Print("Closed All Trades Due To Server TimeOut");
**
**
if (gt_292 == Time[0]) return (0);
gt_292 = Time[0];
double ld_44 = f0_6();
if (SafeEquityStopOut) {
if (ld_44 < 0.0 && MathAbs(ld_44) > SafeEquityRisk / 100.0 * f0_9()) {
f0_4();
Print("Closed All due to EQUITY STOP-OUT");
gi_344 = FALSE;
**
**
gi_HaveNewOpenOrders = FALSE;
gi_OrdersOpen = f0_16();
//if (gi_OrdersOpen == 0) gi_HaveNewOpenOrders = FALSE;
for (gi_312 = OrdersTotal() - 1; gi_312 >= 0; gi_312--) {
OrderSelect(gi_312, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
if (OrderType() == OP_BUY) {
gi_332 = TRUE;
gi_336 = FALSE;
ld_12 = OrderLots();
break;
**
**
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
if (OrderType() == OP_SELL) {
gi_332 = FALSE;
gi_336 = TRUE;
ld_20 = OrderLots();
break;
**
**
**
gi_328 = FALSE;
if (gi_OrdersOpen > 0 && gi_OrdersOpen <= MaxOpenOrders) {
RefreshRates();
gd_264 = f0_2();
gd_272 = f0_7();
li_52 = func1(gi_332, gi_336, Bid, Ask, gd_264, gd_272, Point, StepLots, gi_420);
if (li_52 == 1) gi_328 = TRUE;
gs_396 = f0_12(3);
**
if (gi_OrdersOpen > 1 && UseLotFix) gi_300 = gi_OrdersOpen-1;
gd_304 = f0_14(OP_SELL);
if (gi_OrdersOpen < 1) {
gi_336 = FALSE;
gi_332 = FALSE;
gi_328 = TRUE;
gd_232 = AccountEquity();
**
if (gi_328) {
gd_264 = f0_2();
gd_272 = f0_7();
if (gi_336) {
if (gi_216) {
f0_1(0, 1);
gd_304 = NormalizeDouble(MultiLotsFactor * ld_20, gd_204);
** else gd_304 = f0_14(OP_SELL);
if (gi_212) {
gi_300 = gi_OrdersOpen;
if (gd_304 > 0.0) {
RefreshRates();
gi_340 = fOrderSend(1, gd_304, Bid, Slippage, Ask, 0, 0, TradeComment + "-" + gi_300, MagicNumber, 0, HotPink);
if (gi_340 < 0) {
Print("Error: ", GetLastError());
return (0);
**
gd_272 = f0_7();
gi_328 = FALSE;
gi_344 = TRUE;
**
**
** else {
if (gi_332) {
if (gi_216) {
f0_1(1, 0);
gd_304 = NormalizeDouble(MultiLotsFactor * ld_12, gd_204);
** else gd_304 = f0_14(OP_BUY);
if (gi_212) {
gi_300 = gi_OrdersOpen;
if (gd_304 > 0.0) {
gi_340 = fOrderSend(0, gd_304, Ask, Slippage, Bid, 0, 0, TradeComment + "-" + gi_300, MagicNumber, 0, Lime);
if (gi_340 < 0) {
Print("Error: ", GetLastError());
return (0);
**
gd_264 = f0_2();
gi_328 = FALSE;
gi_344 = TRUE;
**
**
**
**
**
if (gi_328 && gi_OrdersOpen < 1 && IsTradeTime()) {
ld_28 = iClose(Symbol(), 0, 2);
ld_36 = iClose(Symbol(), 0, 1);
gd_248 = Bid;
gd_256 = Ask;
if ((!gi_336) && !gi_332) {
gi_300 = gi_OrdersOpen;
if (ld_28 > ld_36) {
gd_304 = f0_14(OP_SELL);
if (gd_304 > 0.0) {
gi_340 = fOrderSend(1, gd_304, gd_248, Slippage, gd_248, 0, 0, TradeComment + " " + MagicNumber + "-" + gi_300, MagicNumber, 0, HotPink);
if (gi_340 < 0) {
Print(gd_304, "Error: ", GetLastError());
return (0);
**
gd_264 = f0_2();
gi_344 = TRUE;
**
** else {
gd_304 = f0_14(OP_BUY);
if (gd_304 > 0.0) {
gi_340 = fOrderSend(0, gd_304, gd_256, Slippage, gd_256, 0, 0, TradeComment + " " + MagicNumber + "-" + gi_300, MagicNumber, 0, Lime);
if (gi_340 < 0) {
Print(gd_304, "Error: ", GetLastError());
return (0);
**
gd_272 = f0_7();
gi_344 = TRUE;
**
**
**
if (gi_340 > 0) gi_296 = TimeCurrent() + 60.0 * (60.0 * gd_188);
gi_328 = FALSE;
**
gi_OrdersOpen = f0_16();
gd_240 = 0;
double ld_56 = 0;
for (gi_312 = OrdersTotal() - 1; gi_312 >= 0; gi_312--) {
OrderSelect(gi_312, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
if (OrderType() == OP_BUY || OrderType() == OP_SELL) {
gd_240 += OrderOpenPrice() * OrderLots();
ld_56 += OrderLots();
**
**
**
if (gi_OrdersOpen > 0) gd_240 = NormalizeDouble(gd_240 / ld_56, Digits);
if (gi_344) {
for (gi_312 = OrdersTotal() - 1; gi_312 >= 0; gi_312--) {
OrderSelect(gi_312, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
if (OrderType() == OP_BUY) {
gd_224 = gd_240 + TakeProfit * Point * gi_420;
gd_320 = gd_240 - gd_196 * Point * gi_420;
gi_HaveNewOpenOrders = TRUE;
**
**
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
if (OrderType() == OP_SELL) {
gd_224 = gd_240 - TakeProfit * Point * gi_420;
gd_320 = gd_240 + gd_196 * Point * gi_420;
gi_HaveNewOpenOrders = TRUE;
**
**
**
**
if (gi_344) {
if (gi_HaveNewOpenOrders == TRUE) {
for (gi_312 = OrdersTotal() - 1; gi_312 >= 0; gi_312--) {
OrderSelect(gi_312, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;
if (NormalizeDouble(gd_224, Digits) == NormalizeDouble(OrderTakeProfit(), Digits)) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) OrderModify(OrderTicket(), gd_240, OrderStopLoss(), gd_224, 0, Yellow);
Sleep(3000);
if (OrderTakeProfit() > 0) gi_344 = FALSE;
**
**
**
f0_13();
return (0);
**
void f0_13() {
if (ShowTradeComment) {
if (IsTesting() && !IsVisualMode()) return;
if (ObjectFind("BG") < 0) {
ObjectCreate("BG", OBJ_LABEL, 0, 0, 0);
ObjectSetText("BG", "g", 210, "Webdings", Orange);
ObjectSet("BG", OBJPROP_CORNER, 0);
ObjectSet("BG", OBJPROP_BACK, TRUE);
ObjectSet("BG", OBJPROP_XDISTANCE, 0);
ObjectSet("BG", OBJPROP_YDISTANCE, 15);
**
if (ObjectFind("BG1") < 0) {
ObjectCreate("BG1", OBJ_LABEL, 0, 0, 0);
ObjectSetText("BG1", "g", 210, "Webdings", DimGray);
ObjectSet("BG1", OBJPROP_BACK, FALSE);
ObjectSet("BG1", OBJPROP_XDISTANCE, 0);
ObjectSet("BG1", OBJPROP_YDISTANCE, 42);
**
if (ObjectFind("BG2") < 0) {
ObjectCreate("BG2", OBJ_LABEL, 0, 0, 0);
ObjectSetText("BG2", "g", 210, "Webdings", DimGray);
ObjectSet("BG2", OBJPROP_CORNER, 0);
ObjectSet("BG2", OBJPROP_BACK, TRUE);
ObjectSet("BG2", OBJPROP_XDISTANCE, 0);
ObjectSet("BG2", OBJPROP_YDISTANCE, 42);
**
if (ObjectFind("NAME") < 0) {
ObjectCreate("NAME", OBJ_LABEL, 0, 0, 0);
ObjectSetText("NAME", "FOREX GRID TRADER EA - " + Symbol(), 9, "Arial Bold", White);
ObjectSet("NAME", OBJPROP_CORNER, 0);
ObjectSet("NAME", OBJPROP_BACK, FALSE);
ObjectSet("NAME", OBJPROP_XDISTANCE, 5);
ObjectSet("NAME", OBJPROP_YDISTANCE, 23);
**
if (ObjectFind("BG3") < 0) {
ObjectCreate("BG3", OBJ_LABEL, 0, 0, 0);
ObjectSetText("BG3", "g", 110, "Webdings", DimGray);
ObjectSet("BG3", OBJPROP_CORNER, 0);
ObjectSet("BG3", OBJPROP_BACK, TRUE);
ObjectSet("BG3", OBJPROP_XDISTANCE, 0);
ObjectSet("BG3", OBJPROP_YDISTANCE, 73);
**
if (ObjectFind("BG5") < 0) {
ObjectCreate("BG5", OBJ_LABEL, 0, 0, 0);
ObjectSetText("BG5", "g", 210, "Webdings", DimGray);
ObjectSet("BG5", OBJPROP_CORNER, 0);
ObjectSet("BG5", OBJPROP_BACK, FALSE);
ObjectSet("BG5", OBJPROP_XDISTANCE, 0);
ObjectSet("BG5", OBJPROP_YDISTANCE, 73);
**
f0_3();
**
**
double f0_10(double ad_0) {
return (NormalizeDouble(ad_0, Digits));
**
int f0_1(bool ai_0 = TRUE, bool ai_4 = TRUE) {
int li_8 = 0;
for (int li_12 = OrdersTotal() - 1; li_12 >= 0; li_12--) {
if (OrderSelect(li_12, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
if (OrderType() == OP_BUY && ai_0) {
RefreshRates();
if (!IsTradeContextBusy()) {
if (!OrderClose(OrderTicket(), OrderLots(), f0_10(Bid), 5, CLR_NONE)) {
Print("Error close BUY " + OrderTicket());
li_8 = -1;
**
** else {
if (gi_348 == iTime(NULL, 0, 0)) return (-2);
gi_348 = iTime(NULL, 0, 0);
Print("Need close BUY " + OrderTicket() + ". Trade Context Busy");
return (-2);
**
**
if (OrderType() == OP_SELL && ai_4) {
RefreshRates();
if (!IsTradeContextBusy()) {
if (!(!OrderClose(OrderTicket(), OrderLots(), f0_10(Ask), 5, CLR_NONE))) continue;
Print("Error Closing SELL Trade : " + OrderTicket());
li_8 = -1;
continue;
**
if (gi_352 == iTime(NULL, 0, 0)) return (-2);
gi_352 = iTime(NULL, 0, 0);
Print("Need to close SELL trade : " + OrderTicket() + ". Trade Context Busy");
return (-2);
**
**
**
**
return (li_8);
**
double f0_14(int ai_0) {
double ld_4;
int li_12;
switch (gi_220) {
case 0:
ld_4 = Lots;
break;
case 1:
ld_4 = NormalizeDouble(Lots * MathPow(MultiLotsFactor, gi_300), gd_204);
break;
case 2:
li_12 = 0;
ld_4 = Lots;
for (int li_20 = OrdersHistoryTotal() - 1; li_20 >= 0; li_20--) {
if (!(OrderSelect(li_20, SELECT_BY_POS, MODE_HISTORY))) return (-3);
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
if (li_12 < OrderCloseTime()) {
li_12 = OrderCloseTime();
if (OrderProfit() < 0.0) {
ld_4 = NormalizeDouble(OrderLots() * MultiLotsFactor, gd_204);
continue;
**
ld_4 = Lots;
continue;
return (-3);
**
**
**
**
if (AccountFreeMarginCheck(Symbol(), ai_0, ld_4) <= 0.0) return (-1);
if (GetLastError() == 134/* NOT_ENOUGH_MONEY */) return (-2);
return (ld_4);
**
int f0_16() {
PipToTP = 0;
int li_0 = 0;
for (int li_4 = OrdersTotal() - 1; li_4 >= 0; li_4--) {
OrderSelect(li_4, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
if (OrderType() == OP_SELL || OrderType() == OP_BUY) li_0++;
if (OrderTakeProfit() == 0) {gi_344 = TRUE; gi_HaveNewOpenOrders = TRUE;**
if (OrderTakeProfit() > 0.0 && PipToTP == 0) {
if (OrderType() == OP_SELL) PipToTP = (Ask - OrderTakeProfit() ) / Point / gi_420;
if (OrderType() == OP_BUY) PipToTP = (OrderTakeProfit() - Bid) / Point / gi_420;**
**
return (li_0);
**
void f0_4() {
for (int li_0 = OrdersTotal() - 1; li_0 >= 0; li_0--) {
OrderSelect(li_0, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() == Symbol()) {
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
if (OrderType() == OP_BUY) OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, Blue);
if (OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, Red);
**
Sleep(1000);
**
**
**
int fOrderSend(int ai_0, double ad_4, double ad_12, int ai_20, double ad_24, int ai_32, int ai_36, string as_40, int ai_48, int ai_52, color ai_56) {
if (gi_OrdersOpen >= MaxOpenOrders) return;
int li_60 = 0;
int li_64 = 0;
int li_68 = 0;
int li_72 = 100;
switch (ai_0) {
case 0:
for (li_68 = 0; li_68 < li_72; li_68++) {
RefreshRates();
li_60 = OrderSend(Symbol(), OP_BUY, ad_4, Ask, ai_20, f0_11(Bid, ai_32), f0_17(Ask, ai_36), as_40, ai_48, ai_52, ai_56);
li_64 = GetLastError();
if (li_64 == 0/* NO_ERROR */) break;
if (!((li_64 == 4/* SERVER_BUSY */ || li_64 == 137/* BROKER_BUSY */ || li_64 == 146/* TRADE_CONTEXT_BUSY */ || li_64 == 136/* OFF_QUOTES */))) break;
Sleep(5000);
**
break;
case 1:
for (li_68 = 0; li_68 < li_72; li_68++) {
li_60 = OrderSend(Symbol(), OP_SELL, ad_4, Bid, ai_20, f0_0(Ask, ai_32), f0_5(Bid, ai_36), as_40, ai_48, ai_52, ai_56);
li_64 = GetLastError();
if (li_64 == 0/* NO_ERROR */) break;
if (!((li_64 == 4/* SERVER_BUSY */ || li_64 == 137/* BROKER_BUSY */ || li_64 == 146/* TRADE_CONTEXT_BUSY */ || li_64 == 136/* OFF_QUOTES */))) break;
Sleep(5000);
**
**
return (li_60);
**
double f0_11(double ad_0, int ai_8) {
if (ai_8 == 0) return (0);
return (ad_0 - ai_8 * Point * gi_420);
**
double f0_0(double ad_0, int ai_8) {
if (ai_8 == 0) return (0);
return (ad_0 + ai_8 * Point * gi_420);
**
double f0_17(double ad_0, int ai_8) {
if (ai_8 == 0) return (0);
return (ad_0 + ai_8 * Point * gi_420);
**
double f0_5(double ad_0, int ai_8) {
if (ai_8 == 0) return (0);
return (ad_0 - ai_8 * Point * gi_420);
**
double f0_6() {
double ld_0 = 0;
for (gi_312 = OrdersTotal() - 1; gi_312 >= 0; gi_312--) {
OrderSelect(gi_312, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
if (OrderType() == OP_BUY || OrderType() == OP_SELL) ld_0 += OrderProfit();
**
return (ld_0);
**
void f0_18(int ai_0, int ai_4, double ad_8) {
int li_16;
double ld_20;
double ld_28;
if (ai_4 != 0) {
for (int li_36 = OrdersTotal() - 1; li_36 >= 0; li_36--) {
if (OrderSelect(li_36, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;
if (OrderSymbol() == Symbol() || OrderMagicNumber() == MagicNumber) {
if (OrderType() == OP_BUY) {
li_16 = NormalizeDouble((Bid - ad_8) / Point / gi_420, 0);
if (li_16 < ai_0) continue;
ld_20 = OrderStopLoss();
ld_28 = Bid - ai_4 * Point * gi_420;
if (ld_20 == 0.0 || (ld_20 != 0.0 && ld_28 > ld_20)) OrderModify(OrderTicket(), ad_8, ld_28, OrderTakeProfit(), 0, Aqua);
**
if (OrderType() == OP_SELL) {
li_16 = NormalizeDouble((ad_8 - Ask) / Point / gi_420, 0);
if (li_16 < ai_0) continue;
ld_20 = OrderStopLoss();
ld_28 = Ask + ai_4 * Point * gi_420;
if (ld_20 == 0.0 || (ld_20 != 0.0 && ld_28 < ld_20)) OrderModify(OrderTicket(), ad_8, ld_28, OrderTakeProfit(), 0, Red);
**
**
Sleep(1000);
**
**
**
**
double f0_9() {
if (f0_16() == 0) gd_356 = AccountEquity();
if (gd_356 < gd_364) gd_356 = gd_364;
else gd_356 = AccountEquity();
gd_364 = AccountEquity();
return (gd_356);
**
double f0_2() {
double ld_0;
int li_8;
double ld_12 = 0;
int li_20 = 0;
for (int li_24 = OrdersTotal() - 1; li_24 >= 0; li_24--) {
OrderSelect(li_24, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderType() == OP_BUY) {
li_8 = OrderTicket();
if (li_8 > li_20) {
ld_0 = OrderOpenPrice();
ld_12 = ld_0;
li_20 = li_8;
**
**
**
return (ld_0);
**
double f0_7() {
double ld_0;
int li_8;
double ld_12 = 0;
int li_20 = 0;
for (int li_24 = OrdersTotal() - 1; li_24 >= 0; li_24--) {
OrderSelect(li_24, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderType() == OP_SELL) {
li_8 = OrderTicket();
if (li_8 > li_20) {
ld_0 = OrderOpenPrice();
ld_12 = ld_0;
li_20 = li_8;
**
**
**
return (ld_0);
**
void f0_3() {
string ls_1 = "", ls_2 = "", ls_3 = "";
string ls_0 = DoubleToStr(balanceDeviation(), 2);
if (balanceDeviation() > MaxDD) MaxDD = balanceDeviation();
ls_3 = "Margin Usage: " + DoubleToStr(100 - (AccountFreeMargin()/AccountBalance()*100),2) + "%\n";
if (!IsTradeTime()) ls_1 = "New Trades disallowed by scheduler";
if (FreezeAfterTP) ls_1 = "Freeze AfterTP Enabled";
Comment(""
+ "\n"
+ "\n"
+ "\n"
+ "EXPERT VERSION: 1.0 " + modver
+ "\n"
+ "======================================="
//+ "\n"
//+ "-----------------------------------------------------------------------------------"
//+ "\n"
//+ "AUTHENTICATION STATUS"
//+ "\n"
//+ "-----------------------------------------------------------------------------------"
//+ "\n"
//+ "STATUS MESSAGE: " + gs_396
//+ "\n"
//+ "-----------------------------------------------------------------------------------"
+ "\n"
+ "ACCOUNT INFORMATION"
+ "\n"
+ "-----------------------------------------------------------------------------------"
+ "\n"
//+ "Account Name: " + AccountName()
//+ "\n"
+ "Account Number: " + AccountNumber() + " (" + gs_live_380 + ")"
+ "\n"
//+ "Account Type: " + gs_live_380
//+ "\n"
+ "Account Leverage: 1:" + DoubleToStr(AccountLeverage(), 0)
+ "\n"
+ "Account Balance: " + DoubleToStr(AccountBalance(), 2)
+ "\n"
+ "Account Equity: " + DoubleToStr(AccountEquity(), 2)
+ "\n"
+ "Server Time: " + TimeToStr(TimeCurrent(), TIME_SECONDS)
+ "\n"
+ "-----------------------------------------------------------------------------------"
+ "\n"
+ "TRADE INFORMATIONS "
+ "\n"
+ "------------------------------------------------------------------------------------"
+ "\n"
+ "SAFE EQUITY STOP OUT : " + gs_off_372 + " @ " + DoubleToStr(SafeEquityRisk*100, 2) + "%"
+ "\n"
//+ "SAFE EQUITY RISK % : " + DoubleToStr(SafeEquityRisk, 2)
//+ "\n"
+ ls_2
+ "NEXT LOT(S) : " + DoubleToStr(gd_304, 2)
+ "\n"
+ "OPEN TRADES : " + DoubleToStr(f0_8(), 0) + " / " + MaxOpenOrders
+ "\n"
+ "FLOATING P/L : " + DoubleToStr(AccountProfit(), 2)
+ "\n"
// + "CURRENT PROFIT: " + DoubleToStr(CurProfit, 2)
// + "\n"
// + "POTENTIAL PROFIT: " + DoubleToStr(PotProfit, 2)
// + "\n"
+ "Pips To TP: " + DoubleToStr(PipToTP, 1)
+ "\n"
+ "=======================================\n"
+ "Drawdown : " + ls_0 + "%"
+ "\n"
+ "Drawdown (Max) : " + DoubleToStr(MaxDD,2) + "%"
+ "\n"
+ ls_3
+ "Total Profit/Loss : " + DoubleToStr(calculatePLBalance(),2) + "\n"
+ ls_1
);
**
double calculatePLBalance() {
double gd_TotalPL = 0;
int li_0 = OrdersHistoryTotal();
for (int li_4 = 0; li_4 < li_0; li_4++) {
OrderSelect(li_4, SELECT_BY_POS, MODE_HISTORY);
if (OrderMagicNumber() == MagicNumber) gd_TotalPL += OrderProfit() + OrderSwap() + OrderCommission();
**
return(gd_TotalPL);
**
double balanceDeviation() {
double bd;
bd = (AccountEquity() / AccountBalance() - 1.0) / (-0.01);
if (bd <= 0.0) return (0);
return (bd);
**
int f0_8() {
int li_0 = OrdersTotal();
int li_8 = 0;
for (int li_4 = 0; li_4 < li_0; li_4++) {
OrderSelect(li_4, SELECT_BY_POS, MODE_TRADES);
if (OrderType() == OP_SELL || OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) li_8++;
**
return (li_8);
**
string f0_12(int ai_0) {
if (ai_0 == 0) return ("HTTP Error");
if (ai_0 == 1) return ("Account does not exist or banned");
if (ai_0 == 2) return ("Account Activation Successful");
if (ai_0 == 3) return ("Account Authentication Successful");
if (ai_0 == 4) return ("Account not Activated!!!");
if (ai_0 == 5) return ("Insert a valid CLICKBANK ID.");
return ("Ok");
**
int func1(int a1, int a2, double a3, double a4, double a5, double a6, double a7, double a8, double a9)
{
if ( a1 && a7 * a8 * a9 <= a5 - a4 ) return(1);
if ( a2 && a3 - a6 >= a9 * a8 * a7 ) return(1);
return(0);
**
