Beranda Indikator Teknis Postingan

ColorJFatl_Digit_Alert: Indikator Canggih untuk MetaTrader 5

Lampiran
16407.zip (23.48 KB, Unduh 0 kali)

Halo, Sobat Trader! Kali ini kita akan membahas tentang indikator ColorJFatl_Digit yang memiliki fitur notifikasi untuk membantu kita dalam trading. Indikator ini dapat mengirimkan peringatan melalui email dan notifikasi push ke perangkat mobile, loh!

Agar kita bisa mendapatkan notifikasi yang tepat, ada beberapa perubahan yang dilakukan pada kode indikator ini:

  1. Penambahan parameter input baru:
  2. //---- Variabel input untuk notifikasi 
    input uint NumberofBar=1;                    //Bar number untuk sinyal
    input bool SoundON=true;                     //Aktifkan notifikasi suara
    input uint NumberofAlerts=2;                 //Jumlah notifikasi yang ingin diterima
    input bool EMailON=false;                    //Aktifkan notifikasi melalui email
    input bool PushON=false;                     //Aktifkan notifikasi ke perangkat mobile
    
  3. Menambahkan tiga fungsi baru di akhir kode indikator: BuySignal(), SellSignal(), dan GetStringTimeframe():
  4. //+------------------------------------------------------------------+
    //| Fungsi sinyal beli                                              |
    //+------------------------------------------------------------------+
    void BuySignal(string SignalSirname,// teks nama indikator untuk email dan notifikasi
                   double &ColorArray[],// buffer indeks warna
                   int ColorIndex,// indeks warna dalam buffer untuk menghasilkan sinyal
                   const int Rates_total,     // 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(Rates_total!=Prev_calculated) counter=0;
    
       bool BuySignal=false;
       bool SeriesTest=ArrayGetAsSeries(ColorArray);
       int index,index1;
       if(SeriesTest)
         {
          index=int(NumberofBar);
          index1=index+1;
         }
       else
         {
          index=Rates_total-int(NumberofBar)-1;
          index1=index-1;
         }
       if(ColorArray[index1]!=ColorIndex && ColorArray[index]==ColorIndex) BuySignal=true;
       if(BuySignal && counter<=NumberofAlerts)
         {
          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(NumberofBar);
          else index=Rates_total-int(NumberofBar)-1;
          double Ask=Close[index];
          double Bid=Close[index];
          SeriesTest=ArrayGetAsSeries(Spread);
          if(SeriesTest) index=int(NumberofBar);
          else index=Rates_total-int(NumberofBar)-1;
          Bid+=Spread[index];
          string sAsk=DoubleToString(Ask,_Digits);
          string sBid=DoubleToString(Bid,_Digits);
          string sPeriod=GetStringTimeframe(ChartPeriod());
          if(SoundON) Alert("Sinyal BUY \n Ask=",Ask,"\n Bid=",Bid,"\n currtime=",text,"\n Symbol=",Symbol()," Periode=",sPeriod);
          if(EMailON) SendMail(SignalSirname+": notifikasi sinyal BUY","Sinyal BUY di Ask="+sAsk+", Bid="+sBid+", Tanggal="+text+" Symbol="+Symbol()+" Periode="+sPeriod);
          if(PushON) SendNotification(SignalSirname+": Sinyal BUY di Ask="+sAsk+", Bid="+sBid+", Tanggal="+text+" Symbol="+Symbol()+" Periode="+sPeriod);
         }
    //---
      }
    //+------------------------------------------------------------------+
    
  5. Menambahkan beberapa pemanggilan fungsi BuySignal() dan SellSignal() setelah siklus perhitungan indikator di blok OnCalculate():
  6. //---     
       BuySignal("ColorJFatl_Digit_Alert",ColorExtLineBuffer,2,rates_total,prev_calculated,close,spread);
       SellSignal("ColorJFatl_Digit_Alert",ColorExtLineBuffer,0,rates_total,prev_calculated,close,spread);
    //--- 
    

Di mana ColorExtLineBuffer adalah nama buffer indeks warna untuk menyimpan warna garis dalam bentuk indeks.

Dianggap hanya satu pemanggilan untuk fungsi BuySignal() dan SellSignal() yang digunakan dalam blok OnCalculate() pada kode indikator.

Indikator ini menggunakan kelas dari library SmoothAlgorithms.mqh (salin ke <terminal_data_folder>\MQL5\Include). Penggunaan kelas tersebut telah dijelaskan secara mendetail dalam artikel "Averaging Price Series for Intermediate Calculations Without Using Additional Buffers".

Fig1. Indikator ColorJFatl_Digit_Alert di chart

Fig1. Indikator ColorJFatl_Digit_Alert di chart

Fig.2. Indikator ColorJFatl_Digit_Alert Menghasilkan notifikasi.

Fig.2. Indikator ColorJFatl_Digit_Alert Menghasilkan notifikasi.

Postingan terkait

Komentar (0)