es_capelast_reversed_ECN_v1.01

Profit factor:
102.26
Orders Execution
Checks for the total of open ordersIt automatically opens orders when conditions are reachedIt can change open orders parameters, due to possible stepping strategy
Miscellaneous
It plays sound alertsIt issuies visual alerts to the screen
7 Views
0 Downloads
0 Favorites
es_capelast_reversed_ECN_v1.01
//+------------------------------------------------------------------+
//|                               es_capelast_reversed_ECN_v1.01.mq4 |
//|                                    Copyright © 2009, OGUZ BAYRAM |
//|                                            es_cape77@hotmail.com |
//+------------------------------------------------------------------+

extern int YourAccountNumber = 123456;
extern double lTakeProfit = 10.0;
extern double sTakeProfit = 10.0;
extern double lStopLoss = 2000.0;
extern double sStopLoss = 2000.0;
extern int max_num_orders = 50;
extern int max_orders_per_symbol = 10;
extern color clOpenBuy = Green;
extern color clOpenSell = Red;
extern string Name_Expert = "es_capelast_reversed_ECN_v1";
extern int magic_number = 789667;
extern int Slippage = 1;
extern bool UseSound = FALSE;
extern string NameFileSound = "Alert.wav";
extern double Lots = 0.1;
extern bool reverseLogic = true;

int gi_ticket_number;
double gd_point;
double gd_digit;
bool gi_accountVerified = FALSE;

int init(){
   if (IsDemo() == TRUE){
      gi_accountVerified = TRUE;
      Comment(Name_Expert + " trading on DEMO account");
   }
   else { //real trading Account
      gi_accountVerified = CheckAccountNumber();
      if (gi_accountVerified == FALSE) return (0);
      Comment(Name_Expert + " trading on LIVE account");
   }
   gd_point = SetPoint();
   gd_digit = SetDigit();
}
void deinit() {
   Comment("");
}

int start() {
   if (IsTradeAllowed() == FALSE) return (0);
   
   if (Bars < 100) {
      Print("bars less than 100");
      return (0);
   }
   if (lTakeProfit < 1.0) {
      Print("TakeProfit less than 1");
      return (0);
   }
   if (sTakeProfit < 1.0) {
      Print("TakeProfit less than 1");
      return (0);
   }
   double diClose0 = iClose(NULL, PERIOD_M5, 0);
   double diMA1 = iMA(NULL, PERIOD_M5, 5, 0, MODE_EMA, PRICE_OPEN, 1);
   double diClose2 = iClose(NULL, PERIOD_M5, 0);
   double diMA3 = iMA(NULL, PERIOD_M5, 4, 0, MODE_EMA, PRICE_OPEN, 1);
   if (AccountFreeMargin() < 1000.0 * Lots) {
      Print("We have no money. Free Margin = ", AccountFreeMargin());
      return (0);
   }
   if (!ExistPositions()) {
      if (diClose0 < diMA1) {
         if (reverseLogic) OpenSell();
         else OpenBuy();
         return (0);
      }
      if (diClose2 > diMA3) {
         if (reverseLogic) OpenBuy();
         else OpenSell();
         return (0);
      }
   }
   return (0);
}

//Wait to exit positions if all order slots are full
bool ExistPositions() {
   if ((OrdersTotal() >= max_num_orders ) || (OrderCount() >= max_orders_per_symbol))
      return (TRUE);
   else
      return (FALSE); 
}

//Count orders on current chart symbol
int OrderCount () {
   int count=0;
   for (int j=0; j<OrdersTotal(); j++) {
      if (OrderSelect(j, SELECT_BY_POS, MODE_TRADES))
         if (OrderSymbol() == Symbol()) count++;
   }
   return (count);
}

void OpenBuy() {
   double ldLot = GetSizeLot();
   double ldStop = GetStopLossBuy();
   double ldTake = GetTakeProfitBuy();
   string lsComm = GetCommentForOrder();
   gi_ticket_number = OrderSend(Symbol(), OP_BUY, ldLot, Ask, Slippage, 0, 0, Name_Expert, magic_number, 0, clOpenBuy);
   OrderSelect(gi_ticket_number, SELECT_BY_TICKET);
   OrderModify(OrderTicket(), OrderOpenPrice(), ldStop, ldTake, 0, Blue);
   if (UseSound) PlaySound(NameFileSound);
}

