Author: Zonker
Profit factor:
49.86
Orders Execution
Checks for the total of open ordersIt automatically opens orders when conditions are reachedIt Closes Orders by itself
Indicators Used
Moving average indicator
11 Views
0 Downloads
0 Favorites
EuroBull
/*-----------------------------+
|			       |
| Shared by www.Aptrafx.com    |
|			       |
+------------------------------*/

//+------------------------------------------------------------------+
//|                                                     EuroBull.mq4 |
//|                                                           Zonker |
//|                                        http://www.greenpeace.org |
//+------------------------------------------------------------------+
//
//The EuroBull, tends to favour markets that trend in favour of Euro:).
//Designed to run on EURUSD.

#property copyright "Zonker"
#property link      "http://www.greenpeace.org"

#define MAXLOTSIZE 5
#define MAXPOS 3
#define SLIP 1
#define SL 100
int myMagic = 88888888;//very lucky, yes?

//+------------------------------------------------------------------- 
int init() { return(0); }
int deinit() { return(0); }
//+------------------------------------------------------------------- 

int start()
{  double sma;
   bool BuyEuros = false;
   int LotsToBuy,Lots; 
   int i;

   if(!Happyness()) return(0);

   sma = iMA(NULL,PERIOD_D1,10,0,MODE_SMA,PRICE_CLOSE,0);//Must respect the sma.
   
   if(sma > Ask) //Euros going cheap! BUY!
      BuyEuros = true;
   
   if(sma < Ask) //Momentum in our favour! BUY!!
      BuyEuros = true;
      
   if(sma == Ask) //BuY EUROS NOW!!!, BUY MORE!!!
      BuyEuros = true;
   
   if(OrdersTotal()>0)
   {  //We have Euros! Do we need any more?
      Lots=0;
      for(i=0;i<OrdersTotal();i++)
      {  OrderSelect(i,SELECT_BY_POS,MODE_TRADES); 
         Lots += OrderLots();
      }
      if(AccountEquity() > (Lots*2000 + MathMin(5,(Lots+1)/2)*2000 + 100) && Lots < MAXLOTSIZE*MAXPOS && Lots >= 1.0)
         CloseOrders(OP_BUY); //Sell up and buy more Euros   
      else 
         return(0);
      
   }
    
   if(BuyEuros)
   {  //We don't have any Euros?!!? How many Euros should we buy?
      LotsToBuy = AccountBalance()/2000;
      
      if(LotsToBuy == 0 && AccountBalance() > 100)
      {  //Ok, getting desparate..
         double tinyLots = NormalizeDouble(AccountBalance()/2000.0-0.1,1);
         if(tinyLots>0)
            MyOrderSend(Symbol(),OP_BUY,tinyLots,Ask,SLIP,Ask-SL*Point,Ask+SL*Point,"",myMagic,0,Blue);    
         return(0);
      }
      
      for(i=0;i<MAXPOS;i++)
      {  if(LotsToBuy>MAXLOTSIZE) Lots = MAXLOTSIZE;
         else Lots = LotsToBuy;
         
         MyOrderSend(Symbol(),OP_BUY,Lots,Ask,SLIP,Ask-SL*Point,0,"",myMagic,0,Blue);
         
         LotsToBuy -= MAXLOTSIZE;
         if(LotsToBuy <= 0) break;
      } 
   }  


   return(0);
}
  
//+------------------------------------------------------------------- 
bool Happyness() //Are we in the right mood to trade?
{  
   if(!IsConnected()) 
   {  Print("Yo man, we are not connected!");
      return(false);
   }
   if(!IsExpertEnabled())
   {  Print("Hey, we are not enabled!");
      return(false);
   }
   
   if(AccountEquity() > 98800) //Stop at 888%, lets not be greedy.
   {  if(OrdersTotal() > 0) 
         CloseOrders(OP_BUY); 
      return(false);
   }
   
   if(AccountBalance() < 200) return(false); //Ok, we  lost.
   
   return(true);
}
  
