Beranda Perdagangan Sistem Postingan

MQL5 Wizard: Membuat EA Berdasarkan Pola 3 Black Crows/3 White Soldiers dan Stochastic

Lampiran
283.zip (6.6 KB, Unduh 0 kali)

Apakah kamu tahu bahwa MQL5 Wizard memungkinkanmu untuk membuat Expert Advisor (EA) yang siap pakai? Dengan menggunakan kelas dari Standard Library yang disediakan bersama terminal klien, kamu bisa mengecek ide tradingmu dengan cepat! Semua yang kamu butuhkan adalah membuat kelas sinyal tradingmu sendiri. Struktur kelas ini beserta contohnya dapat kamu temukan di artikel MQL5 Wizard: Cara Membuat Modul Sinyal Trading.

Ide umumnya adalah: kelas sinyal trading diturunkan dari CExpertSignal, lalu kamu perlu menimpa metode LongCondition() dan ShortCondition() dengan metode yang kamu buat sendiri.

Mungkin kamu sudah mendengar tentang buku "Strategi Trader Terbaik" (dalam bahasa Rusia) yang membahas banyak strategi trading. 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 trading yang dihasilkan oleh pola candlestick, cukup buat kelas yang diturunkan dari CCandlePattern dan tambahkan fitur yang diperlukan (misalnya, konfirmasi oleh osilator).

Di sini kita akan membahas sinyal yang berdasarkan pada pola candlestick pembalikan "3 Black Crows/3 White Soldiers", yang dikonfirmasi oleh indikator Stochastic. 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 uptrend yang sedang berlangsung. Pola ini terdiri dari tiga candlestick dengan badan panjang yang berturut-turut menutup lebih rendah dari hari sebelumnya, dengan setiap sesi buka terjadi di dalam badan candlestick sebelumnya.

Gambar 1. Pola Candlestick '3 Black Crows'

Gambar 1. Pola Candlestick "3 Black Crows"

Penggunaan pola "3 Black Crows" dapat dilakukan dengan metode CheckPatternThreeBlackCrows pada 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))     && // (midpoints lebih rendah)
      (MidPoint(1)<MidPoint(2)))  
      return(true);
//---
   return(false);
  }

Metode CheckCandlestickPattern(CANDLE_PATTERN_THREE_BLACK_CROWS) pada kelas CCandlePattern digunakan untuk memeriksa pembentukan pola "3 Black Crows" candlestick.


1.2. Pola Candlestick 3 White Soldiers

Pola candlestick bullish ini digunakan untuk memprediksi pembalikan dari downtrend yang sedang berlangsung. Pola ini terdiri dari tiga candlestick dengan badan panjang yang berturut-turut menutup lebih tinggi dari hari sebelumnya, dengan setiap sesi buka terjadi di dalam badan candlestick sebelumnya.

Pola ini valid selama candlestick hari kedua membuka di setengah atas rentang hari pertama. Pada akhir hari kedua, ia harus menutup mendekati puncaknya, meninggalkan bayangan atas yang sangat kecil atau tidak ada sama sekali. Pola yang sama kemudian diulang pada hari ketiga.

Gambar 2. Pola Candlestick '3 White Soldiers'

Gambar 2. Pola Candlestick "3 White Soldiers"

Berikut adalah metode untuk mengenali pola "3 White Soldiers":

//+------------------------------------------------------------------+
//| Memeriksa pembentukan pola candlestick "3 White Soldiers" |
//+------------------------------------------------------------------+
bool CCandlePattern::CheckPatternThreeWhiteSoldiers()
  {
   //--- 3 White Soldiers
   if((Close(3)-Open(3)>AvgBody(1)) && // (putih panjang)
      (Close(2)-Open(2)>AvgBody(1)) &&
      (Close(1)-Open(1)>AvgBody(1)) &&
      (MidPoint(2)>MidPoint(3))     && // (midpoints lebih tinggi)
      (MidPoint(1)>MidPoint(2)))
      return(true);
//---
   return(false);
  }

Metode CheckCandlestickPattern(CANDLE_PATTERN_THREE_WHITE_SOLDIERS) pada kelas CCandlePattern digunakan untuk memeriksa pembentukan pola "3 White Soldiers" candlestick.


2. Sinyal Trading yang Dikukuhkan oleh Indikator Stochastic

Sinyal trading untuk membuka posisi long atau short harus dikonfirmasi oleh osilator Stochastic. Garis %D harus lebih besar/kecil dari tingkat kritis yang sesuai (30 atau 70).

Penutupan posisi terbuka bergantung pada nilai indikator %D. Ini dapat dilakukan dalam 2 kasus:

  1. jika garis %D telah mencapai tingkat kritis yang berlawanan (80 untuk posisi long dan 20 untuk posisi short)
  2. jika sinyal pembalikan tidak dikonfirmasi (ketika garis %D mencapai tingkat berikut: 20 untuk posisi long dan 80 untuk posisi short)

Gambar 3. Pola '3 White Soldiers' yang Dikonfirmasi oleh Indikator Stochastic

