MQL5 Wizard adalah alat yang sangat berguna untuk trader yang ingin membuat Expert Advisors (EA) siap pakai berdasarkan Standar Kelas Perpustakaan yang disertakan dengan terminal klien. Dengan alat ini, kamu bisa cepat mengecek ide trading kamu hanya dengan membuat kelas sinyal tradingmu sendiri. Struktur kelas ini dan contoh penggunaannya bisa kamu temukan di artikel MQL5 Wizard: Cara Membuat Modul Sinyal Trading.
Ide dasarnya adalah kelas sinyal trading diturunkan dari CExpertSignal. Selanjutnya, kamu perlu menimpa metode virtual LongCondition() dan ShortCondition() dengan metode milikmu sendiri.
Ada sebuah buku yang berjudul "Strategi Trader Terbaik" (dalam bahasa Rusia) yang mengulas banyak strategi trading. Di sini kita akan fokus pada pola candlestick pembalikan, yang dikonfirmasi oleh Stochastic, CCI, MFI, dan RSI oscillator.
Cara terbaik adalah membuat kelas terpisah yang diturunkan dari CExpertSignal untuk memeriksa pembentukan pola candlestick. Untuk konfirmasi sinyal trading yang dihasilkan oleh pola candlestick, cukup buat kelas yang diturunkan dari CCandlePattern dan tambahkan fitur yang diperlukan (misalnya, konfirmasi oleh oscillator).
Di sini kita akan mempertimbangkan sinyal berdasarkan pola candlestick pembalikan "Bullish Engulfing/Bearish Engulfing" yang dikonfirmasi oleh indikator RSI. Modul sinyal trading ini didasarkan pada kelas CCandlePattern, yang merupakan contoh sederhana penggunaannya untuk membuat sinyal trading dengan pola candlestick.
1. "Bullish Engulfing" dan "Bearish Engulfing"
1.1. Bullish Engulfing
Polanya "Bullish Engulfing" terbentuk dalam tren turun ketika candlestick hitam kecil diikuti oleh candlestick putih besar yang sepenuhnya menutupi ("menggenggam") candlestick hari sebelumnya. Bayangan (ekor) dari candlestick kecil tersebut pendek, yang memungkinkan tubuh candlestick besar menutupi seluruh candlestick dari hari sebelumnya.

Fig. 1. Pola Candlestick Bullish Engulfing
Pengenalan pola "Bullish Engulfing" diimplementasikan dalam metode CheckPatternBullishEngulfing() dari kelas CCandlePattern:
//+------------------------------------------------------------------+ //| Memeriksa pembentukan pola candlestick "Bullish Engulfing" | //+------------------------------------------------------------------+ bool CCandlePattern::CheckPatternBullishEngulfing() { //--- Bullish Engulfing if((Open(2)>Close(2)) && // candlestick sebelumnya bearish (Close(1)-Open(1)>AvgBody(1)) && // tubuh candlestick bullish lebih tinggi dari rata-rata (Close(1)>Open(2)) && // harga penutupan candlestick bullish lebih tinggi dari harga pembukaan bearish (MidOpenClose(2)<CloseAvg(2)) && // tren turun (Open(1)<Close(2))) // harga pembukaan candlestick bullish lebih rendah dari harga penutupan bearish return(true); //--- return(false); }
Pola "Bullish Engulfing" diperiksa dengan metode CheckCandlestickPattern(CANDLE_PATTERN_BULLISH_ENGULFING) dari kelas CCandlePattern.
1.2. Bearish Engulfing
Pola "Bearish Engulfing" terbentuk dalam tren naik ketika candlestick putih kecil diikuti oleh candlestick hitam besar yang sepenuhnya menutupi ("menggenggam") candlestick hari sebelumnya. Bayangan dari candlestick kecil tersebut juga pendek, memungkinkan tubuh candlestick besar menutupi seluruh candlestick dari hari sebelumnya.

Fig. 2. Pola Candlestick Bearish Engulfing
Pengenalan pola "Bearish Engulfing" diimplementasikan dalam metode CheckPatternBearishEngulfing() dari kelas CCandlePattern:
//+------------------------------------------------------------------+ //| Memeriksa pembentukan pola candlestick "Bearish Engulfing" | //+------------------------------------------------------------------+ bool CCandlePattern::CheckPatternBearishEngulfing() { //--- Bearish Engulfing if((Open(2)<Close(2)) && // candlestick sebelumnya bullish (Open(1)-Close(1)>AvgBody(1)) && // tubuh candlestick bearish lebih tinggi dari rata-rata (Close(1)<Open(2)) && // harga penutupan candlestick bearish lebih rendah dari harga pembukaan bullish (MidOpenClose(2)>CloseAvg(2)) && // tren naik (Open(1)>Close(2))) // Harga pembukaan candlestick bearish lebih tinggi dari harga penutupan bullish return(true); //--- return(false); }
Pola "Bearish Engulfing" diperiksa dengan metode CheckCandlestickPattern(CANDLE_PATTERN_BEARISH_ENGULFING) dari kelas CCandlePattern.
2. Sinyal Trading yang Dikonfirmasi oleh Indikator RSI
Sinyal trading untuk membuka posisi long atau short harus dikonfirmasi oleh indikator RSI. Nilai RSI harus lebih rendah/lebih tinggi dari level kritis (40 untuk posisi long dan 60 untuk posisi short).
Penutupan posisi yang dibuka tergantung pada nilai RSI. Ini dapat dilakukan dalam 2 kasus:
- jika RSI telah mencapai level kritis yang berlawanan (70 untuk posisi long dan 30 untuk posisi short)
- jika sinyal pembalikan tidak terkonfirmasi (ketika RSI mencapai level berikut: 30 untuk posisi long dan 70 untuk posisi short)

