MQL5 Wizard adalah alat yang sangat berguna untuk trader yang ingin membuat Expert Advisor (EA) dengan cepat. Dengan menggunakan MQL5 Wizard, Anda dapat menciptakan EA yang sudah jadi berdasarkan kelas Perpustakaan Standar yang disertakan dalam terminal klien MetaTrader 5. Ini sangat memudahkan untuk mengecek ide trading Anda dengan cepat, dan yang Anda perlukan hanyalah membuat kelas sinyal trading sendiri. Struktur kelas ini dan contohnya dapat Anda temukan di artikel MQL5 Wizard: Cara Membuat Modul Sinyal Trading.
Konsep dasarnya adalah kelas sinyal trading diturunkan dari CExpertSignal. Selanjutnya, Anda perlu mengoverride metode virtual LongCondition() dan ShortCondition() dengan metode Anda sendiri.
Ada sebuah buku berjudul "Strategi Trader Terbaik" (dalam bahasa Rusia), yang membahas banyak strategi trading, di sini kita akan fokus pada pola candlestick pembalikan, yang dikonfirmasi oleh Stochastic, CCI, MFI, dan RSI.
Cara terbaik adalah membuat kelas terpisah yang diturunkan dari CExpertSignal untuk memeriksa pembentukan pola candlestick. Untuk mengonfirmasi sinyal trading yang dihasilkan oleh pola candlestick, cukup menulis kelas yang diturunkan dari CCandlePattern dan menambahkan fitur yang diperlukan (misalnya, konfirmasi oleh osilator).
Di sini kita akan membahas sinyal yang berdasarkan pola candlestick "Hammer/Hanging Man" yang dikonfirmasi oleh indikator Stochastic. Modul sinyal trading ini didasarkan pada kelas CCandlePattern, yang merupakan contoh sederhana penggunaannya untuk menciptakan sinyal trading dengan pola candlestick.
1. Pola Candlestick "Hammer" dan "Hanging Man"
1.1. Hammer
"Hammer" adalah candlestick dengan badan kecil dan sumbu bawah yang panjang, terbentuk setelah pergerakan harga menurun. Pola "Hammer" menunjukkan akhir dari tren bearish.
Warna badan candlestick tidak terlalu penting, tetapi hammer bullish menunjukkan potensi bullish yang lebih tinggi. Badan pola "Hammer" biasanya terbentuk dekat dengan minimum candle sebelumnya. Sumbu bawah yang lebih panjang dan sumbu atas yang lebih pendek mengarah pada potensi pembalikan yang lebih tinggi.

Gambar 1. Pola Candlestick "Hammer"
Pengenalan pola "Hammer" diimplementasikan dalam metode CheckPatternHammer() dari kelas CCandlePattern:
//+------------------------------------------------------------------+ //| Memeriksa pembentukan pola candlestick "Hammer" | //+------------------------------------------------------------------+ bool CCandlePattern::CheckPatternHammer() { //--- Hammer if((MidPoint(1)<CloseAvg(2)) && // tren turun (MathMin(Open(1),Close(1))>(High(1)-(High(1)-Low(1))/3.0)) && // badan di 1/3 atas (Close(1)<Close(2)) && (Open(1)<Open(2))) // celah badan return(true); //--- return(false); }
Pola CheckCandlestickPattern(CANDLE_PATTERN_HAMMER) dari kelas CCandlePattern digunakan untuk memeriksa pembentukan pola "Hammer".
1.2. Hanging Man
"Hanging Man" adalah candlestick dengan badan kecil dan sumbu bawah yang panjang, terbentuk setelah pergerakan harga naik. Pola "Hanging Man" menunjukkan akhir dari tren bullish.
Warna badan candlestick juga tidak terlalu penting, tetapi candle bearish menunjukkan potensi bearish yang lebih tinggi. Badan pola "Hanging Man" biasanya terbentuk dekat dengan maksimum candle sebelumnya. Sumbu bawah yang lebih panjang dan sumbu atas yang lebih pendek mengarah pada potensi pembalikan yang lebih tinggi.

