MACD e SAR: Como Criar um Sistema de Trading Eficaz no MetaTrader 5

Mike 2018.06.18 19:52 9 0 0
Anexo

Ideia de: Gatis.

Código MQL5 por: Vladimir Karputov.

Este Expert Advisor (EA) analisa quatro parâmetros:

  • Valor da linha principal do MACD no bar #1 (macd_main_1)
  • Valor da linha de sinal do MACD no bar #1 (macd_signal_1)
  • Valor do indicador SAR no bar #1 (sar_1) em relação ao preço Bid (m_symbol.Bid())

Esses parâmetros são combinados na fórmula básica de sinais para Compra e Venda:

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

Você pode otimizar os valores dos sinais < e > em qualquer parte da fórmula. Para isso, para cada sinal < e >, foram introduzidas suas próprias variáveis (InpMoreLessBuy_1, InpMoreLessBuy_2, InpMoreLessBuy_3, InpMoreLessSell_1, InpMoreLessSell_2, e InpMoreLessSell_3). Com essas variáveis, a fórmula básica é modificada da seguinte maneira:

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

O EA em si só opera quando um novo bar aparece. Quando um sinal é recebido, as posições opostas ao sinal recebido serão fechadas.

Ao otimizar a fórmula, também seria razoável otimizar o número de posições:

Otimização do MACD e SAR

Lista
Comentário 0