Optimización de MACD y SAR para MetaTrader 5: Estrategia Efectiva

Mike 2018.06.18 19:52 8 0 0
Archivos adjuntos

Idea de: Gatis.

Código MQL5 por: Vladimir Karputov.

Este System Trading analiza cuatro parámetros:

  • Valor de la línea principal del MACD en la barra #1 (macd_main_1)
  • Valor de la línea de señal del MACD en la barra #1 (macd_signal_1)
  • Valor del indicador SAR en la barra #1 (sar_1) en relación al precio Bid (m_symbol.Bid())

Estos parámetros se combinan en la fórmula básica de señales para comprar y vender:

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

Sin embargo, puedes optimizar los valores de los signos < y > en cualquier parte de la fórmula. Para ello, se introducen variables específicas para cada uno de los signos: InpMoreLessBuy_1, InpMoreLessBuy_2, InpMoreLessBuy_3, InpMoreLessSell_1, InpMoreLessSell_2, e InpMoreLessSell_3. Así, la fórmula básica se modifica de la siguiente manera:

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

El System Trading solo opera cuando aparece una nueva barra. Cuando se recibe una señal, se cerrarán las posiciones opuestas a la señal recibida.

Al optimizar la fórmula, también es razonable optimizar el número de posiciones:

Optimización de MACD y SAR

Lista
Comentarios 0