BACD Cloud EA Example


Hi forex trader,


In this blog I want to show you how to use BACD Cloud buffers to build a
simple expert advisor. If you want to know more about BACD Cloud, then here are some important links about that could be helpful for you:

 

The most important buffers can be found in the description section,
like in the next photo:

 
Bermaui Cloud





Bermaui Cloud

Here is a coding example about how to build an expert advisor
depending on MQL4 iCustom() function.

This code is just an example about how to use the indicators buffer in
building an expert advisor and It was not written to test the indicator ability to trade on real accounts.







#property copyright "Copyright © 2019, Muhammad Al Bermawy,CMT."
#property link      "https://www.mql5.com/en/users/bermaui314"
#property version   "1.00"
#property strict
#property description "MASR Stochastic Important Output Buffers:"
#property description "========================================="
#property description "1)-Buffer [ 0 ] = BACD Line."
#property description "2)-Buffer [ 1 ] = BACD Histogram Line."
#property description "3)-Buffer [ 6 ] = Arrows."

sinput string  Trading_Setup;                     
extern int     MagicNumber          = 1234567890; 
extern int     TakeProfit           = 500;        
extern int     StopLoss             = 250;        
extern double  FirstLots            = 0.01;       
sinput  string Indicator_Settings;                
sinput string  indAdress            = "Market\Bermaui Bands"; 
extern int     FastPeriod           = 12;         
extern int     SlowPeriod           = 26;         
extern int     SignalPeriod         = 9;          


int    Ticket1;
int    t1,t2;
datetime timeprev = 0;




int OnInit()
  {



   return(INIT_SUCCEEDED);
  }



void OnDeinit(const int reason)
  {

   
  }



void OnTick()
  {

if(timeprev == Time[0]) { return; }
   timeprev =  Time[0];


if(MyRealOrdersTotal(MagicNumber) == 0){
if(BACDCustom() ==  1) { OpenBUYOrder(MagicNumber);}}


if(MyRealOrdersTotal(MagicNumber) == 0){
if(BACDCustom() == -1) { OpenSELLOrder(MagicNumber);}}
   
  }






int MyRealOrdersTotal(int Magic)
  {
int c     = 0;
int total = OrdersTotal();
    t1    = -1;
    t2    = -1;
 
for(int cnt = 0 ; cnt < total ; cnt++)
  {
if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES))
if(OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_BUY || OrderType()==OP_SELL))
 {
if(t1 == -1) { t1 = OrderTicket(); }
else
   {
if(t2 == -1) { t2 = OrderTicket(); }
   }
c++;
 }
  }
return(c);
  }




void OpenBUYOrder(int Magic)
   {
double en,sl,tp;
int    slippage = 30;
 
en = Ask;                  
sl = Ask - (StopLoss * Point);   
tp = Ask + (TakeProfit * Point); 
 
if(FirstLots > 0)
 {Ticket1 = OrderSend(Symbol(),OP_BUY, FirstLots, en, slippage, sl, tp, "EA Comment", Magic, 0, clrGreen);}
else
   {Alert("Buying Error "," Err = ",GetLastError()," Price = ",Ask," Lots = ",FirstLots);}

   }




void OpenSELLOrder(int Magic)
   {
double en,sl,tp;
int    slippage = 30;
 
en = Bid;                  
sl = Bid + (StopLoss * Point);   
tp = Bid - (TakeProfit * Point); 
 
if(FirstLots > 0)
 {Ticket1 = OrderSend(Symbol(),OP_SELL, FirstLots, en, slippage, sl, tp, "EA Comment", Magic, 0, clrRed);}
else
   {Alert("Selling Error "," Err = ",GetLastError()," Price = ",Ask," Lots = ",FirstLots);}

   }



double BACDCustom()
     {




enum AW
{
aShowArrow,    
bShowArrowsVL, 
cShowVL,       
dHideAll       
};


enum CL
   {
aAlex,      
bLotus,     
cNile,      
dCairo,     
eDoNothing, 
   };


enum SS
   {
aCustom,    
bDataWindow 
   };




double BC = iCustom(Symbol(),      
                    Period(),      
                    indAdress,     
                    " ",           
                    FastPeriod,    
                    SlowPeriod,    
                    SignalPeriod,  
                    " ",           
                    aShowArrow,    
                    1,             
                    true,          
                    false,         
                    false,         
                    " ",           
                    aCustom,       
                    "",            
                    10,            
                    false,         
                    100,           
                    "A",           
                    "D",           
                    eDoNothing,    
                    6,             
                    0);


return(BC);
     }
     


The same code is attached to this blog. I hope BACD Cloud to be a good
trading tool for you. If you have any question send me a message and I will answer as soon as I am online.


Best regards


Muhammad Al Bermaui, CMT


www.bermaui.com




Source link

Register at Binance