Gambar 3. Pola "3 White Soldiers" yang Dikonfirmasi oleh Indikator Stochastic

Memeriksa kondisi trading untuk masuk dan keluar dilakukan dalam dua metode:

  • int CBC_WS_Stoch::LongCondition() - memeriksa kondisi untuk membuka posisi long (mengembalikan 80) dan menutup posisi short (mengembalikan 40);
  • int CBC_WS_Stoch::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 "Three White Soldiers" harus dikonfirmasi oleh indikator Stochastic: StochSignal(1)<30 (nilai garis sinyal indikator Stochastic dari bar yang terakhir harus kurang dari 30).

  2. Posisi short harus ditutup jika garis sinyal indikator Stochastic telah melintasi ke atas tingkat 20 atau 80.

//+------------------------------------------------------------------+
//| 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_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 3 White Soldiers dan garis sinyal<30
  if (CheckCandlestickPattern(CANDLE_PATTERN_THREE_WHITE_SOLDIERS) && (StochSignal(1)<30))
     result=80;
//--- memeriksa kondisi untuk menutup posisi short
//--- garis sinyal crossover dari level overbought/oversold (ke bawah 20, ke atas 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

  1. Pembentukan pola "Three Black Crows" harus dikonfirmasi oleh indikator Stochastic: StochSignal(1)>70 (nilai garis sinyal indikator Stochastic dari bar yang terakhir harus lebih dari 70).

  2. Posisi long harus ditutup jika garis sinyal indikator Stochastic telah melintasi ke bawah tingkat 80 atau 20.

//+------------------------------------------------------------------+
//| 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_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 3 Black Crows dan garis sinyal>70
  if (CheckCandlestickPattern(CANDLE_PATTERN_THREE_BLACK_CROWS) && (StochSignal(1)>70))
     result=80;
//--- memeriksa kondisi untuk menutup posisi long
//--- garis sinyal crossover dari level overbought/oversold (ke bawah 80, ke atas 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 CBC_WS_Stoch tidak termasuk dalam kelas Standard Library, jadi untuk menggunakannya, kamu perlu mengunduh file acbc_ws_stoch.mqh (lihat lampiran) dan simpan di folder client_terminal_data\MQL5\Include\Expert\Signal\MySignals. Hal yang sama juga perlu dilakukan dengan file candlepatterns.mqh. Kamu bisa menggunakannya di MQL5 Wizard setelah restart MetaEditor.

Untuk membuat Expert Advisor, jalankan MQL5 Wizard:

Gambar 4. Membuat Expert Advisor menggunakan MQL5 Wizard

Gambar 4. Membuat Expert Advisor menggunakan MQL5 Wizard

Mari kita tentukan nama Expert Advisor:

Gambar 5. Properti Umum dari Expert Advisor

Gambar 5. Properti Umum dari Expert Advisor

Setelah itu kita perlu memilih modul sinyal trading yang digunakan.

Gambar 6. Properti Sinyal dari Expert Advisor

Gambar 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 Stochastic":

Gambar 7. Properti Sinyal dari Expert Advisor

Gambar 7. Properti Sinyal dari Expert Advisor

Modul sinyal trading telah ditambahkan:

Gambar 8. Properti Sinyal dari Expert Advisor

Gambar 8. Properti Sinyal dari Expert Advisor

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

Gambar 9. Properti Trailing dari Expert Advisor

Gambar 9. Properti Trailing dari Expert Advisor

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

Gambar 10. Properti Manajemen Uang dari Expert Advisor

Gambar 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_Stoch.mq5, yang 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;    // Tingkat harga untuk mengeksekusi transaksi
input double         Signal_StopLevel       =50.0;   // Tingkat Stop Loss (dalam poin)
input double         Signal_TakeLevel       =50.0    // Tingkat 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    // Tingkat harga untuk mengeksekusi transaksi
input double         Signal_StopLevel       =0.0    // Tingkat Stop Loss (dalam poin)
input double         Signal_TakeLevel       =0.0    // Tingkat Take Profit (dalam poin)

Parameter input Signal_ThresholdOpen/Signal_ThresholdClose memungkinkan untuk menentukan tingkat 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 kontainer, 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 ada: modul utama + 1 modul sinyal trading, jadi kita perlu mempertimbangkan fakta ini saat menetapkan nilai ambang. Karena fakta ini, ThresholdOpen dan ThresholdClose harus disetel sebagai 40=(0+80)/2 dan 20=(0+40)/2.

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


2.4. Hasil Backtesting Sejarah

Kita akan mempertimbangkan backtesting dari Expert Advisor pada data historis (EURUSD H1, periode pengujian: 2010.01.01-2011.02.02, 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 3 Black Crows/3 White Soldiers + Stochastic

Gambar 11. Hasil Pengujian Expert Advisor, Berdasarkan 3 Black Crows/3 White Soldiers + Stochastic


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

Kode dari Expert Advisor yang dibuat oleh MQL5 Wizard terlampir di expert_abc_ws_stoch.mq5.


Postingan terkait

Komentar (0)