//+-------------------------------------------------------------------  
int CloseOrders(int cmd)
{  int i;
   double price;
   if(cmd == OP_SELL) price = Ask;
   else price = Bid;

   for(i=OrdersTotal()-1;i>=0;i--)
   {  OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(OrderType() == cmd)
         MyOrderClose(OrderTicket(),OrderLots(),price,SLIP,CLR_NONE);
   }
}
//+------------------------------------------------------------------- 
int MyOrderSend(string sym, int cmd, double vol, double price, int slip, double sl, double tp, string comment="", int magic=0, datetime exp=0, color cl=CLR_NONE)
{  int err;
   bool isAsk=false;
 
   if(price == Ask) isAsk = true;   

   for(int z=0;z<10;z++)
   {  if(OrderSend(sym,cmd,vol,price,slip,sl,tp,comment,magic,exp,cl)<0)
      {  err = GetLastError();
         Print("OrderSend failed, Error: ", err);
         if(err>4000) break;
         RefreshRates();
         if(isAsk) price = Ask;
         else price = Bid;
      }
      else
         break;
   }

}
//+------------------------------------------------------------------+
bool MyOrderClose(int ticket, double lots, double price, int slip, color cl=CLR_NONE)
{  int err;
   bool isAsk=false;
   
   if(price == Ask) isAsk = true; 

   for(int z=0;z<10;z++)
   {
      if(!OrderClose(ticket,lots,price,slip,cl))
      {  err = GetLastError();
         Print("OrderClose failed, Error: ", err);
         if(err>4000) break;
         RefreshRates();
         if(isAsk) price = Ask;
         else price = Bid;
      }
      else
         break;
   }

} 
//+------------------------------------------------------------------- 

Profitability Reports

USD/JPY Jul 2025 - Sep 2025
0.91
Total Trades 379
Won Trades 43
Lost trades 336
Win Rate 11.35 %
Expected payoff -17.13
Gross Profit 63327.35
Gross Loss -69818.35
Total Net Profit -6491.00
-100%
-50%
0%
50%
100%
USD/CHF Jul 2025 - Sep 2025
0.73
Total Trades 214
Won Trades 58
Lost trades 156
Win Rate 27.10 %
Expected payoff -43.86
Gross Profit 25642.21
Gross Loss -35028.52
Total Net Profit -9386.31
-100%
-50%
0%
50%
100%
USD/CAD Jul 2025 - Sep 2025
0.92
Total Trades 82
Won Trades 6
Lost trades 76
Win Rate 7.32 %
Expected payoff -20.83
Gross Profit 20333.04
Gross Loss -22041.10
Total Net Profit -1708.06
-100%
-50%
0%
50%
100%
NZD/USD Jul 2025 - Sep 2025
0.44
Total Trades 282
Won Trades 96
Lost trades 186
Win Rate 34.04 %
Expected payoff -33.89
Gross Profit 7374.30
Gross Loss -16930.00
Total Net Profit -9555.70
-100%
-50%
0%
50%
100%
GBP/CAD Jul 2025 - Sep 2025
0.18
Total Trades 252
Won Trades 56
Lost trades 196
Win Rate 22.22 %
Expected payoff -38.49
Gross Profit 2172.11
Gross Loss -11872.42
Total Net Profit -9700.31
-100%
-50%
0%
50%
100%
GBP/AUD Jul 2025 - Sep 2025
0.00
Total Trades 0
Won Trades 0
Lost trades 0
Win Rate 0.0 %
Expected payoff 0.00
Gross Profit 0.00
Gross Loss 0.00
Total Net Profit 0.00
-100%
-50%
0%
50%
100%
EUR/USD Jul 2025 - Sep 2025
811.82
Total Trades 12
Won Trades 1
Lost trades 11
Win Rate 8.33 %
Expected payoff 263515.00
Gross Profit 3166080.00
Gross Loss -3900.00
Total Net Profit 3162180.00
-100%
-50%
0%
50%
100%
AUD/USD Jul 2025 - Sep 2025
0.64
Total Trades 90
Won Trades 17
Lost trades 73
Win Rate 18.89 %
Expected payoff -64.34
Gross Profit 10309.00
Gross Loss -16100.00
Total Net Profit -5791.00
-100%
-50%
0%
50%
100%
USD/CAD Jan 2025 - Jul 2025
0.73
Total Trades 513
Won Trades 138
Lost trades 375
Win Rate 26.90 %
Expected payoff -18.91
Gross Profit 25618.23
Gross Loss -35320.82
Total Net Profit -9702.59
-100%
-50%
0%
50%
100%
GBP/USD Jan 2025 - Jul 2025
0.23
Total Trades 175
Won Trades 36
Lost trades 139
Win Rate 20.57 %
Expected payoff -55.48
Gross Profit 2911.00
Gross Loss -12620.00
Total Net Profit -9709.00
-100%
-50%
0%
50%
100%

Comments