Fig. 3. Pola Bullish Engulfing, Dikonfirmasi oleh Indikator RSI
- int CBE_BE_RSI::LongCondition() - memeriksa kondisi untuk membuka posisi long (mengembalikan 80) dan menutup posisi short (mengembalikan 40);
- int CBE_BE_RSI::ShortCondition() - memeriksa kondisi untuk membuka posisi short (mengembalikan 80) dan menutup posisi long (mengembalikan 40).
2.1. Membuka Posisi Long/Menutup Posisi Short
Pembentukan pola "Bullish Engulfing" harus dikonfirmasi oleh indikator RSI: RSI(1)<40 (nilai RSI dari bar yang telah selesai terakhir harus kurang dari 40).
Posisi short harus ditutup jika indikator RSI telah melintasi level kritis 70 atau 30 ke atas.
//+------------------------------------------------------------------+ //| Memeriksa kondisi untuk masuk dan keluar dari pasar | //| 1) Masuk ke pasar (buka posisi long, hasil=80) | //| 2) Keluar dari pasar (tutup posisi short, hasil=40) | //+------------------------------------------------------------------+ int CBE_BE_RSI::LongCondition() { int result=0; //--- idx dapat digunakan untuk menentukan mode kerja EA //--- idx=0 - dalam hal ini EA memeriksa kondisi trading di setiap tick //--- idx=1 - dalam hal ini EA memeriksa kondisi trading hanya di bar berita int idx =StartIndex(); //--- memeriksa kondisi untuk membuka posisi long //--- pembentukan pola Bullish Engulfing dan RSI<30 if(CheckCandlestickPattern(CANDLE_PATTERN_BULLISH_ENGULFING) && (RSI(1)<40)) result=80; //--- memeriksa kondisi untuk menutup posisi short //--- crossover garis sinyal level overbought/oversold (ke atas 30, ke atas 70) if(((RSI(1)>30) && (RSI(2)<30)) || ((RSI(1)>70) && (RSI(2)<70))) result=40; //--- mengembalikan hasil return(result); }
2.2. Membuka Posisi Short/Menutup Posisi Long
Pembentukan pola "Bearish Engulfing" harus dikonfirmasi oleh indikator RSI: RSI(1)>60 (nilai dari indikator RSI bar terakhir harus lebih dari 60).
Posisi long harus ditutup jika indikator RSI telah melintasi level kritis 70 atau 30 ke bawah.
//+------------------------------------------------------------------+ //| Memeriksa kondisi untuk masuk dan keluar dari pasar | //| 1) Masuk ke pasar (buka posisi short, hasil=80) | //| 2) Keluar dari pasar (tutup posisi long, hasil=40) | //+------------------------------------------------------------------+ int CBE_BE_RSI::ShortCondition() { int result=0; //--- idx dapat digunakan untuk menentukan mode kerja EA //--- idx=0 - dalam hal ini EA memeriksa kondisi trading di setiap tick //--- idx=1 - dalam hal ini EA memeriksa kondisi trading hanya di bar berita int idx =StartIndex(); //--- memeriksa kondisi untuk membuka posisi short //--- pembentukan pola Bearish Engulfing dan RSI>60 if(CheckCandlestickPattern(CANDLE_PATTERN_BEARISH_ENGULFING) && (RSI(1)>60)) result=80; //--- memeriksa kondisi untuk menutup posisi long //--- crossover garis sinyal level overbought/oversold (ke bawah 70, ke bawah 30) if(((RSI(1)<70) && (RSI(2)>70)) || ((RSI(1)<30) && (RSI(2)>30))) result=40; //--- mengembalikan hasil return(result); }
2.3. Membuat Expert Advisor Menggunakan MQL5 Wizard
Kelas CBE_BE_RSI tidak termasuk dalam kelas Perpustakaan Standar, untuk menggunakannya, perlu mengunduh file acml_rsi.mqh (lihat lampiran) dan menyimpannya di folder client_terminal_data\MQL5\Include\Expert\Signal\MySignals. Hal yang sama juga harus dilakukan dengan file acandlepatterns.mqh. Kamu bisa menggunakannya di MQL5 Wizard setelah me-restart MetaEditor.
Untuk membuat Expert Advisor, jalankan MQL5 Wizard:

Fig. 4. Membuat Expert Advisor Menggunakan MQL5 Wizard
Mari kita tentukan nama Expert Advisor:

