[MT4] Simple Bollinger Band EA

admin
0

 

mql4

Kali ini kita akan mencoba membuat EA Bollinger Band sederhana, indikator yang akan kita gunakan hanya menggunakan BB saja. Kita semua tahu bahwa menggunakan satu indikator ini saja menghasilkan nilai yang rendah. Untuk kedepannya kita akan kombinasikan indikator Bollinger Band dengan indikator teknikal lainnya atau menggunakan strategi trading tertentu untuk memperoleh hasil trading yang lebih baik. Tetap ikuti blog ini untuk mendapatkan update-update terbaru dari kami. 

Sedikit penjelasan, Bollinger Band dapat digunakan untuk membantu trader dalam mengidentifikasi peluang trading yang potensial berdasarkan harga di pasar forex. Indikator Bollinger Band dapat membantu trader dalam mengenali level-level support dan resistance yang dinamis berdasarkan volatilitas pasar yang sedang terjadi.

Untuk mempelajari Bollinger Band anda bisa mengunjungi link berikut ini

Baca juga: Bollinger Band Trading Strategi


Membuat EA Bollinger Band

Oke, untuk strategi yang kita gunakan cukup sederhana. Strategi yang kita gunakan yaitu strategi reversal, dimana apabila harga sudah menyentuh batas atas dianggap sebagai sinyal sell dan saat harga berada dibawah harga bawah dianggal sebagai sinyal buy.

Kondisi beli (Buy) : apabila candle Close Lower pertama diatas garis BB bawah dan close Lower kedua dibawah garis BB bawah

Kondisi jual (sell) : apabilla candle close Higher pertama dibawah garis BB atas dan close Higher kedua diatas garis BB atas

untuk lebih jelasnya lihat gambar dibawah ini

Strategi Reversal Bollinger Band


Source code MQL4 bisa anda lihat di bawah ini:

//-- BB INDICATOR
input int                  BB_Period         = 20;
input double               BB_Deviaton       = 2.0;
input ENUM_APPLIED_PRICE   BB_AppliedPrice   = PRICE_CLOSE;

//-- TPSL
input double   TP       = 100;
input double   SL       = 300;

//-- STANDARD INPUT
input double   Lot            = 0.01;
input int      MagicNumber    = 03042023;
input string   TradeComment   = __FILE__;

//-- VARIABLE
datetime    BarTime     = 0;


void OnTick()
{
   OnEveryNewBar();
}

void OnEveryNewBar()
{
   if (BarTime != Time[0])
   {
      CheckBollingerBandTrade();
      BarTime = Time[0];
   }
}

void CheckBollingerBandTrade()
{
   double LowerBB = iBands(_Symbol,0,BB_Period,BB_Deviaton,0,BB_AppliedPrice,MODE_LOWER,1);
   double UpperBB = iBands(_Symbol,0,BB_Period,BB_Deviaton,0,BB_AppliedPrice,MODE_UPPER,1);
   
   double PrevLowerBB = iBands(_Symbol,0,BB_Period,BB_Deviaton,0,BB_AppliedPrice,MODE_LOWER,2);
   double PrevUpperBB = iBands(_Symbol,0,BB_Period,BB_Deviaton,0,BB_AppliedPrice,MODE_UPPER,2);
   
   if ((Low[1]>LowerBB) &&(Low[2]<PrevLowerBB)) {
      if (OrdersTotal()==0) {
         OpenOrder("BUY");
      }
   }
   
   if ((High[1]<UpperBB) && (High[2]>PrevUpperBB)) {
      if (OrdersTotal()==0) {
         OpenOrder("SELL");
      }
   }
}

void OpenOrder(string OrderPosition)
{

   double tpPrice, slPrice, OpenPrice;
   ENUM_ORDER_TYPE orderType;
   
   if (OrderPosition == "BUY") {
      OpenPrice      = Ask;
      tpPrice        = NormalizeDouble(OpenPrice+TP*Point, Digits());
      slPrice        = NormalizeDouble(OpenPrice-SL*Point, Digits());
      orderType      = OP_BUY;
   }else
   if (OrderPosition == "SELL") {
      OpenPrice      = Bid;   
      tpPrice        = NormalizeDouble(OpenPrice-TP*Point, Digits());
      slPrice        = NormalizeDouble(OpenPrice+SL*Point, Digits());
      orderType      = OP_SELL;
   }
   
   int orderTicket = OrderSend(Symbol(),orderType,Lot,OpenPrice,3,slPrice,tpPrice,TradeComment,MagicNumber);
}



Posting Komentar

0Komentar

Posting Komentar (0)

#buttons=(Accept !) #days=(20)

Our website uses cookies to enhance your experience. Check Now
Accept !