Beranda Perdagangan Sistem Postingan

Mengenal MQL5 Wizard: Menggunakan Sinyal Bullish Harami/Bearish Harami dan RSI untuk Trading

Lampiran
313.zip (6.47 KB, Unduh 1 kali)

MQL5 Wizard adalah alat yang sangat berguna untuk para trader yang ingin membuat Expert Advisor (EA) dengan mudah. Dengan MQL5 Wizard, kamu bisa membuat EA berdasarkan kelas perpustakaan standar yang sudah disediakan. Alat ini memungkinkan kamu untuk menguji ide trading dengan cepat, cukup dengan membuat kelas sinyal trading sendiri. Struktur dan contoh kelas ini bisa kamu temukan di artikel MQL5 Wizard: Cara Membuat Modul Sinyal Trading.

Dasar dari ide ini adalah kelas sinyal trading yang diturunkan dari CExpertSignal. Selanjutnya, kamu perlu mengoverride metode LongCondition() dan ShortCondition() dengan metode kamu sendiri.

Ada sebuah buku yang berjudul "Strategi Trader Terbaik" (dalam bahasa Rusia) yang membahas banyak strategi trading. Namun, di sini kita akan fokus pada pola candlestick pembalikan, yang dikonfirmasi oleh indikator RSI.

1. Pola Candlestick Bullish Harami dan Bearish Harami

1.1. Bullish Harami

Pola Bullish Harami terbentuk dalam tren menurun ketika candlestick besar diikuti oleh candlestick lebih kecil yang bodynya berada di dalam rentang vertikal bodi yang lebih besar. Pola ini menandakan bahwa tren turun mungkin akan berbalik, sehingga menjadi waktu yang baik untuk masuk posisi long. Candlestick kedua dibuka dengan gap naik.

Pola Candlestick Bullish Harami

Gambar 1. Pola Candlestick Bullish Harami

Pengenalan pola Bullish Harami diterapkan dalam metode CheckPatternBullishHarami() dari kelas CCandlePattern:

//+------------------------------------------------------------------+
//| Memeriksa pembentukan pola candlestick Bullish Harami             |
//+------------------------------------------------------------------+
bool CCandlePattern::CheckPatternBullishHarami()
  {
//--- Bullish Harami
   if((Close(1)>Open(1))              && // bar terakhir bullish
     ((Open(2)-Close(2))>AvgBody(1))  && // candlestick sebelumnya bearish
     ((Close(1)<Open(2))              && // harga penutupan candle bullish lebih rendah dari harga pembukaan candle bearish
      (Open(1)>Close(2)))              && // harga pembukaan candle bullish lebih tinggi dari harga penutupan candle bearish
      (MidPoint(2)<CloseAvg(2)))         // tren turun
      return(true);
//---
   return(false);
  }

Metode CheckCandlestickPattern(CANDLE_PATTERN_BULLISH_HARAMI) dari kelas CCandlePattern digunakan untuk memeriksa pembentukan pola Bullish Harami.

1.2. Bearish Harami

Pola Bearish Harami terbentuk dalam tren naik ketika candlestick besar diikuti oleh candlestick lebih kecil yang bodynya berada di dalam rentang vertikal bodi yang lebih besar. Pola ini menandakan bahwa tren naik mungkin akan berbalik, dan menjadi waktu yang baik untuk masuk posisi short. Candlestick kedua dibuka dengan gap turun.

Pola Candlestick Bearish Harami

Gambar 2. Pola Candlestick Bearish Harami

Pengenalan pola Bearish Harami diterapkan dalam metode CheckPatternBearishHarami() dari kelas CCandlePattern:

//+------------------------------------------------------------------+
//| Memeriksa pembentukan pola candlestick Bearish Harami            |
//+------------------------------------------------------------------+
bool CCandlePattern::CheckPatternBearishHarami()
  {
//--- Bearish Harami
   if((Close(1)<Open(1))              && // bar terakhir bearish
     ((Close(2)-Open(2))>AvgBody(1))  && // candlestick sebelumnya bullish
     ((Close(1)>Open(2))              && // harga penutupan candle bearish lebih tinggi dari harga pembukaan candle bullish
      (Open(1)<Close(2)))              && // harga pembukaan candle bearish lebih rendah dari harga penutupan candle bullish
      (MidPoint(2)>CloseAvg(2)))         // tren naik
      return(true);
//---
   return(false);
  }

Metode CheckCandlestickPattern(CANDLE_PATTERN_BEARISH_HARAMI) dari kelas CCandlePattern digunakan untuk memeriksa pembentukan pola Bearish Harami.

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 terbuka tergantung pada nilai RSI. Penutupan bisa dilakukan dalam 2 kasus:

  • jika RSI telah mencapai level kritis yang berlawanan (70 untuk posisi long dan 30 untuk posisi short)
  • jika sinyal balik tidak terkonfirmasi (ketika RSI mencapai level berikut: 30 untuk posisi long dan 70 untuk posisi short)

Pola Bullish Harami, Dikonfirmasi oleh Indikator RSI

Gambar 3. Pola Bullish Harami, Dikonfirmasi oleh Indikator RSI

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

