Beranda Perdagangan Sistem Postingan

Menggunakan MQL5 Wizard untuk Sinyal Perdagangan: Pola Hammer/Hanging Man dan RSI

Lampiran
317.zip (6.47 KB, Unduh 0 kali)

MQL5 Wizard adalah alat yang luar biasa untuk membuat Expert Advisors siap pakai berdasarkan kelas dari Standard Library yang disertakan dengan terminal klien. Dengan MQL5 Wizard, kita bisa dengan cepat menguji ide perdagangan kita hanya dengan membuat kelas sinyal perdagangan kita sendiri. Struktur dari kelas ini dan contoh penggunaannya bisa kita temukan dalam artikel MQL5 Wizard: Cara Membuat Modul Sinyal Perdagangan.

Konsep dasarnya adalah: kelas sinyal perdagangan diturunkan dari CExpertSignal. Selanjutnya, kita perlu menimpa metode virtual LongCondition() dan ShortCondition() dengan metode kita sendiri.

Ada sebuah buku berjudul "Strategi Trader Terbaik" (dalam bahasa Rusia) yang membahas banyak strategi perdagangan. 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 mengkonfirmasi sinyal perdagangan yang dihasilkan oleh pola candlestick, cukup buat kelas baru yang diturunkan dari CCandlePattern dan tambahkan fitur yang diperlukan (misalnya, konfirmasi oleh osilator).

Di sini, kita akan membahas sinyal yang berdasarkan pola candlestick pembalikan "Hammer/Hanging Man" yang dikonfirmasi oleh indikator CCI. Modul sinyal perdagangan ini didasarkan pada kelas CCandlePattern, yang merupakan contoh sederhana penggunaannya untuk membuat sinyal perdagangan menggunakan pola candlestick.

1. Pola Candlestick Pembalikan "Hammer" dan "Hanging Man"

1.1. Hammer

"Hammer" adalah candlestick dengan badan kecil dan sumbu bawah yang panjang, terbentuk setelah pergerakan harga turun. Pola "Hammer" menandakan akhir dari tren bearish.

Warna badan candlestick tidak terlalu penting, tetapi hammer bullish menunjukkan potensi bullish yang lebih tinggi. Badan dari pola "Hammer" sering terbentuk dekat dengan minimum candlestick sebelumnya. Sumbu bawah yang lebih panjang dan sumbu atas yang lebih pendek memberikan potensi yang lebih tinggi untuk pembalikan pola.

Pola Candlestick Hammer

Pola Candlestick Hammer

Pengakuan pola "Hammer" diimplementasikan dalam metode CheckPatternHammer() dari kelas CCandlePattern:

//+------------------------------------------------------------------+
//| Memeriksa pembentukan pola "Hammer" candlestick |
//+------------------------------------------------------------------+
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)2)) && (Open(1)2)))
   return(true);
//---
   return(false);
  }

Metode 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" menandakan akhir dari tren bullish.

Warna badan candlestick tidak terlalu penting, tetapi candle bearish menunjukkan potensi bearish yang lebih tinggi. Badan dari pola "Hanging Man" sering terbentuk dekat dengan maksimum candlestick sebelumnya. Sumbu bawah yang lebih panjang dan sumbu atas yang lebih pendek memberikan potensi yang lebih tinggi untuk pembalikan pola.

Pola Candlestick Hanging Man

Pola Candlestick Hanging Man

Pengakuan pola "Hanging Man" diimplementasikan dalam metode CheckPatternHangingMan() dari kelas CCandlePattern:

//+------------------------------------------------------------------+
//| Memeriksa pembentukan pola "Hanging Man" candlestick |
//+------------------------------------------------------------------+
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)))
   return(true);
//---
   return(false);
  }

Metode CheckCandlestickPattern(CANDLE_PATTERN_HANGING_MAN) dari kelas CCandlePattern digunakan untuk memeriksa pembentukan pola "Hanging Man".



2. Sinyal Perdagangan yang Dikonfirmasi oleh Indikator RSI

Sinyal perdagangan 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 bisa 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)

Pola Harami yang Dikonfirmasi oleh Indikator RSI

Pola Harami yang Dikonfirmasi oleh Indikator RSI


  • int CH_HM_RSI::LongCondition() - memeriksa kondisi untuk membuka posisi long (mengembalikan 80) dan menutup posisi short (mengembalikan 40);
  • int CH_HM_RSI::ShortCondition() - memeriksa kondisi untuk membuka posisi short (mengembalikan 80) dan menutup posisi long (mengembalikan 40).