Fig. 5. Properti Umum Expert Advisor
Setelah itu, kita perlu memilih modul sinyal trading yang digunakan.

Fig. 6. Properti Sinyal Expert Advisor
Dalam kasus kita, kita hanya menggunakan satu modul sinyal trading.
Menambahkan modul Sinyal Berdasarkan Bullish Engulfing/Bearish Engulfing yang Dikonfirmasi oleh RSI:

Fig. 7. Properti Sinyal Expert Advisor
Modul sinyal trading telah ditambahkan:

Fig. 8. Properti Sinyal Expert Advisor
Kamu bisa memilih properti trailing apapun, tetapi kita akan menggunakan "Trailing Stop tidak digunakan":

Fig. 9. Properti Manajemen Uang Expert Advisor
Mengenai properti manajemen uang, kita akan menggunakan "Trading dengan volume tetap":

Fig. 10. Properti Manajemen Uang Expert Advisor
Dengan menekan tombol "Selesai", kita akan mendapatkan kode dari Expert Advisor yang dihasilkan, yang terletak di Expert_ABE_BE_RSI.mq5, akan disimpan di folder terminal_data_folder\MQL5\Experts\.
Parameter input default dari Expert Advisor yang dihasilkan:
//--- input untuk sinyal utama input int Signal_ThresholdOpen =10; // Nilai ambang sinyal untuk membuka [0...100] input int Signal_ThresholdClose =10 // Nilai ambang sinyal untuk menutup [0...100] input double Signal_PriceLevel =0.0 // Level harga untuk mengeksekusi transaksi input double Signal_StopLevel =50.0 // Level Stop Loss (dalam poin) input double Signal_TakeLevel =50.0 // Level Take Profit (dalam poin)
harus diganti menjadi:
//--- input untuk sinyal utama input int Signal_ThresholdOpen =40; // Nilai ambang sinyal untuk membuka [0...100] input int Signal_ThresholdClose =20 // Nilai ambang sinyal untuk menutup [0...100] input double Signal_PriceLevel =0.0 // Level harga untuk mengeksekusi transaksi input double Signal_StopLevel =0.0 // Level Stop Loss (dalam poin) input double Signal_TakeLevel =0.0 // Level Take Profit (dalam poin)
Parameter input Signal_ThresholdOpen/Signal_ThresholdClose memungkinkan untuk menentukan level ambang untuk membuka dan menutup posisi.
Dalam kode metode LongCondition() dan ShortCondition() dari kelas sinyal trading, kita telah menetapkan nilai tetap ambang:
- Buka posisi: 80;
- Tutup posisi: 40.
Expert Advisor yang dihasilkan oleh MQL5 Wizard membuka dan menutup posisi menggunakan "suara" dari modul sinyal trading. Suara dari modul utama (sebagai wadah, terdiri dari semua modul yang ditambahkan) juga digunakan, tetapi metode LongCondition() dan ShortCondition() selalu mengembalikan 0.
Hasil suara dari modul utama juga digunakan dalam perhitungan rata-rata "suara". Dalam kasus kita, terdapat modul utama + 1 modul sinyal trading, jadi kita perlu memperhitungkan fakta ini saat mengatur nilai ambang. Karena fakta ini, ThresholdOpen dan ThresholdClose harus diatur masing-masing menjadi 40=(0+80)/2 dan 20=(0+40)/2.
Nilai dari parameter input Signal_StopLevel dan Signal_TakeLevel diatur ke 0, yang berarti bahwa penutupan posisi hanya akan dilakukan ketika kondisi penutupan terpenuhi.
2.4. Hasil Backtesting Sejarah
Ayo kita lihat backtesting dari Expert Advisor pada data historis (EURUSD H1, periode pengujian: 2010.01.01-2011.03.04, PeriodRSI=11, MA_period=5).
Dalam pembuatan Expert Advisor, kita menggunakan volume tetap (Trading Fixed Lot, 0.1), algoritma Trailing Stop tidak digunakan (Trailing tidak digunakan).

Fig. 11. Hasil Pengujian Expert Advisor, Berdasarkan Bullish Engulfing/Bearish Engulfing + RSI
Set terbaik dari parameter input bisa ditemukan menggunakan Penguji Strategi di terminal klien MetaTrader 5.
Kode dari Expert Advisor yang dibuat oleh MQL5 Wizard terlampir dalam expert_abe_be_rsi.mq5.
Postingan terkait
- Panduan Lengkap Membuat EA dengan MQL5 Wizard: Sinyal Trading Bullish dan Bearish Engulfing + MFI
- Membuat Expert Advisor Menggunakan MQL5 Wizard: Sinyal Perdagangan dari Bullish dan Bearish Engulfing dengan Stochastic
- MQL5 Wizard: Ciptakan Expert Advisor untuk Pola Candlestick Engulfing dan CCI
- MQL5 Wizard: Mengoptimalkan Sinyal Perdagangan dengan Morning/Evening Stars dan MFI
- Panduan Sistem Trading BROTHER - Hasil Ekstrem dengan EA 5 Menit di MetaTrader 4