Início Negociação Sistemática Postagem

MQL5 Wizard: Sinais de Candlestick e Estocástico para MetaTrader 5

Anexo
327.zip (7.01 KB, Baixar 0 vezes)

Descrição:

Com o MQL5 Wizard, os traders podem gerar automaticamente o código do seu robô de trading com base em classes de sinais de negociação, acompanhamento de posições e gerenciamento de risco. Com as classes de sinais de negociação da Biblioteca Padrão, você pode desenvolver e testar seus próprios sistemas de trading. Para isso, basta escrever um módulo de sinais de trading.

O livro "As Estratégias dos Melhores Traders do Mundo" (em russo) descreve indicadores e estratégias de trading para análise técnica utilizando o pacote de software MetaStock. Junto com os sinais de trading convencionais, o livro aborda aqueles baseados no uso combinado de padrões de candlestick de reversão com confirmações do Estocástico, CCI, MFI e RSI.

O uso de padrões de candlestick de "reversão" juntamente com sinais de osciladores permite reduzir a quantidade de falsos sinais e aumentar a eficiência do sistema de trading.

Em publicações anteriores, discutimos sinais de trading baseados em padrões de candlestick com confirmação do Estocástico:

  1. 3 Corvos Negros/3 Soldados Brancos
  2. Nuvem Escura/Linha de Penetração
  3. Engolfo de Alta/Engolfo de Baixa
  4. Harami de Alta/Harami de Baixa
  5. Martelo/Homem Enforcado
  6. Linhas de Encontro de Alta/Baixa
  7. Estrelas da Manhã/Estrelas da Noite

Nesta descrição, iremos considerar os resultados da utilização combinada de todos esses modelos junto com os sinais do indicador Estocástico.


1. Modelos de Candlestick de Alta e Baixa e Sua Detecção

A classe CandlePattern também possui funções para detectar a formação de alguns padrões de candlestick de alta e baixa (exceto pela combinação Martelo/Homem Enforcado).

A formação de um padrão de candlestick de baixa é verificada pela função CheckPatternAllBullish():

//+------------------------------------------------------------------+
//| Verifica a formação de padrões de alta                           |
//+------------------------------------------------------------------+
bool CCandlePattern::CheckPatternAllBullish() 
  { 
   return(CheckPatternThreeWhiteSoldiers()  || 
          CheckPatternPiercingLine()  || 
          CheckPatternMorningDoji()  || 
          CheckPatternBullishEngulfing()  || 
          CheckPatternBullishHarami()  || 
          CheckPatternMorningStar()  || 
          CheckPatternBullishMeetingLines()); 
  }

A formação de um padrão de candlestick de alta é verificada pela função CheckPatternAllBearish():

//+------------------------------------------------------------------+
//| Verifica a formação de padrões de baixa                            |
//+------------------------------------------------------------------+
bool CCandlePattern::CheckPatternAllBearish() 
  { 
   return(CheckPatternThreeBlackCrows() || 
          CheckPatternDarkCloudCover() || 
          CheckPatternEveningDoji() || 
          CheckPatternBearishEngulfing() || 
          CheckPatternBearishHarami() || 
          CheckPatternEveningStar() || 
          CheckPatternBearishMeetingLines()); 
  }

2. Sinais de Trading Combinados com o Indicador Estocástico

A abertura de uma posição longa ou curta é feita quando um dos modelos de alta ou baixa é formado e há uma confirmação do oscillador Estocástico. O valor da linha de sinal %D deve estar acima ou abaixo do nível crítico apropriado (30 e 70).

Um sinal de saída é formado em duas situações:

  1. Quando um padrão de candlestick oposto é formado (um padrão de baixa para uma posição longa e um padrão de alta para uma posição curta).
  2. De acordo com o comportamento subsequente do %D. Se %D atinge o nível oposto ao mercado (80 no caso de uma posição longa e 20 no caso de uma posição curta) ou se %D não confirma o sinal de reversão e atinge 20 no caso de uma posição longa e 80 no caso de uma posição curta.

Verificar as condições de entrada e saída do mercado é feito pelos seguintes métodos:

  • int CCP_Stoch::LongCondition() - checando as condições para abrir uma posição longa (m_pattern_0) e fechar uma curta (m_pattern_1);
  • int CCP_Stoch::ShortCondition() - checando as condições para abrir uma posição curta (m_pattern_0) e fechar uma longa (m_pattern_1).

2.1. Abrindo uma Posição Longa e Fechando uma Curta

  1. O sinal para abrir uma posição longa é a formação de uma combinação de candlestick de alta e a condição StochSignal(1)<30 (o valor da linha de sinal do Estocástico no último bar completado é menor que 30);

  2. O sinal para fechar uma posição curta é a formação de um dos padrões de candlestick de alta ou quando a linha do indicador cruza o nível 20 Estocástico (para cima) ou o nível 80 (para cima).

