Idea oleh: Gatis.
Kod MQL5 oleh: Vladimir Karputov.
EA ini menganalisis empat parameter:
- Nilai garis utama MACD pada bar #1 (macd_main_1)
- Nilai garis isyarat MACD pada bar #1 (macd_signal_1)
- 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:

Komen 0