Beranda Indikator Teknis Postingan

Indikator Balance of Power Histogram Alert untuk MetaTrader 5

Lampiran
16403.zip (22.71 KB, Unduh 0 kali)

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:

  1. Menambahkan parameter input baru:
  2. //---- 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
    
  3. Menambahkan tiga fungsi baru di akhir kode indikator: BuySignal(), SellSignal(), dan GetStringTimeframe():
  4. //+------------------------------------------------------------------+
    //| 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);
         }
    //---
      }
    //+------------------------------------------------------------------+
    
  5. Menambahkan beberapa panggilan untuk fungsi BuySignal() dan SellSignal() setelah siklus perhitungan indikator di blok OnCalculate():
  6. //---     
       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

Fig1. Indikator BalanceOfPower_Histogram_Alert di chart

Fig.2. Indikator BalanceOfPower_Histogram_Alert Menghasilkan notifikasi.

Fig.2. Indikator BalanceOfPower_Histogram_Alert Menghasilkan notifikasi.

Postingan terkait

Komentar (0)