2.1. Membuka Posisi Long/Menutup Posisi Short

  1. Pembentukan pola "Hammer" harus dikonfirmasi oleh indikator RSI: RSI(1)<40 (nilai RSI dari bar yang telah selesai terakhir harus kurang dari 40).

  2. Posisi short harus ditutup jika RSI telah melintasi level kritis 70 atau 30 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_RSI::LongCondition()
  {
   int result=0;
//--- idx dapat digunakan untuk menentukan mode kerja Expert Advisor
//--- idx=0 - dalam hal ini EA memeriksa kondisi perdagangan pada setiap tick
//--- idx=1 - dalam hal ini EA memeriksa kondisi perdagangan hanya pada bar berita
  int idx   =StartIndex();
//--- memeriksa kondisi untuk membuka posisi long
//--- pembentukan pola Hammer dan RSI<30
  if(CheckCandlestickPattern(CANDLE_PATTERN_HAMMER) && (RSI(1)<40))
     result=80;
//--- memeriksa kondisi untuk menutup posisi short
//--- persilangan 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

  1. Pembentukan pola "Hanging Man" harus dikonfirmasi oleh indikator RSI: RSI(1)>60 (nilai indikator RSI dari bar yang telah selesai terakhir harus lebih dari 60).

  2. Posisi long harus ditutup jika RSI telah melintasi level kritis 70 atau 30 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_RSI::ShortCondition()
  {
   int result=0;
//--- idx dapat digunakan untuk menentukan mode kerja Expert Advisor
//--- idx=0 - dalam hal ini EA memeriksa kondisi perdagangan pada setiap tick
//--- idx=1 - dalam hal ini EA memeriksa kondisi perdagangan hanya pada bar berita
  int idx   =StartIndex();
//--- memeriksa kondisi untuk membuka posisi short
//--- pembentukan pola Hanging Man dan RSI>60
  if(CheckCandlestickPattern(CANDLE_PATTERN_HANGING_MAN) && (RSI(1)>60))
     result=80;
//--- memeriksa kondisi untuk menutup posisi long
//--- persilangan 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 CH_HM_RSI tidak termasuk dalam kelas Standard Library, untuk menggunakannya, kita perlu mengunduh file ach_hm_rsi.mqh (lihat lampiran) dan menyimpannya di folder client_terminal_data\MQL5\Include\Expert\Signal\MySignals. Hal yang sama juga perlu dilakukan dengan file candlepatterns.mqh. Setelah itu, kita bisa menggunakannya di MQL5 Wizard setelah me-restart MetaEditor.

Untuk membuat Expert Advisor, jalankan MQL5 Wizard:

Membuat Expert Advisor Menggunakan MQL5 Wizard

Membuat Expert Advisor Menggunakan MQL5 Wizard

Mari kita tentukan nama Expert Advisor:

Properti Umum Expert Advisor

Properti Umum Expert Advisor

Setelah itu, kita perlu memilih modul sinyal perdagangan yang digunakan.

Properti Sinyal Expert Advisor

Properti Sinyal Expert Advisor

Dalam kasus kita, kita menggunakan hanya satu modul sinyal perdagangan.

Menambahkan modul Sinyal berdasarkan Hammer/Hanging Man yang dikonfirmasi oleh RSI:

Properti Sinyal Expert Advisor

Properti Sinyal Expert Advisor

Modul sinyal perdagangan telah ditambahkan:

Properti Sinyal Expert Advisor

Properti Sinyal Expert Advisor

Anda dapat memilih properti trailing apa pun, tetapi kita akan menggunakan "Trailing Stop tidak digunakan":

Properti Trailing Expert Advisor

Properti Trailing Expert Advisor

Mengenai properti manajemen uang, kita akan menggunakan "Perdagangan dengan volume tetap":

Properti Manajemen Uang Expert Advisor

Properti Manajemen Uang Expert Advisor

Dengan menekan tombol "Selesai", kita akan mendapatkan kode dari Expert Advisor yang dihasilkan, yang terletak di Expert_AH_HM_RSI.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 perdagangan, kami 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 perdagangan. 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 kami, kami memiliki: modul utama + 1 modul sinyal perdagangan, jadi kita perlu memperhitungkan fakta ini saat menetapkan nilai ambang. Karena fakta ini, ThresholdOpen dan ThresholdClose harus ditetapkan sebagai 40=(0+80)/2 dan 20=(0+40)/2.

Nilai parameter input Signal_StopLevel dan Signal_TakeLevel diatur ke 0, yang berarti bahwa penutupan posisi hanya akan dilakukan ketika kondisi penutupan benar.


2.4. Hasil Backtesting Sejarah

Mari kita lihat backtesting Expert Advisor ini pada data historis (EURUSD H1, periode pengujian: 2010.01.01-2011.03.03, PeriodRSI=33, MA_period=2).

Dalam pembuatan Expert Advisor, kami menggunakan volume tetap (Trading Fixed Lot, 0.1), algoritma Trailing Stop tidak digunakan (Trailing tidak digunakan).

Hasil Pengujian Expert Advisor, berdasarkan Hammer/Hanging Man + RSI

Hasil Pengujian Expert Advisor, berdasarkan Hammer/Hanging Man + RSI


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_rsi.mq5.


Postingan terkait

Komentar (0)