//+------------------------------------------------------------------+
//| Método para verificar se os modelos de mercado estão formados      |
//| Verifica condições para entrada (abrir posição curta, m_pattern_0) |
//| saída (fechar posição longa, m_pattern_1)                        |
//+------------------------------------------------------------------+
int CCP_Stoch::LongCondition() 
  { 
   int res=0; 
//---- checando condições para abrir posição curta
//---- formação de padrão de alta e linha de sinal do indicador Estocástico<30 
   if(CheckPatternAllBullish() && (StochSignal(1)<30)) res=m_pattern_0; // sinal para abrir posição longa 

//--- checando condições de fechamento de posição curta
//--- formação de padrão de baixa ou crossover da linha de sinal (para cima 20, para cima 80)
   if(CheckPatternAllBullish() || 
      ((StochSignal(1)>20) && (StochSignal(2)<20)) || 
      ((StochSignal(1)>80) && (StochSignal(2)<80))) res=m_pattern_1; // sinal para fechar posição curta
//---
   return(res);
  }

2.2. Abrindo uma Posição Curta e Fechando uma Longa

  1. O sinal para abrir uma posição curta é a formação de um dos padrões de candlestick de baixa e a condição StochSignal(1)>70 (o valor da linha de sinal do Estocástico no último bar completado é maior que 70):

  2. O sinal para fechar uma posição longa é a formação de um dos padrões de candlestick de baixa ou quando a linha do indicador cruza o nível 80 Estocástico (para baixo) ou o nível 20 (para baixo).

//+------------------------------------------------------------------+
//| Método para verificar se os modelos de mercado estão formados      |
//| Verifica condições para                                            |
//| entrada (abrir posição curta, m_pattern_0)                         |
//| saída  (fechar posição longa, m_pattern_1)                         |
//+------------------------------------------------------------------+
int CCP_Stoch::ShortCondition() 
  { 
   int res=0; 
//--- checando condições para abrir posição curta
//---- formação de padrão de baixa e linha de sinal do indicador Estocástico>70
   if(CheckPatternAllBearish() && (StochSignal(1)>70)) res=m_pattern_0; // sinal para abrir posição curta 

//--- checando condições de fechamento de posição longa
//---- formação de padrão de baixa ou crossover da linha de sinal (para baixo 80, para baixo 20)
   if(CheckPatternAllBearish() || 
      ((StochSignal(1)<80) && (StochSignal(2)>80)) || 
      ((StochSignal(1)<20) && (StochSignal(2)>20))) res=m_pattern_1; // sinal para fechar posição longa 
//---
   return(res);
  }

2.3. Criando um Robô de Trading com Base nos Sinais de Padrões de "Candlestick + Estocástico" Usando o MQL5 Wizard

A classe CCP_Stoch não está incluída na Biblioteca Padrão de sinais de negociação. Portanto, baixe o arquivo ccp_stoch.mqh (anexo) e salve-o na pasta \terminal_folder\Include\Expert\Signal\MySignals para usá-lo. O arquivo candlepatterns.mqh deve ser copiado para o mesmo diretório que o ccp_stoch.mqh. Depois disso, reinicie o MetaEditor para poder usar o arquivo no MQL5 Wizard.

Para criar um robô de trading seguindo essa estratégia via MQL5 Wizard, selecione o tipo de sinal "Sinais baseados em Padrões de Candlestick + Estocástico" na segunda etapa:

Fig. 1. Selecionando sinais baseados em padrões de candlestick + estocástico

Fig. 1. Selecionando "Sinais baseados em Padrões de Candlestick + Estocástico" no gerador de sinais do MQL5 Wizard

Nos passos seguintes, especifique o tipo necessário de trailing stop e o sistema de gerenciamento de risco. O código do Robô de Trading é gerado automaticamente. Agora, deve ser compilado para estar pronto para começar os testes.


2.4. Resultados dos Testes

Resultados do Teste do Robô de Trading em dados históricos (EURUSD H1, período de teste: 1.1.2000-02.02.2011, PeriodK=33, PeriodD=37, PeriodSlow=30, MA_period=25).

Este Robô de Trading utiliza o módulo para negociação com volume fixo de 0,1 lote (Trading com Lote Fixo). O trailing stop não é utilizado (Trailing não utilizado).

Fig. 2. Resultados do teste do Robô de Trading

Fig. 2. Resultados do teste do Robô de Trading baseado em sinais de Padrões de Candlestick + Estocástico

O melhor conjunto de parâmetros do sistema de trading pode ser encontrado usando o Testador de Estratégia do MetaTrader 5.

O código do Robô de Trading criado pelo MQL5 Wizard está anexado no arquivo expert_cp_stoch.mq5.


Publicações relacionadas

Comentário (0)