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:
- Penambahan parameter input baru:
- Menambahkan tiga fungsi baru di akhir kode indikator: BuySignal(), SellSignal(), dan GetStringTimeframe():
- Menambahkan beberapa pemanggilan fungsi BuySignal() dan SellSignal() setelah siklus perhitungan indikator di blok OnCalculate():
//---- 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
//+------------------------------------------------------------------+ //| 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); } //--- } //+------------------------------------------------------------------+
//--- 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
Fig.2. Indikator ColorJFatl_Digit_Alert Menghasilkan notifikasi.
Postingan terkait
- Indikator Open Range Breakout untuk MetaTrader 5: Strategi Trading yang Efektif
- Volume Profile + Range v6.0: Indikator Penting untuk MetaTrader 5
- Panduan Menggunakan Kalender Ekonomi untuk Backtesting di MetaTrader 5
- iSpread: Indikator Spread untuk Pair Trading di MetaTrader 5
- Panduan Lengkap Volume Profile + Range v6.0 untuk MetaTrader 5