Gambar 2. Pola Candlestick "Hanging Man"
Pengenalan pola "Hanging Man" diimplementasikan dalam metode CheckPatternHangingMan() dari kelas CCandlePattern:
//+------------------------------------------------------------------+ //| Memeriksa pembentukan pola candlestick "Hanging Man" | //+------------------------------------------------------------------+ bool CCandlePattern::CheckPatternHangingMan() { //--- Hanging Man if((MidPoint(1)>CloseAvg(2)) && // tren naik (MathMin(Open(1),Close(1)>(High(1)-(High(1)-Low(1))/3.0)) && // badan di 1/3 atas (Close(1)>Close(2)) && (Open(1)>Open(2)))) // celah badan return(true); //--- return(false); }
Pola CheckCandlestickPattern(CANDLE_PATTERN_HANGING_MAN) dari kelas CCandlePattern digunakan untuk memeriksa pembentukan pola "Hanging Man".
2. Sinyal Trading yang Dikonfirmasi oleh Indikator Stochastic
Sinyal trading untuk membuka posisi long atau short harus dikonfirmasi oleh osilator Stochastic. Garis %D harus lebih besar/kecil dari level kritis yang sesuai (30 atau 70).
Penutupan posisi terbuka tergantung pada nilai indikator %D. Ini dapat dilakukan dalam 2 kasus:
- jika garis %D telah mencapai level kritis yang berlawanan (80 untuk posisi long dan 20 untuk posisi short)
- jika sinyal pembalikan tidak dikonfirmasi (ketika garis %D mencapai level berikut: 20 untuk posisi long dan 80 untuk posisi short)

Gambar 3. Pola "Hammer" yang Dikonfirmasi oleh Indikator Stochastic
- int CH_HM_Stoch::LongCondition() - memeriksa kondisi untuk membuka posisi long (mengembalikan 80) dan menutup posisi short (mengembalikan 40);
- int CH_HM_Stoch::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 "Hammer" harus dikonfirmasi oleh Indikator Stochastic: StochSignal(1)<30 (nilai garis sinyal dari indikator Stochastic pada bar terakhir yang selesai harus kurang dari 30).
Posisi short harus ditutup jika garis sinyal dari Indikator Stochastic telah melintasi level 20 atau 80 ke atas.
//+------------------------------------------------------------------+ //| Memeriksa kondisi untuk masuk dan keluar dari pasar | //| 1) Masuk pasar (membuka posisi long, hasil=80) | //| 2) Keluar pasar (menutup posisi short, hasil=40) | //+------------------------------------------------------------------+ int CH_HM_Stoch::LongCondition() { int result=0; //--- idx dapat digunakan untuk menentukan mode kerja Expert Advisor //--- idx=0 - dalam hal ini EA memeriksa kondisi trading pada 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 Hammer dan garis sinyal<30 if (CheckCandlestickPattern(CANDLE_PATTERN_HAMMER) && (StochSignal(1)<30)) result=80; //--- memeriksa kondisi untuk menutup posisi short //--- silang garis sinyal dari level overbought/oversold (turun 20, naik 80) if((((StochSignal(1)>20) && (StochSignal(2)<20)) || ((StochSignal(1)>80) && (StochSignal(2)<80)))) result=40; //--- mengembalikan hasil return(result); }
2.2. Membuka Posisi Short/Menutup Posisi Long
Pembentukan pola "Hanging Man" harus dikonfirmasi oleh Indikator Stochastic: StochSignal(1)>70 (nilai garis sinyal dari indikator Stochastic pada bar terakhir yang selesai harus lebih besar dari 70).
Posisi long harus ditutup jika garis sinyal dari Indikator Stochastic telah melintasi level 80 atau 20 ke bawah.
//+------------------------------------------------------------------+ //| Memeriksa kondisi untuk masuk dan keluar dari pasar | //| 1) Masuk pasar (membuka posisi short, hasil=80) | //| 2) Keluar pasar (menutup posisi long, hasil=40) | //+------------------------------------------------------------------+ int CH_HM_Stoch::ShortCondition() { int result=0; //--- idx dapat digunakan untuk menentukan mode kerja Expert Advisor //--- idx=0 - dalam hal ini EA memeriksa kondisi trading pada 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 Hanging Man dan garis sinyal>70 if (CheckCandlestickPattern(CANDLE_PATTERN_HANGING_MAN) && (StochSignal(1)>70)) result=80; //--- memeriksa kondisi untuk menutup posisi long //--- silang garis sinyal dari level overbought/oversold (turun 80, naik 20) if((((StochSignal(1)<80) && (StochSignal(2)>80)) || ((StochSignal(1)<20) && (StochSignal(2)>20)))) result=40; //--- mengembalikan hasil return(result); }
2.3. Membuat Expert Advisor Menggunakan MQL5 Wizard
Kelas CH_HM_Stoch tidak termasuk dalam kelas Perpustakaan Standar, untuk menggunakannya, Anda perlu mengunduh file ach_hm_stoch.mqh (lihat lampiran) dan menyimpannya di terminal_klien_data\folder\MQL5\Include\Expert\Signal\MySignals. Hal yang sama harus dilakukan dengan file candlepatterns.mqh. Anda dapat menggunakannya di MQL5 Wizard setelah me-restart MetaEditor.
Untuk membuat Expert Advisor, jalankan MQL5 Wizard:

