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
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
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
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
- MQL5 Wizard: Cipta Isyarat Dagangan Berdasarkan Corak 'Dark Cloud Cover' dan 'Piercing Line' dengan CCI
- MQL5 Wizard: Cipta Sistem Trading Berdasarkan Pola Morning/Evening Star dan RSI
- Panduan Lengkap MQL5 Wizard untuk Isyarat Dagangan Berdasarkan Morning/Evening Stars dan Stochastic
- MQL5 Wizard: Isyarat Dagangan Berdasarkan Pola Candlestick Dark Cloud Cover/Piercing Line + RSI
- MQL5 Wizard: Cipta Isyarat Dagangan Menggunakan Corak Morning/Evening Star dan MFI