MQL5 Wizard adalah alat yang sangat membantu bagi trader yang ingin membuat Expert Advisor (EA) siap pakai berdasarkan kelas perpustakaan standar yang disediakan bersamaan dengan terminal klien. Dengan MQL5 Wizard, Anda bisa dengan cepat memeriksa ide trading Anda, cukup dengan membuat kelas sinyal trading Anda sendiri. Struktur kelas ini dan contohnya bisa Anda temukan dalam artikel MQL5 Wizard: Cara Membuat Modul Sinyal Trading.
Ide dasarnya adalah sebagai berikut: kelas dari sinyal trading diturunkan dari CExpertSignal. Selanjutnya, Anda perlu menimpa metode virtual LongCondition() dan ShortCondition() dengan metode Anda sendiri.
Ada sebuah buku berjudul "Strategi Para Trader Terbaik" (dalam bahasa Rusia), yang membahas banyak strategi trading, dan kita akan fokus pada pola candlestick pembalikan yang dikonfirmasi oleh Stochastic, CCI, MFI, dan RSI untuk osilator.
Cara terbaik adalah membuat kelas terpisah yang diturunkan dari CExpertSignal untuk memeriksa pembentukan pola candlestick. Untuk mengonfirmasi sinyal trading yang dihasilkan oleh pola candlestick, Anda cukup menulis kelas yang diturunkan dari CCandlePattern dan menambahkan fitur yang diperlukan (misalnya, konfirmasi dengan osilator) di sana.
Di sini kita akan mempertimbangkan sinyal yang berdasarkan pada pola candlestick pembalikan "3 Black Crows/3 White Soldiers" yang dikonfirmasi oleh indikator Commodity Channel Index. Modul sinyal trading ini didasarkan pada kelas CCandlePattern, yang merupakan contoh sederhana penggunaannya untuk membuat sinyal trading dengan pola candlestick.
1. Pola Candlestick "3 Black Crows" dan "3 White Soldiers"
1.1. 3 Black Crows
Pola candlestick bearish ini digunakan untuk memprediksi pembalikan dari tren naik yang sedang berlangsung. Pola ini terdiri dari tiga candlestick bertubuh panjang berturut-turut yang ditutup lebih rendah dari hari sebelumnya, dengan setiap sesi dibuka di dalam tubuh candlestick sebelumnya.

Fig. 1. Pola Candlestick "3 Black Crows"
Pengakuan pola "3 Black Crows" diimplemen dalam metode CheckPatternThreeBlackCrows dari kelas CCandlePattern:
//+------------------------------------------------------------------+ //| Memeriksa pembentukan pola candlestick "3 Black Crows" | //+------------------------------------------------------------------+ bool CCandlePattern::CheckPatternThreeBlackCrows() { //--- 3 Black Crows if((Open(3)-Close(3)>AvgBody(1)) && // (candlestick hitam panjang) (Open(2)-Close(2)>AvgBody(1)) && (Open(1)-Close(1)>AvgBody(1)) && (MidPoint(2)<MidPoint(3)) && // (titik tengah lebih rendah) (MidPoint(1)<MidPoint(2))) return(true); //--- return(false); }
Metode CheckCandlestickPattern(CANDLE_PATTERN_THREE_BLACK_CROWS) dari kelas CCandlePattern digunakan untuk memeriksa pembentukan pola candlestick "3 Black Crows".
1.2. Pola 3 White Soldiers
Pola candlestick bullish ini digunakan untuk memprediksi pembalikan dari tren turun yang sedang berlangsung. Pola ini terdiri dari tiga candlestick bertubuh panjang berturut-turut yang ditutup lebih tinggi dari hari sebelumnya, dengan setiap sesi dibuka di dalam tubuh candlestick sebelumnya.
Pola ini valid selama candlestick hari kedua dibuka di setengah atas rentang hari pertama. Pada akhir hari kedua, candlestick ini harus ditutup mendekati titik tertingginya, meninggalkan bayangan atas yang sangat kecil atau tidak ada sama sekali. Pola yang sama kemudian diulang pada hari ketiga.

