Penulis Asli: RoboFx
Indikator Balance of Power (BOP) ini merupakan histogram berwarna yang menunjukkan kekuatan dan arah tren terkini. Indikator ini dilengkapi dengan fitur notifikasi, baik melalui email maupun notifikasi push ke perangkat mobile. Warna histogram akan berubah sesuai dengan parameter input untuk level overbought dan oversold serta arah pergerakan histogram itu sendiri.
Beberapa perubahan telah dilakukan pada kode indikator ini untuk menambahkan fitur notifikasi, termasuk email dan push-notifikasi:
- Menambahkan parameter input baru:
- Menambahkan tiga fungsi baru di akhir kode indikator: BuySignal(), SellSignal(), dan GetStringTimeframe():
- Menambahkan beberapa panggilan untuk fungsi BuySignal() dan SellSignal() setelah siklus perhitungan indikator di blok OnCalculate():
//---- Variabel input untuk notifikasi input uint JumlahBar=1;//Jumlah bar untuk sinyal input bool SuaraON=true;//Aktifkan notifikasi input uint JumlahNotifikasi=2;//Jumlah notifikasi input bool EMailON=false;//Aktifkan pengiriman sinyal melalui email input bool PushON=false;//Aktifkan pengiriman sinyal ke perangkat mobile
//+------------------------------------------------------------------+ //| Fungsi sinyal beli | //+------------------------------------------------------------------+ void BuySignal(string NamaSinyal,// nama indikator untuk pesan email dan push double &WarnaArray[],// buffer indeks warna int IndeksWarna,// indeks warna dalam buffer untuk menghasilkan sinyal const int TotalRates, // jumlah bar saat ini const int Prev_calculated, // jumlah bar pada tick sebelumnya const double &Close[], // harga penutupan const int &Spread[]) // spread { //--- static uint counter=0; if(TotalRates!=Prev_calculated) counter=0; bool BuySignal=false; bool SeriesTest=ArrayGetAsSeries(WarnaArray); int index,index1; if(SeriesTest) { index=int(JumlahBar); index1=index+1; } else { index=TotalRates-int(JumlahBar)-1; index1=index-1; } if(WarnaArray[index1]!=IndeksWarna && WarnaArray[index]==IndeksWarna) BuySignal=true; if(BuySignal && counter<=JumlahNotifikasi) { counter++; MqlDateTime tm; TimeToStruct(TimeCurrent(),tm); string text=TimeToString(TimeCurrent(),TIME_DATE)+" "+string(tm.hour)+":"+string(tm.min); SeriesTest=ArrayGetAsSeries(Close); if(SeriesTest) index=int(JumlahBar); else index=TotalRates-int(JumlahBar)-1; double Ask=Close[index]; double Bid=Close[index]; SeriesTest=ArrayGetAsSeries(Spread); if(SeriesTest) index=int(JumlahBar); else index=TotalRates-int(JumlahBar)-1; Bid+=Spread[index]; string sAsk=DoubleToString(Ask,_Digits); string sBid=DoubleToString(Bid,_Digits); string sPeriod=GetStringTimeframe(ChartPeriod()); if(SuaraON) Alert("Sinyal BUY Ask=",Ask," Bid=",Bid," waktu sekarang=",text," Simbol=",Symbol()," Periode=",sPeriod); if(EMailON) SendMail(NamaSinyal+": notifikasi sinyal BUY","Sinyal BUY di Ask="+sAsk+", Bid="+sBid+", Tanggal="+text+" Simbol="+Symbol()+" Periode="+sPeriod); if(PushON) SendNotification(NamaSinyal+": Sinyal BUY di Ask="+sAsk+", Bid="+sBid+", Tanggal="+text+" Simbol="+Symbol()+" Periode="+sPeriod); } //--- } //+------------------------------------------------------------------+
//--- BuySignal("BalanceOfPower_Histogram_Alert",WarnaIndBuffer,0,TotalRates,Prev_calculated,Close,Spread); SellSignal("BalanceOfPower_Histogram_Alert",WarnaIndBuffer,7,TotalRates,Prev_calculated,Close,Spread); //---
WarnaIndBuffer adalah nama buffer indeks warna untuk menyimpan warna candle dalam bentuk indeks.
Diharapkan bahwa hanya satu panggilan untuk fungsi BuySignal() dan SellSignal() yang akan digunakan di blok OnCalculate() dari kode indikator ini.
Indikator ini menggunakan kelas dari pustaka SmoothAlgorithms.mqh (salin ke <folder_data_terminal>\MQL5\Include). Penggunaan kelas ini telah dijelaskan secara mendetail dalam artikel "Averaging Price Series for Intermediate Calculations Without Using Additional Buffers".
Awalnya indikator ini ditulis dalam MQL5 dan pertama kali diterbitkan di Code Base pada 07.02.2013.

Fig1. Indikator BalanceOfPower_Histogram_Alert di chart
Fig.2. Indikator BalanceOfPower_Histogram_Alert Menghasilkan notifikasi.
Postingan terkait
- Panduan Lengkap MetaCOT 2 CFTC ToolBox untuk Analisis COT di MT4
- Indikator Alerts pada New Bar untuk MetaTrader 4: Panduan Lengkap
- Indikator Open Range Breakout untuk MetaTrader 5: Strategi Trading yang Efektif
- Master Tools: Alat Indikator untuk MetaTrader 4 yang Harus Dimiliki
- Volume Profile + Range v6.0: Indikator Penting untuk MetaTrader 5
