Laman utama Perdagangan Sistem Siaran

Menggunakan MQL5 Wizard untuk Signals Crossover Dua EMA dalam MetaTrader 5

Lampiran
261.zip (2.85 KB, Muat turun 0 kali)

MQL5 Wizard membolehkan anda menghasilkan kod untuk Sistem Trading secara automatik. Untuk maklumat lanjut, lihat Membuat Sistem Trading Sedia Ada dengan MQL5 Wizard.

Di sini, kita akan membincangkan strategi yang berasaskan crossover dua Moving Averages yang dismooth secara eksponensial (EMA cepat dan EMA lambat). Strategi ini dikenali sebagai "Signals berdasarkan crossover dua EMA" (apabila menghasilkan EA secara automatik dalam MQL5 Wizard).

Isyarat Trading:

  • Beli: EMA cepat crossover ke atas EMA lambat
  • Jual: EMA cepat crossover ke bawah EMA lambat

Strategi ini dilaksanakan dalam kelas CSignalCrossEMA.

Rajah 1. Isyarat trading berdasarkan crossover dua moving averages yang dismooth secara eksponensial

Rajah 1. Isyarat trading berdasarkan crossover dua moving averages yang dismooth secara eksponensial


Isyarat Trading

Strategi trading ini dilaksanakan dalam kelas CSignalCrossEMA, yang mempunyai beberapa kaedah dilindungi untuk memudahkan akses kepada nilai indikator:

double   FastEMA(int ind)      // mengembalikan nilai moving average cepat bar
double   SlowEMA(int ind)      // mengembalikan nilai moving average lambat bar
double   StateEMA(int ind)     // mengembalikan perbezaan antara moving averages cepat dan lambat bar


1. Membuka posisi long

Keadaan untuk membuka posisi long:

  • StateEMA(1)>0 dan StateEMA(2)<0: EMA cepat telah crossover ke atas EMA lambat pada bar yang terakhir diselesaikan.
//+------------------------------------------------------------------+
//| Memeriksa keadaan untuk membuka posisi long (beli)                |
//+------------------------------------------------------------------+
bool CSignalCrossEMA::CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration)
  {
   if(!(StateEMA(2)<0 && StateEMA(1)>0)) return(false);
//---
   price=0.0;
   sl   =0.0;
   tp   =0.0;
//---
   return(true);
  }

2. Menutup posisi long

Keadaan untuk menutup posisi long:

  • StateEMA(1)<0 dan StateEMA(2)>0: EMA cepat telah crossover ke bawah EMA lambat pada bar yang terakhir diselesaikan.
//+------------------------------------------------------------------+
//| Memeriksa keadaan untuk menutup posisi long                       |
//+------------------------------------------------------------------+
bool CSignalCrossEMA::CheckCloseLong(double& price)
  {
   if(!(StateEMA(2)>0 && StateEMA(1)<0)) return(false);
//---
   price=0.0;
//---
   return(true);
  }


3. Membuka posisi short

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

//+------------------------------------------------------------------+
//| Memeriksa keadaan untuk membuka posisi short (jual)              |
//+------------------------------------------------------------------+
bool CSignalCrossEMA::CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration)
  {
   if(!(StateEMA(2)>0 && StateEMA(1)<0)) return(false);
//---
   price=0.0;
   sl   =0.0;
   tp   =0.0;
//---
   return(true);
  }

4. Menutup posisi short

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

//+------------------------------------------------------------------+
//| Memeriksa keadaan untuk menutup posisi short                      |
//+------------------------------------------------------------------+
bool CSignalCrossEMA::CheckCloseShort(double& price)
  {
   if(!(StateEMA(2)<0 && StateEMA(1)>0)) return(false);
//---
   price=0.0;
//---
   return(true);
  }

Membuat Sistem Trading menggunakan MQL5 Wizard

Untuk membuat robot trading berdasarkan strategi ini, anda perlu memilih ciri isyarat sebagai "Signals berdasarkan crossover dua EMA" dalam pilihan "Membuat Sistem Trading Sedia Ada" dalam MQL5 Wizard:

Rajah 2. Pilih isyarat berdasarkan crossover dua EMA dalam MQL5 Wizard

Rajah 2. Pilih isyarat berdasarkan crossover dua EMA dalam MQL5 Wizard

Seterusnya, anda perlu menentukan algoritma trailing stop yang diperlukan dan sistem pengurusan wang dan risiko. Kod Sistem Trading akan dihasilkan secara automatik, anda boleh menyusunnya dan mengujinya dalam Strategy Tester dalam terminal klien MetaTrader 5.

Selain itu, kelas Standard library mengandungi "Signals berdasarkan crossover dua MA", yang dilaksanakan dalam kelas CSignalCrossMA. Idea trading adalah serupa, tetapi ia menyediakan banyak ciri tambahan (menentukan jenis, pergeseran dan kaedah purata serta penggunaan tahap Take Profit dan Stop Loss).

Rajah 3. Isyarat berdasarkan crossover dua MA dalam MQL5 Wizard

Rajah 3. Isyarat berdasarkan crossover dua MA dalam MQL5 Wizard


Keputusan Ujian

Marilah kita mempertimbangkan ujian balik Sistem Trading ini menggunakan data sejarah (EURUSD H1, tempoh ujian: 1.1.2010-05.01.2011, FastPeriod=12, SlowPeriod=24).

Dalam penciptaan Sistem Trading ini, kami menggunakan volum tetap (Trading Fixed Lot, 0.1), algoritma Trailing Stop tidak digunakan (Trailing tidak digunakan).

Rajah 4. Keputusan ujian balik sejarah Sistem Trading berdasarkan crossover dua EMA

Rajah 4. Keputusan ujian balik sejarah Sistem Trading berdasarkan crossover dua EMA


Lampiran: Fail SignalCrossEMA.mqh dengan kelas CSignalCrossEMA mesti diletakkan di folder terminal_data_folder\MQL5\Include\Expert\Signal.

Fail crossover_2ema.mq5 mengandungi kod Sistem Trading, yang dihasilkan menggunakan MQL5 Wizard.

Siaran berkaitan

Komen (0)