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);
}


