bless_FiFtHeLeMeNt_1.0.6

Author: Copyright � 2007, FiFtHeLeMeNt.
Profit factor:
0.00
Orders Execution
It automatically opens orders when conditions are reachedChecks for the total of open ordersIt can change open orders parameters, due to possible stepping strategy
Miscellaneous
It sends emails
10 Views
0 Downloads
0 Favorites
bless_FiFtHeLeMeNt_1.0.6
//+------------------------------------------------------------------+
//|                                    bless_FiFtHeLeMeNt_noTG_1.0.4 |
//|                                   Copyright © 2007, FiFtHeLeMeNt |
//|                                         fifthelement80@gmail.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, FiFtHeLeMeNt."
#property link      "http://www.irxfx.com"

extern int MinGS=20;
extern int TP=27;
extern double lot=0.01;
extern int MaxTrades=7;
extern int RegularSpread=2;
extern double Multiplier=2;
extern double LotInc=0;
extern double MarginLevelAlert=1000;

int magic;
double lot2;
datetime tob,tos,toe; //Time Out Buy & Sell & email


//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----


   
//----
   return(0);
  }
  
int init()
  {
   if (Symbol() == "AUDCADm" || Symbol() == "AUDCAD") { magic = 211001; }
   if (Symbol() == "AUDJPYm" || Symbol() == "AUDJPY") { magic = 211002; }
   if (Symbol() == "AUDNZDm" || Symbol() == "AUDNZD") { magic = 211003; }
   if (Symbol() == "AUDUSDm" || Symbol() == "AUDUSD") { magic = 211004; }
   if (Symbol() == "CHFJPYm" || Symbol() == "CHFJPY") { magic = 211005; }
   if (Symbol() == "EURAUDm" || Symbol() == "EURAUD") { magic = 211006; }
   if (Symbol() == "EURCADm" || Symbol() == "EURCAD") { magic = 211007; }
   if (Symbol() == "EURCHFm" || Symbol() == "EURCHF") { magic = 211008; }
   if (Symbol() == "EURGBPm" || Symbol() == "EURGBP") { magic = 211009; }
   if (Symbol() == "EURJPYm" || Symbol() == "EURJPY") { magic = 211010; }
   if (Symbol() == "EURUSDm" || Symbol() == "EURUSD") { magic = 211011; }
   if (Symbol() == "GBPCHFm" || Symbol() == "GBPCHF") { magic = 211012; }
   if (Symbol() == "GBPJPYm" || Symbol() == "GBPJPY") { magic = 211013; }
   if (Symbol() == "GBPUSDm" || Symbol() == "GBPUSD") { magic = 211014; }
   if (Symbol() == "NZDJPYm" || Symbol() == "NZDJPY") { magic = 211015; }
   if (Symbol() == "NZDUSDm" || Symbol() == "NZDUSD") { magic = 211016; }
   if (Symbol() == "USDCHFm" || Symbol() == "USDCHF") { magic = 211017; }
   if (Symbol() == "USDJPYm" || Symbol() == "USDJPY") { magic = 211018; }
   if (Symbol() == "USDCADm" || Symbol() == "USDCAD") { magic = 211019; }
   if (magic == 0) { magic = 211999; }
   return (0);
   return(0);
  }

void OpenBuy()
 {
    int ticket,err;
        if (!GlobalVariableCheck("InTrade")) {
               GlobalVariableSet("InTrade", CurTime());  // set lock indicator
               ticket = OrderSend(Symbol(),OP_BUY,lot2,Ask,1,0,Ask+TP*Point,"EA Order",magic,0,Red);
               GlobalVariableDel("InTrade");   // clear lock indicator
        }
 }

void OpenSell()
 {
    int ticket,err;
        if (!GlobalVariableCheck("InTrade")) {
               GlobalVariableSet("InTrade", CurTime());  // set lock indicator
               ticket = OrderSend(Symbol(),OP_SELL,lot2,Bid,1,0,Bid-TP*Point,"EA Order",magic,0,Red);
               GlobalVariableDel("InTrade");   // clear lock indicator
        }
 }