Gambar 4. Membuat Expert Advisor menggunakan MQL5 Wizard
Mari kita tentukan nama Expert Advisor:

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

Gambar 6. Properti Sinyal Expert Advisor
Dalam kasus kita, kita hanya menggunakan satu modul sinyal trading.
Menambahkan modul Sinyal berdasarkan Hammer/Hanging Man yang Dikonfirmasi oleh Stochastic:

Gambar 7. Properti Sinyal Expert Advisor
Modul sinyal trading ditambahkan:

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

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

Gambar 10. Properti Manajemen Uang Expert Advisor
Dengan menekan tombol "Selesai", kita akan mendapatkan kode Expert Advisor yang dihasilkan, yang terletak di Expert_AH_HM_Stoch.mq5, dan 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 dengan:
//--- 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 untuk 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() dari modul ini 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 mengatur nilai ambang. Karena fakta ini, ThresholdOpen dan ThresholdClose harus diatur menjadi 40=(0+80)/2 dan 20=(0+40)/2.
Nilai parameter input Signal_StopLevel dan Signal_TakeLevel diatur ke 0, artinya penutupan posisi hanya akan dilakukan ketika kondisi penutupan benar.
2.4. Hasil Backtesting Sejarah
Mari kita lihat backtesting dari Expert Advisor pada data historis (EURUSD H1, periode pengujian: 2010.01.01-2011.03.04, PeriodK=47, PeriodD=9, PeriodSlow=13, MA_period=5).
Dalam pembuatan Expert Advisor, kita menggunakan volume tetap (Trading Fixed Lot, 0.1), algoritma Trailing Stop tidak digunakan (Trailing tidak digunakan).

Gambar 11. Hasil Pengujian Expert Advisor, berdasarkan Hammer/Hanging Man + Stochastic
Set parameter input terbaik dapat ditemukan menggunakan Strategy Tester dari terminal klien MetaTrader 5.
Kode Expert Advisor yang dibuat oleh MQL5 Wizard terlampir dalam expert_ah_hm_stoch.mq5.
Postingan terkait
- MQL5 Wizard: Membuat EA dengan Sinyal Trading Berdasarkan Pola Morning/Evening Stars dan Stochastic
- Membuat Expert Advisor Menggunakan MQL5 Wizard: Sinyal Perdagangan dari Bullish dan Bearish Engulfing dengan Stochastic
- MQL5 Wizard: Mengoptimalkan Sinyal Perdagangan dengan Morning/Evening Stars dan MFI
- MQL5 Wizard: Menggunakan Sinyal Trading Berbasis Morning/Evening Stars dan RSI untuk MetaTrader 5
- MQL5 Wizard: Ciptakan Sinyal Trading dengan Bullish/Bearish Engulfing dan RSI