Fig. 2. Pola Candlestick "3 White Soldiers"
Berikut adalah metode untuk pengakuan pola "3 White Soldiers":
//+------------------------------------------------------------------+ //| Memeriksa pembentukan pola candlestick "3 White Soldiers" | //+------------------------------------------------------------------+ bool CCandlePattern::CheckPatternThreeWhiteSoldiers() { //--- 3 White Soldiers if((Close(3)-Open(3)>AvgBody(1)) && // candlestick putih panjang (Close(2)-Open(2)>AvgBody(1)) && (Close(1)-Open(1)>AvgBody(1)) && (MidPoint(2)>MidPoint(3)) && // titik tengah lebih tinggi (MidPoint(1)>MidPoint(2))) return(true); //--- return(false); }
Metode CheckCandlestickPattern(CANDLE_PATTERN_THREE_WHITE_SOLDIERS) dari kelas CCandlePattern digunakan untuk memeriksa pembentukan pola candlestick "3 White Soldiers".
2. Sinyal Trading yang Dikonfirmasi oleh Indikator CCI
Sinyal trading untuk membuka posisi long atau short harus dikonfirmasi oleh indikator CCI. Nilai CCI harus lebih besar/kecil dari level kritis (-50 untuk posisi long dan 50 untuk posisi short)
Penutupan posisi yang dibuka bergantung pada nilai CCI. Ini bisa dilakukan dalam 2 kasus:
- jika garis CCI telah mencapai level kritis yang berlawanan (80 untuk posisi long dan -80 untuk posisi short)
- jika sinyal balik tidak terkonfirmasi (ketika CCI mencapai level berikutnya: -80 untuk posisi long dan 80 untuk posisi short)

Fig. 3. Pola "3 Black Crows" yang Dikonfirmasi oleh Indikator CCI
- int CBC_WS_CCI::LongCondition() - memeriksa kondisi untuk membuka posisi long (mengembalikan 80) dan menutup posisi short (mengembalikan 40);
- int CBC_WS_CCI::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 "3 Black Crows" harus dikonfirmasi oleh indikator CCI: CCI(1)<-50 (nilai CCI dari bar terakhir yang selesai harus kurang dari -50).
Posisi short harus ditutup jika indikator CCI telah melintasi level kritis -80 ke atas atau melintasi level kritis 80 ke bawah.
//+------------------------------------------------------------------+ //| Memeriksa kondisi untuk masuk dan keluar dari pasar | //| 1) Masuk pasar (buka posisi long, hasil=80) | //| 2) Keluar pasar (tutup posisi short, hasil=40) | //+------------------------------------------------------------------+ int CBC_WS_CCI::LongCondition() { int result=0; //--- idx dapat digunakan untuk menentukan mode kerja Expert Advisor //--- idx=0 - dalam hal ini EA memeriksa kondisi trading di setiap tick //--- idx=1 - dalam hal ini EA memeriksa kondisi trading hanya pada bar berita int idx =StartIndex(); //--- memeriksa kondisi untuk membuka posisi long //--- pembentukan pola 3 White Soldiers dan CCI<-50 if(CheckCandlestickPattern(CANDLE_PATTERN_THREE_WHITE_SOLDIERS) && (CCI(1)<-50)) result=80; //--- memeriksa kondisi untuk menutup posisi short //--- crossover garis sinyal pada level overbought/oversold (ke bawah -80, ke bawah -80) if(((CCI(1)>-80) && (CCI(2)<-80)) || ((CCI(1)<80) && (CCI(2)>80))) result=40; //--- kembalikan hasil return(result); }
2.2. Membuka Posisi Short/Menutup Posisi Long
Pembentukan pola "3 White Soldiers" harus dikonfirmasi oleh indikator CCI: CCI(1)>50 (nilai CCI indikator dari bar terakhir yang selesai harus lebih besar dari 50).
Posisi long harus ditutup jika indikator CCI telah melintasi ke bawah level -80 atau 80.
//+------------------------------------------------------------------+ //| Memeriksa kondisi untuk masuk dan keluar dari pasar | //| 1) Masuk pasar (buka posisi short, hasil=80) | //| 2) Keluar pasar (tutup posisi long, hasil=40) | //+------------------------------------------------------------------+ int CBC_WS_CCI::ShortCondition() { int result=0; //--- idx dapat digunakan untuk menentukan mode kerja Expert Advisor //--- idx=0 - dalam hal ini EA memeriksa kondisi trading di setiap tick //--- idx=1 - dalam hal ini EA memeriksa kondisi trading hanya pada bar berita int idx =StartIndex(); //--- memeriksa kondisi untuk membuka posisi short //--- pembentukan pola 3 Black Crows dan CCI>50 if(CheckCandlestickPattern(CANDLE_PATTERN_THREE_BLACK_CROWS) && (CCI(1)>50)) result=80; //--- memeriksa kondisi untuk menutup posisi long //--- crossover garis sinyal pada level overbought/oversold (ke bawah -80, ke bawah 80) if(((CCI(1)<80) && (CCI(2)>80)) || ((CCI(1)<-80) && (CCI(2)>-80))) result=40; //--- kembalikan hasil return(result); }
2.3. Membuat Expert Advisor Menggunakan MQL5 Wizard
Kelas CBC_WS_CCI tidak termasuk dalam kelas Perpustakaan Standar, untuk menggunakannya, Anda perlu mengunduh file acbc_ws_cci.mqh (lihat lampiran) dan menyimpannya di folder client_terminal_data\MQL5\Include\Expert\Signal\MySignals. Hal yang sama harus dilakukan dengan file candlepatterns.mqh. Anda dapat menggunakannya di MQL5 Wizard setelah restart MetaEditor.
Untuk membuat Expert Advisor, luncurkan MQL5 Wizard:

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

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