void ManageBuy() 
 {
   int lasttradetime = 0;
   double lastopenprice=0;
   double maxlots = 0;
   double lasttp=0;
   int lastordertype=-1;
   int lastorderticket=0;
   int y=0; 

   for (y = 0; y < OrdersTotal(); y++)
   {
      OrderSelect (y, SELECT_BY_POS, MODE_TRADES);
      if ((OrderMagicNumber() != magic) || (OrderType()!=OP_BUY)) { continue; }
      if (OrderOpenTime() > lasttradetime) { 
        lasttradetime = OrderOpenTime();
        lastopenprice = OrderOpenPrice();
        lastordertype=OrderType();
        lastorderticket=OrderTicket();
        lasttp=OrderTakeProfit();
      }     
      if (OrderLots() > maxlots) { maxlots = OrderLots(); }
   }
   
   int lvl=MathRound(MathLog((maxlots-LotInc)/lot)/MathLog(Multiplier)+1);
   
   Print(lvl);

   if (lvl<0) lvl=0;
   
   lot2=lot*MathPow(Multiplier,lvl)+LotInc;
   
   if ((lvl==0) && (((Ask-Bid)/Point)<=RegularSpread)) OpenBuy();
   
   if ((lastopenprice-Ask>MinGS*Point) && (lvl<MaxTrades) && (((Ask-Bid)/Point)<=RegularSpread)) {
     OpenBuy();
     return(0);
   }

/////////// TP
/*
   double sumlots=0;
   double sump=0;
   double avgp=0;
   for (y = 0; y < OrdersTotal(); y++)
   {
      OrderSelect (y, SELECT_BY_POS, MODE_TRADES);
      if ((OrderMagicNumber() != magic) || (OrderType()!=OP_BUY)) { continue; }
      sumlots=sumlots+OrderLots();
      sump=OrderOpenPrice()*OrderLots()+sump;
   }
   
   if (sumlots>0) {
     avgp=NormalizeDouble(sump/sumlots,Digits);
     double tpp=NormalizeDouble(TP/10/sumlots*Point+avgp,Digits);
     
     for (y = 0; y < OrdersTotal(); y++)
     {
       OrderSelect (y, SELECT_BY_POS, MODE_TRADES);
       if ((OrderMagicNumber() != magic) || (OrderType()!=OP_BUY) || (OrderTakeProfit()==tpp)) { continue; }
       OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),tpp,0,Red);
     }
     
     
   }
 */  

     for (y = 0; y < OrdersTotal(); y++)
     {
       OrderSelect (y, SELECT_BY_POS, MODE_TRADES);
       if ((OrderMagicNumber() != magic) || (OrderType()!=OP_BUY) || (OrderTakeProfit()==lasttp) || (lasttp==0)) { continue; }
       OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),lasttp,0,Red);
     }

   
}
    
void ManageSell() 
 {
   int lasttradetime = 0;
   double lastopenprice=0;
   double maxlots = 0;
   double lasttp=0;
   int lastordertype=-1;
   int lastorderticket=0;
   int y=0; 

   for (y = 0; y < OrdersTotal(); y++)
   {
      OrderSelect (y, SELECT_BY_POS, MODE_TRADES);
      if ((OrderMagicNumber() != magic) || (OrderType()!=OP_SELL)) { continue; }
      if (OrderOpenTime() > lasttradetime) { 
        lasttradetime = OrderOpenTime();
        lastopenprice = OrderOpenPrice();
        lastordertype=OrderType();
        lastorderticket=OrderTicket();
        lasttp=OrderTakeProfit();
      }     
      if (OrderLots() > maxlots) { maxlots = OrderLots(); }
   }
   
   int lvl=MathRound(MathLog((maxlots-LotInc)/lot)/MathLog(Multiplier)+1);

   if (lvl<0) lvl=0;
   
   lot2=lot*MathPow(Multiplier,lvl)+LotInc;
   
   if ((lvl==0) && (((Ask-Bid)/Point)<=RegularSpread)) OpenSell();
   
   if ((Bid-lastopenprice>MinGS*Point) && (lastopenprice>0) && (lvl<MaxTrades) && (((Ask-Bid)/Point)<=RegularSpread)) {
     OpenSell();
     return(0);
   }

/////////// TP
/*   double sumlots=0;
   double sump=0;
   double avgp=0;
   for (y = 0; y < OrdersTotal(); y++)
   {
      OrderSelect (y, SELECT_BY_POS, MODE_TRADES);
      if ((OrderMagicNumber() != magic) || (OrderType()!=OP_SELL)) { continue; }
      sumlots=sumlots+OrderLots();
      sump=OrderOpenPrice()*OrderLots()+sump;
   }
   
   if (sumlots>0) {
     avgp=NormalizeDouble(sump/sumlots,Digits);
     double tpp=NormalizeDouble(-TP/10/sumlots*Point+avgp,Digits);
     
     for (y = 0; y < OrdersTotal(); y++)
     {
       OrderSelect (y, SELECT_BY_POS, MODE_TRADES);
       if ((OrderMagicNumber() != magic) || (OrderType()!=OP_SELL) || (OrderTakeProfit()==tpp)) { continue; }
       OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),tpp,0,Red);
     }
     
     
   }
 */ 
 
      for (y = 0; y < OrdersTotal(); y++)
     {
       OrderSelect (y, SELECT_BY_POS, MODE_TRADES);
       if ((OrderMagicNumber() != magic) || (OrderType()!=OP_SELL) || (OrderTakeProfit()==lasttp) || (lasttp==0)) { continue; }
       OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),lasttp,0,Red);
     }
 
   
 }
 
void CheckMargin() 
{
if (AccountMargin()!=0) {
  if (((AccountEquity()/AccountMargin()*100)<MarginLevelAlert) && (TimeCurrent()>toe+3600)) {
    SendMail("Account Margin Warning","Account Free Margin is "+AccountFreeMargin());
    toe=TimeCurrent();
  }
}
}
  


  
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----

  ManageBuy();
  
  ManageSell();
  
  CheckMargin();
   
//----
   return(0);
  }
//+------------------------------------------------------------------+

Profitability Reports

GBP/USD Oct 2024 - Jan 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%
USD/CAD Oct 2024 - Jan 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%

Comments