2.1. Buka Posisi Long/Tutup Posisi Short

  1. Pembentukan pola "Bullish Harami" harus dikonfirmasi oleh indikator RSI: RSI(1)<40 (nilai RSI dari bar yang diselesaikan terakhir harus kurang dari 40).

  2. Posisi short harus ditutup jika indikator RSI telah melewati level kritis 70 atau 30 ke atas.

//+------------------------------------------------------------------+
//| 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 CBH_BH_RSI::LongCondition()
  {
   int result=0;
   //--- idx dapat digunakan untuk menentukan mode kerja Expert Advisor
   //--- idx=0 - EA memeriksa kondisi trading pada setiap tick
   //--- idx=1 - EA memeriksa kondisi trading hanya pada bar berita
   int idx   =StartIndex();
   //--- memeriksa kondisi untuk membuka posisi long
   //--- pembentukan pola Bullish Harami dan RSI<30
  if(CheckCandlestickPattern(CANDLE_PATTERN_BULLISH_HARAMI) && (RSI(1)<40))
     result=80;
   //--- memeriksa kondisi untuk menutup posisi short
   //--- crossover garis sinyal level jenuh beli/jenuh jual (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. Buka Posisi Short/Tutup Posisi Long

  1. Pembentukan pola "Bearish Harami" harus dikonfirmasi oleh indikator RSI: RSI(1)>60 (nilai RSI dari bar yang diselesaikan terakhir harus lebih besar dari 60).

  2. Posisi long harus ditutup jika indikator RSI telah melewati level kritis 70 atau 30 ke bawah.

//+------------------------------------------------------------------+
//| 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 CBH_BH_RSI::ShortCondition()
  {
   int result=0;
   //--- idx dapat digunakan untuk menentukan mode kerja Expert Advisor
   //--- idx=0 - EA memeriksa kondisi trading pada setiap tick
   //--- idx=1 - EA memeriksa kondisi trading hanya pada bar berita
   int idx   =StartIndex();
   //--- memeriksa kondisi untuk membuka posisi short
   //--- pembentukan pola Bearish Harami dan RSI>60
  if(CheckCandlestickPattern(CANDLE_PATTERN_BEARISH_HARAMI) && (RSI(1)>60))
     result=80;
   //--- memeriksa kondisi untuk menutup posisi long
   //--- crossover garis sinyal level jenuh beli/jenuh jual (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 CBH_BH_RSI tidak termasuk dalam kelas Perpustakaan Standar, untuk menggunakannya, kamu perlu mengunduh berkas acml_rsi.mqh (lihat lampiran) dan menyimpannya di folder client_terminal_data\MQL5\Include\Expert\Signal\MySignals. Hal yang sama juga berlaku untuk berkas acandlepatterns.mqh. Kamu bisa menggunakannya di MQL5 Wizard setelah me-restart MetaEditor.

Untuk membuat Expert Advisor, luncurkan MQL5 Wizard:

Membuat Expert Advisor dengan MQL5 Wizard

Gambar 4. Membuat Expert Advisor dengan MQL5 Wizard

Mari kita tentukan nama Expert Advisor:

Properti Umum Expert Advisor

Gambar 5. Properti Umum Expert Advisor

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

Properti Sinyal Expert Advisor

Gambar 6. Properti Sinyal Expert Advisor

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

Menambahkan modul Sinyal Berdasarkan Bullish Harami/Bearish Harami yang Dikonfirmasi oleh RSI:

Properti Sinyal Expert Advisor

Gambar 7. Properti Sinyal Expert Advisor

Modul sinyal trading telah ditambahkan:

Properti Sinyal Expert Advisor

Gambar 8. Properti Sinyal Expert Advisor

Kamu bisa memilih properti trailing, tetapi kita akan menggunakan "Trailing Stop tidak digunakan":

Properti Trailing Expert Advisor

Gambar 9. Properti Trailing Expert Advisor

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

Properti Manajemen Uang Expert Advisor

Gambar 10. Properti Manajemen Uang Expert Advisor

Dengan menekan tombol "Selesai", kita akan mendapatkan kode dari Expert Advisor yang dihasilkan, disimpan di Expert_ABH_BH_RSI.mq5, dan akan disimpan di terminal_data_folder\MQL5\Experts\.

Parameter input default dari Expert Advisor yang dihasilkan:

//--- inputs 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:

//--- inputs 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 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() dari modul utama 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 dari parameter input Signal_StopLevel dan Signal_TakeLevel diatur menjadi 0, yang berarti bahwa penutupan posisi hanya akan dilakukan ketika kondisi penutupan terpenuhi.


2.4. Hasil Backtesting Sejarah

Kita lihat backtesting dari Expert Advisor pada data historis (EURUSD H1, periode pengujian: 2010.01.01-2011.03.11, PeriodRSI=37, MA_period=7).

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

Hasil Pengujian Expert Advisor

Gambar 11. Hasil Pengujian Expert Advisor, berdasarkan Bullish Harami/Bearish Harami + RSI

Set parameter input terbaik bisa ditemukan menggunakan Strategy Tester dari terminal klien MetaTrader 5.

Kode dari Expert Advisor yang dibuat oleh MQL5 Wizard terlampir dalam expert_aml_rsi.mq5.

Postingan terkait

Komentar (0)