Fig. 6. Properti Sinyal dari Expert Advisor
Dalam kasus kita, kita hanya menggunakan satu modul sinyal trading.
Menambahkan modul "Sinyal Berdasarkan 3 Black Crows/3 White Soldiers yang Dikonfirmasi oleh CCI":

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

Fig. 8. Properti Sinyal dari Expert Advisor
Anda dapat memilih properti trailing mana pun, tetapi kita akan menggunakan "Trailing Stop tidak digunakan":

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

Fig. 10. Properti Manajemen Uang dari Expert Advisor
Dengan menekan tombol "Selesai", kita akan mendapatkan kode dari Expert Advisor yang dihasilkan, yang terletak di Expert_ABC_WS_CCI.mq5, dan akan disimpan di 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 menentukan nilai tetap dari 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 rata-rata "suara". Dalam kasus kita, kita memiliki: modul utama + 1 modul sinyal trading, jadi kita perlu memperhitungkan fakta ini saat menetapkan nilai ambang. Karena fakta ini, ThresholdOpen dan ThresholdClose harus diatur 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
Kita akan mempertimbangkan backtesting Expert Advisor pada data historis (EURUSD H1, periode pengujian: 2010.01.01-2011.03.16, PeriodCCI=37, MA_period=13).
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 3 Black Crows/3 White Soldiers + CCI
Set parameter input terbaik dapat ditemukan menggunakan Strategy Tester dari terminal klien MetaTrader 5.
Kode dari Expert Advisor yang dibuat oleh MQL5 Wizard dilampirkan dalam expert_abc_ws_cci.mq5.
Postingan terkait
- MQL5 Wizard: Mengoptimalkan Sinyal Perdagangan dengan Morning/Evening Stars dan MFI
- Menggunakan MQL5 Wizard untuk Sinyal Trading Berdasarkan Pola Candlestick dan CCI
- MQL5 Wizard: Membuat EA dengan Sinyal Trading Berdasarkan Pola Morning/Evening Stars dan Stochastic
- MQL5 Wizard: Ciptakan Sinya Trading Berdasarkan Bullish Harami/Bearish Harami dan CCI
- MQL5 Wizard: Membuat EA Berdasarkan Pola 3 Black Crows/3 White Soldiers dan Stochastic