Beranda Perdagangan Sistem Postingan

MQL5 Wizard: Menggunakan Sinyal Trading Bullish/Bearish Meeting Lines dengan MFI

Lampiran
320.zip (6.46 KB, Unduh 1 kali)

MQL5 Wizard adalah alat yang sangat berguna bagi kita yang ingin membuat Expert Advisor (EA) siap pakai berdasarkan perpustakaan standar yang disediakan bersama terminal klien MetaTrader 5. Dengan MQL5 Wizard, kita bisa dengan cepat mengecek ide trading kita hanya dengan membuat kelas sinyal trading kita sendiri. Struktur kelas ini dan contohnya dapat ditemukan di artikel MQL5 Wizard: Cara Membuat Modul Sinyal Trading.

Dasar dari ide ini adalah kelas sinyal trading yang 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 trading, dan 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, kita cukup menulis kelas yang diturunkan dari CCandlePattern dan menambahkan fitur yang diperlukan (misalnya, konfirmasi oleh osilator).

Berikut ini kita akan membahas sinyal yang didasarkan pada pola candlestick pembalikan "Bullish/Bearish Meeting Lines" yang dikonfirmasi oleh indikator MFI (Market Facilitation Index). Modul sinyal trading ini didasarkan pada kelas CCandlePattern, yang merupakan contoh sederhana penggunaannya untuk membuat sinyal trading dengan pola candlestick.


1. Pola Candlestick "Meeting Lines" Pembalikan

1.1. Bullish Meeting Lines

Pola ini terdiri dari dua candlestick (bearish dan bullish) dengan harga penutupan yang sama (atau sangat dekat). Badan dari kedua candlestick harus lebih besar dari panjang badan rata-rata.

Pola "Bullish Meeting Lines" menunjukkan pembalikan dari tren menurun.

Pola Bullish Meeting Lines

Pola "Bullish Meeting Lines".

Pola "Bullish Meeting Lines" dapat dikenali dalam metode CheckPatternBullishMeetingLines() dari kelas CCandlePattern:

//+--------------------------------------------------------------------+
//| Memeriksa pembentukan pola "Bullish Meeting Lines"              |
//+--------------------------------------------------------------------+
bool CCandlePattern::CheckPatternBullishMeetingLines()
  {
//--- Bullish Meeting Lines
   if((Open(2)-Close(2)>AvgBody(1))              && // candle hitam panjang
     ((Close(1)-Open(1))>AvgBody(1))             && // candle putih panjang
      (MathAbs(Close(1)-Close(2))<0.1*AvgBody(1)))   // doji penutupan
      return(true);
//---
   return(false);
  }

Metode CheckCandlestickPattern(CANDLE_PATTERN_BULLISH_MEETING_LINES) dari kelas CCandlePattern digunakan untuk memeriksa pembentukan pola "Bullish Meeting Lines".


1.2. Bearish Meeting Lines

Pola ini terdiri dari dua candlestick (bullish dan bearish) dengan harga penutupan yang sama (atau sangat dekat). Badan dari kedua candlestick harus lebih besar dari panjang badan rata-rata.

Pola "Bearish Meeting Lines" menunjukkan pembalikan dari tren naik.

Pola Bearish Meeting Lines

Pola "Bearish Meeting Lines".

Pola "Bearish Meeting Lines" dapat dikenali dalam metode CheckPatternBearishMeetingLines() dari kelas CCandlePattern:

