使用MACD和SAR优化MetaTrader 5交易策略

Mike 2018.06.18 19:52 18 0 0
附件

创意提供者: Gatis

MQL5代码提供者: Vladimir Karputov

这款EA会分析四个参数

  1. 第一根K线的MACD主线值 (macd_main_1)
  2. 第一根K线的MACD信号线值 (macd_signal_1)
  3. 第一根K线的SAR值 (sar_1) 相对于当前价格Bid (m_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 只在出现新K线时操作。当接收到信号时,持仓会平掉与接收到的信号相反的仓位。

在优化公式时,合理的做法还包括优化持仓数量:

MACD与SAR优化

列表
评论 0