Menggunakan MACD dan SAR dalam Sistem Trading MetaTrader 5

Mike 2018.06.18 19:52 12 0 0
Lampiran

Idea oleh: Gatis.

Kod MQL5 oleh: Vladimir Karputov.

EA ini menganalisis empat parameter:

  1. Nilai garis utama MACD pada bar #1 (macd_main_1)
  2. Nilai garis isyarat MACD pada bar #1 (macd_signal_1)
  3. Nilai indikator SAR pada bar #1 (sar_1) berbanding harga Bid (m_symbol.Bid())

Parameter ini digabungkan dalam formula asas untuk isyarat Beli dan Jual:

bool open_buy        = (macd_main_1>macd_signal_1 && macd_signal_1<0 && sar_1<m_symbol.Bid());
   bool open_sell       = (macd_main_1<macd_signal_1 && macd_signal_1>0 && sar_1>m_symbol.Bid());

Walau bagaimanapun, anda boleh mengoptimumkan nilai tanda < dan > dalam mana-mana bahagian formula ini. Untuk itu, bagi setiap tanda < dan >, diperkenalkan variabel (InpMoreLessBuy_1, InpMoreLessBuy_2, InpMoreLessBuy_3, InpMoreLessSell_1, InpMoreLessSell_2, dan InpMoreLessSell_3). Dengan variabel ini, formula asas diubah seperti berikut:

bool open_buy=    (InpMoreLessBuy_1   ? macd_main_1>macd_signal_1      : macd_main_1<macd_signal_1) && 
                  (!InpMoreLessBuy_2  ? macd_signal_1 < 0              : macd_signal_1 > 0 ) &&
                  (!InpMoreLessBuy_3  ? sar_1         < m_symbol.Bid() : sar_1         > m_symbol.Bid() );
   bool open_sell=(!InpMoreLessSell_1 ? macd_main_1<macd_signal_1      : macd_main_1>macd_signal_1) && 
                  (InpMoreLessSell_2  ? macd_signal_1 > 0              : macd_signal_1 < 0 ) &&
                  (InpMoreLessSell_3  ? sar_1         > m_symbol.Bid() : sar_1         < m_symbol.Bid() );

EA ini berfungsi hanya apabila bar baru muncul. Apabila isyarat diterima, posisi yang bertentangan dengan isyarat yang diterima akan ditutup.

Ketika mengoptimumkan formula, adalah wajar juga untuk mengoptimumkan bilangan posisi:

Optimasi MACD dan SAR

Senarai
Komen 0