MetaTrader 5でのMACDとSARの活用法

Mike 2018.06.18 19:52 12 0 0
添付ファイル

アイディア提供者: Gatis

MQL5コード提供者: Vladimir Karputov

このEAは4つのパラメーターを分析します:

  1. バー#1のMACDのメインラインの値macd_main_1
  2. バー#1のMACDのシグナルラインの値macd_signal_1
  3. バー#1のSARの値sar_1)と価格Bidm_symbol.Bid())の関係

これらのパラメーターは、買いと売りのシグナルの基本的な式に組み合わされます:

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());

ただし、シグナルの値<>は、式のあらゆる部分で最適化できます。そのために、各シグナルの<>に対して、それぞれ独自の変数InpMoreLessBuy_1, InpMoreLessBuy_2, InpMoreLessBuy_3, InpMoreLessSell_1, InpMoreLessSell_2, InpMoreLessSell_3)を導入します。これらの変数を使って、基本的な式は次のように修正されます:

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は新しいバーが出現した時のみ動作します。シグナルを受け取ると、受け取ったシグナルに対して逆のポジションがクローズされます。

式の最適化を行う際には、ポジション数を最適化することも合理的です:

MACDとSARの最適化

リスト
コメント 0