void OpenSell() {
   double ldLot = GetSizeLot();
   double ldStop = GetStopLossSell();
   double ldTake = GetTakeProfitSell();
   string lsComm = GetCommentForOrder();
   gi_ticket_number = OrderSend(Symbol(), OP_SELL, ldLot, Bid, Slippage, 0, 0, Name_Expert, magic_number, 0, clOpenSell);
   OrderSelect(gi_ticket_number, SELECT_BY_TICKET);
   OrderModify(OrderTicket(), OrderOpenPrice(), ldStop, ldTake, 0, Red);
   if (UseSound) PlaySound(NameFileSound);
}

string GetCommentForOrder() {
   return (Name_Expert);
}

double GetSizeLot() {
   return (Lots);
}

double SetPoint() {
   double ld_point;
   if (Digits < 4) ld_point = 0.01;
   else ld_point = 0.0001;
   return (ld_point);
}

double SetDigit() {
   double ld_digit;
   if (Digits < 4) ld_digit = 2;
   else ld_digit = 4;
   return (ld_digit);
}

double GetTakeProfitBuy() {
   return (Ask + lTakeProfit * gd_point);
}

double GetTakeProfitSell() {
   return (Bid - sTakeProfit * gd_point);
}

double GetStopLossBuy() {
   return (Bid - lStopLoss * gd_point);
}

double GetStopLossSell() {
   return (Ask + sStopLoss * gd_point);
}

bool CheckAccountNumber() {
   if (YourAccountNumber == AccountNumber()) return (TRUE);
   Alert("AccountNumber entered is incorrect.\n You entered ", YourAccountNumber);
   return (FALSE);
}

Profitability Reports

USD/JPY Jul 2025 - Sep 2025
2.05
Total Trades 510
Won Trades 500
Lost trades 10
Win Rate 98.04 %
Expected payoff 3.45
Gross Profit 3429.49
Gross Loss -1671.90
Total Net Profit 1757.59
-100%
-50%
0%
50%
100%
USD/CHF Jul 2025 - Sep 2025
0.92
Total Trades 90
Won Trades 80
Lost trades 10
Win Rate 88.89 %
Expected payoff -1.03
Gross Profit 1015.40
Gross Loss -1108.07
Total Net Profit -92.67
-100%
-50%
0%
50%
100%
USD/CAD Jul 2025 - Sep 2025
0.17
Total Trades 49
Won Trades 39
Lost trades 10
Win Rate 79.59 %
Expected payoff -29.55
Gross Profit 287.29
Gross Loss -1735.43
Total Net Profit -1448.14
-100%
-50%
0%
50%
100%
NZD/USD Jul 2025 - Sep 2025
3.18
Total Trades 251
Won Trades 241
Lost trades 10
Win Rate 96.02 %
Expected payoff 6.58
Gross Profit 2410.00
Gross Loss -757.60
Total Net Profit 1652.40
-100%
-50%
0%
50%
100%
GBP/USD Jul 2025 - Sep 2025
1.25
Total Trades 520
Won Trades 510
Lost trades 10
Win Rate 98.08 %
Expected payoff 1.93
Gross Profit 5100.00
Gross Loss -4095.90
Total Net Profit 1004.10
-100%
-50%
0%
50%
100%
GBP/CAD Jul 2025 - Sep 2025
0.83
Total Trades 376
Won Trades 366
Lost trades 10
Win Rate 97.34 %
Expected payoff -1.46
Gross Profit 2643.72
Gross Loss -3192.50
Total Net Profit -548.78
-100%
-50%
0%
50%
100%
GBP/AUD Jul 2025 - Sep 2025
0.95
Total Trades 170
Won Trades 160
Lost trades 10
Win Rate 94.12 %
Expected payoff -0.32
Gross Profit 1055.52
Gross Loss -1110.32
Total Net Profit -54.80
-100%
-50%
0%
50%
100%
EUR/USD Jul 2025 - Sep 2025
0.05
Total Trades 72
Won Trades 66
Lost trades 6
Win Rate 91.67 %
Expected payoff -157.60
Gross Profit 660.00
Gross Loss -12007.20
Total Net Profit -11347.20
-100%
-50%
0%
50%
100%
AUD/USD Jul 2025 - Sep 2025
0.72
Total Trades 150
Won Trades 140
Lost trades 10
Win Rate 93.33 %
Expected payoff -3.67
Gross Profit 1400.00
Gross Loss -1950.70
Total Net Profit -550.70
-100%
-50%
0%
50%
100%
USD/JPY Jan 2025 - Jul 2025
4.61
Total Trades 2180
Won Trades 2170
Lost trades 10
Win Rate 99.54 %
Expected payoff 5.30
Gross Profit 14749.98
Gross Loss -3201.44
Total Net Profit 11548.54
-100%
-50%
0%
50%
100%

Comments