Laman utama Perdagangan Sistem Siaran

MQL5 Wizard: Cipta EA Berdasarkan Isyarat MACD untuk MetaTrader 5

Lampiran
262.zip (3.12 KB, Muat turun 0 kali)

MQL5 Wizard membolehkan anda mencipta System Trading secara automatik tanpa perlu menulis kod. Ini sangat berguna bagi trader yang ingin menggunakan EA tanpa pengetahuan pengaturcaraan yang mendalam.

Dalam artikel ini, kita akan membincangkan tentang isyarat dagangan yang dihasilkan berdasarkan persilangan antara garis utama dan garis isyarat indikator MACD. Strategi ini dikenali sebagai "Isyarat Berdasarkan Persilangan Garis Utama dan Garis Isyarat MACD" yang boleh dicipta secara automatik dalam MQL5 Wizard.

Garis utama indikator MACD dikira sebagai perbezaan antara EMA pantas dan EMA perlahan. Garis isyarat MACD pula adalah garis utama yang telah dilicinkan menggunakan tempoh yang ditetapkan.

Isyarat Dagangan:

  • Beli: apabila garis utama memotong ke atas garis isyarat MACD.
  • Jual: apabila garis utama memotong ke bawah garis isyarat MACD.

Strategi ini boleh diakses dalam kelas CSignalMACD dalam Kelas Strategi Dagangan yang terdapat dalam MQL5 Standard Library (terletak di MQL5\Include\Expert\Signal\SignalMACD.mqh).

Gambar 1. Isyarat dagangan berdasarkan persilangan garis utama dan garis isyarat MACD

Gambar 1. Isyarat dagangan berdasarkan persilangan garis utama dan garis isyarat MACD


Isyarat Dagangan

Strategi dagangan ini diimplementasikan dalam kelas CSignalMACD yang mempunyai beberapa metode terlindung untuk memudahkan akses kepada nilai indikator:

double  MainMACD(int ind)      // mengembalikan nilai garis utama MACD bagi bar
double  SignalMACD(int ind)    // mengembalikan nilai garis isyarat MACD bagi bar
double  StateMACD(int ind)     // mengembalikan perbezaan antara garis utama dan garis isyarat MACD
int     ExtStateMACD(int ind); // mengembalikan bilangan perubahan tanda perbezaan garis utama dan garis isyarat


1. Membuka Posisi Long

Keadaan untuk membuka posisi long:

  • ExtStateMACD(1)==1; ini bermakna garis utama telah melintasi ke atas garis isyarat MACD.
//+------------------------------------------------------------------+
//| Memeriksa keadaan untuk membuka posisi long (beli)                |
//+------------------------------------------------------------------+
bool CSignalMACD::CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration)
  {
   price=0.0;
   sl   =m_symbol.Ask()-m_stop_loss*m_adjusted_point;
   tp   =m_symbol.Ask()+m_take_profit*m_adjusted_point;
//---
   return(ExtStateMACD(1)==1);
  }


2. Menutup Posisi Long

Keadaan untuk menutup posisi long:

  • ExtStateMACD(1)==1; ini bermakna garis utama telah melintasi ke bawah garis isyarat MACD.
//+------------------------------------------------------------------+
//| Memeriksa keadaan untuk menutup posisi long                       |
//+------------------------------------------------------------------+
bool CSignalMACD::CheckCloseLong(double& price)
  {
   price=0.0;
//---
   return(ExtStateMACD(1)==-1);
  }


3. Membuka Posisi Short

Keadaan untuk membuka posisi short adalah sama dengan keadaan menutup posisi long.

//+------------------------------------------------------------------+
//| Memeriksa keadaan untuk membuka posisi short (jual)               |
//+------------------------------------------------------------------+
bool CSignalMACD::CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration)
  {
   price=0.0;
   sl   =m_symbol.Bid()+m_stop_loss*m_adjusted_point;
   tp   =m_symbol.Bid()-m_take_profit*m_adjusted_point;
//---
   return(ExtStateMACD(1)==-1);
  }


4. Menutup Posisi Short

Keadaan untuk menutup posisi short adalah sama dengan keadaan membuka posisi long.

//+------------------------------------------------------------------+
//| Memeriksa keadaan untuk menutup posisi short                      |
//+------------------------------------------------------------------+
bool CSignalMACD::CheckCloseShort(double& price)
  {
   price=0.0;
//---
   return(ExtStateMACD(1)==1);
  }

Mencipta System Trading Menggunakan MQL5 Wizard

Untuk mencipta robot dagangan berdasarkan strategi ini, anda perlu memilih ciri isyarat sebagai "Isyarat Berdasarkan Persilangan Garis Utama dan Garis Isyarat MACD" dalam pilihan MQL5 Wizard:

Gambar 2. Pilih isyarat berdasarkan persilangan garis utama dan garis isyarat MACD dalam MQL5 Wizard

Gambar 2. Pilih "Isyarat Berdasarkan Persilangan Garis Utama dan Garis Isyarat MACD" dalam MQL5 Wizard

Seterusnya, anda perlu menetapkan algoritma trailing stop dan sistem pengurusan wang dan risiko yang diperlukan. Kod System Trading akan dicipta secara automatik, anda boleh menyusunnya dan mengujinya dalam Strategy Tester di terminal MetaTrader 5.


Keputusan Ujian

Mari kita lihat uji kembali System Trading ini dengan menggunakan data sejarah (EURUSD H1, tempoh ujian: 1.1.2010-05.01.2011, PeriodFast=12, PeriodSlow=24, PeriodSignal=9, StopLoss=20, TakeProfit=80).

Dalam penciptaan System Trading ini, kami menggunakan volum tetap (Trading Fixed Lot, 0.1), dan algoritma trailing tidak digunakan.

Gambar 3. Keputusan Ujian System Trading dengan isyarat berdasarkan persilangan garis MACD

Gambar 3. Keputusan Ujian System Trading dengan isyarat berdasarkan persilangan garis MACD


Lampiran: Fail SignalMACD.mqh dengan kelas CSignalMACD (termasuk dalam MQL5 Standard Library) terletak di folder MQL5\Include\Expert\Signal. Fail testmacd.mq5 mengandungi kod System Trading yang dicipta menggunakan MQL5 Wizard.

Siaran berkaitan

Komen (0)