//+--------------------------------------------------------------------+
//| Memeriksa pembentukan pola "Bearish Meeting Lines"              |
//+--------------------------------------------------------------------+
bool CCandlePattern::CheckPatternBearishMeetingLines()
  {
//--- Bearish Meeting Lines
   if((Close(2)-Open(2)>AvgBody(1))             && // candle putih panjang
     ((Open(1)-Close(1)>AvgBody(1))             && // candle hitam panjang
      (MathAbs(Close(1)-Close(2))<0.1*AvgBody(1)))  // doji penutupan
      return(true);
//---
   return(false);
  }

Metode CheckCandlestickPattern(CANDLE_PATTERN_BEARISH_MEETING_LINES) dari kelas CCandlePattern digunakan untuk memeriksa pembentukan pola "Bearish Meeting Lines".


2. Sinyal Trading yang Dikonfirmasi oleh Indikator MFI

Sinyal trading untuk membuka posisi long atau short harus dikonfirmasi oleh indikator MFI. Nilai indikator MFI harus di bawah 40 (untuk posisi long) atau di atas 60 (untuk posisi short).

Penutupan posisi yang dibuka tergantung pada nilai indikator MFI. Ini dapat dilakukan dalam 2 kasus:

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

Pola Bearish Meeting Lines yang Dikonfirmasi oleh Indikator MFI

Pola "Bearish Meeting Lines" yang Dikonfirmasi oleh Indikator MFI.


  • int CML_MFI::LongCondition() - memeriksa kondisi untuk membuka posisi long (mengembalikan 80) dan menutup posisi short (mengembalikan 40);
  • int CML_MFI::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 "Bullish Meeting Lines" harus dikonfirmasi oleh indikator MFI: MFi(1)<40 (nilai indikator MFI dari bar terakhir yang selesai harus kurang dari 40).

  2. Posisi short harus ditutup jika indikator MFI telah melintasi ke atas level kritis (70 atau 30).

//+------------------------------------------------------------------+
//| 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 CML_MFI::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 hanya memeriksa kondisi trading pada bar berita
  int idx   =StartIndex();
//--- memeriksa kondisi untuk membuka posisi long
//--- pembentukan pola Bullish Meeting Lines dan MFI<40
  if(CheckCandlestickPattern(CANDLE_PATTERN_BULLISH_MEETING_LINES) && (MFI(1)<40))
     result=80;
//--- memeriksa kondisi untuk menutup posisi short
//--- crossover garis sinyal level overbought/oversold (ke atas 30, ke atas 70)
  if(((MFI(1)>30) && (MFI(2)<30)) || ((MFI(1)>70) && (MFI(2)<70)))
     result=40;
//--- mengembalikan hasil
   return(result);
  }


2.2. Membuka Posisi Short/Menutup Posisi Long

  1. Pembentukan pola "Bearish Meeting Lines" harus dikonfirmasi oleh indikator MFI: MFI(1)>60 (nilai indikator MFI dari bar terakhir yang selesai harus lebih dari 60).

  2. Posisi long harus ditutup jika indikator MFI telah melintasi ke atas/bawah level kritis (70 atau 30).

//+------------------------------------------------------------------+
//| 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 CML_MFI::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 hanya memeriksa kondisi trading pada bar berita
  int idx   =StartIndex();
//--- memeriksa kondisi untuk membuka posisi short
//--- pembentukan pola Bearish Meeting Lines dan MFI>60
  if(CheckCandlestickPattern(CANDLE_PATTERN_BEARISH_MEETING_LINES) && (MFI(1)>60))
     result=80;
//--- memeriksa kondisi untuk menutup posisi long
//--- crossover garis sinyal level overbought/oversold (ke atas 70, ke bawah 30)
   if(((MFI(1)>70) && (MFI(2)<70)) || ((MFI(1)<30) && (MFI(2)>30)))
     result=40;
//--- mengembalikan hasil
   return(result);
  }


2.3. Membuat Expert Advisor Menggunakan MQL5 Wizard

Kelas CML_MFI tidak termasuk dalam kelas perpustakaan standar, untuk menggunakannya, kita perlu mengunduh file aml_mfi.mqh (lihat lampiran) dan menyimpannya di client_terminal_data\folder\MQL5\Include\Expert\Signal\MySignals. Hal yang sama juga perlu dilakukan dengan file acandlepatterns.mqh. Kita bisa menggunakannya di MQL5 Wizard setelah merestart 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 trading yang digunakan.

Properti Sinyal Expert Advisor

Properti Sinyal Expert Advisor.

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

Menambahkan modul Sinyal berdasarkan Bullish/Bearish Meeting Lines oleh MFI:

Properti Sinyal Expert Advisor

Properti Sinyal Expert Advisor.

Modul sinyal trading ditambahkan:

Properti Sinyal Expert Advisor

Properti Sinyal Expert Advisor.

Kita bisa 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 "Trading dengan volume perdagangan 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_AML_MFI.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;    // 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 kita 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:

  • Membuka posisi: 80;
  • Menutup 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, yang 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 mempertimbangkan hal ini ketika mengatur nilai ambang. Karena alasan 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, yang berarti bahwa penutupan posisi hanya akan dilakukan ketika kondisi penutupan benar.


2.4. Hasil Uji Balik Sejarah

Mari kita lihat pengujian balik dari Expert Advisor pada data historis (EURUSD H1, periode pengujian: 2000.01.01-2011.03.16, PeriodMFI=12, MA_period=4).

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, berdasarkan Bullish/Bearish Meeting Lines + MFI

Hasil Pengujian Expert Advisor, berdasarkan Bullish/Bearish Meeting Lines + MFI.


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

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


Postingan terkait

Komentar (0)