Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Twitter!
Participe de nossa página de fãs
Script interessante?
Coloque um link para ele, e permita que outras pessoas também o avaliem
Você gostou do script?
Avalie seu funcionamento no terminal MetaTrader 5
Experts

Assistente MQL5 - Sinais comércio com base em padrões candles 3 Corvos Negros/3 Soldados Brancos + MFI - expert para MetaTrader 5

Visualizações:
2624
Avaliação:
(21)
Publicado:
2014.01.15 08:24
Atualizado:
2016.11.22 07:33
\MQL5\Include\Expert\Signal\MySignals\
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

O Assistente MQL5 permite a criação de Expert Advisors prontos para usar com base nas classes da Biblioteca Padrão entregues juntamente com o terminal do cliente (veja Criando Expert Advisors Prontos Para Usar no Assistente MQL5 para mais detalhes). Ele permite verificar suas idéias de negociação rapidamente, tudo que você precisa é criar sua própria classe de sinais de negociação. A estrutura desta classe e exemplo podem ser encontrado no artigo Assistente MQL5: Como criar um módulo de sinais de negociação.

A ideia genérica é o seguinte: a classe dos sinais de negociação deriva do CExpertSignal, em seguida, é necessário substituir os métodos virtuais LongCondition() e ShortCondition() com seus próprios métodos.

Há um livro chamado "Estratégias dos melhores traders" (em Russo), existem muitas estratégias de negociação que são considerados neste livro, vamos nos concentrar em padrões de velas de reversão, confirmados pelos osciladores Stochastic, CCI, MFI e RSI.

A melhor maneira é criar a classe separada, derivado de CExpertSignal para a verificação da formação de padrões de candles. Para confirmar os sinais de negociação, gerados por padrões de velas, apenas escreva a classe derivada de CCandlePattern e adicionar aos recursos necessários existentes(por exemplo, a confirmação por osciladores).

Aqui vamos considerar os sinais, com base nos padrões candles de reversão "3 Corvos Preto/3 Soldados Brancos", confirmados pelo indicador de Market Facilitation Index (MFI). O módulo de sinais de negociação baseia-se na classe CCandlePattern, é um simples exemplo de seu uso para a criação de sinais de negociação com padrões de candles.


1. Padrões candles de reversão"3 Corvos Negros" e "3 Soldados Brancos"

1.1. Padrão Candle 3 Corvos Negros

Uma padrão candle baixista é usado para prever a reversão da tendência de alta. Este padrão é constituído por três candles longos encorpados consecutivos que fecharam no preço abaixo do dia anterior em cada sessão aberta e que ocorre dentro do corpo da candle anterior.

Fig. 1. Padrão candles "3 Corvos Negros"

Fig. 1. Padrão candles "3 Corvos Negros"

O reconhecimento do padrão "3 Corvos Negros" é implementado no método CheckPatternThreeBlackCrows da classe CCandlePattern:

//+------------------------------------------------------------------+
//| Verificar a formação do padrão de candles "3 Corvos Negros"      |
//+------------------------------------------------------------------+
bool CCandlePattern::CheckPatternThreeBlackCrows()
  {
//--- 3 Corvos Negros 
   if((Open(3)-Close(3)>AvgBody(1)) && // (candles negros longos)
      (Open(2)-Close(2)>AvgBody(1)) &&
      (Open(1)-Close(1)>AvgBody(1)) && 
      (MidPoint(2)<MidPoint(3))     && // (pontos médios mais elevados)
      (MidPoint(1)<MidPoint(2)))       
      return(true);
//---
   return(false);
  }

O método CheckCandlestickPattern (CANDLE_PATTERN_THREE_BLACK_CROWS) da classe CCandlePattern é usado para verificar a formação do padrão candle "3 Corvos Negros".


1.2. Padrão Candle 3 Soldados Brancos

Uma candle de alta é usado para prever a reversão da tendência de baixa em vigor. Este padrão é constituído por três candles longos encorpados consecutivos que fecharam no preço abaixo do dia anterior em cada sessão aberta e que ocorre dentro do corpo da candle anterior.

O padrão é válido, desde que a candle do segundo dia se abra na metade superior de um dia de intervalo. No final do segundo dia, deve fechar-se perto da sua altura, deixando uma muito pequena ou inexistente sombra superior. O mesmo padrão é repetido no terceiro dia.

Fig. 2. Padrão candle "3 Soldados Brancos"

Fig. 2. Padrão candle "3 Soldados Brancos"

Aqui está o método de reconhecimento do padrão "3 Soldados Brancos":

//+------------------------------------------------------------------+
//| Verificar a formação do padrão de candles "3 Soldados Brancos"   |
//+------------------------------------------------------------------+
bool CCandlePattern::CheckPatternThreeWhiteSoldiers()
  {
   //--- 3 Soldados Brancos
   if((Close(3)-Open(3)>AvgBody(1)) && // candles brancos longos
      (Close(2)-Open(2)>AvgBody(1)) &&
      (Close(1)-Open(1)>AvgBody(1)) &&
      (MidPoint(2)>MidPoint(3))     && // pontos médios mais elevados
      (MidPoint(1)>MidPoint(2)))
      return(true);
//---
   return(false);
  }

O método CheckCandlestickPattern (CANDLE_PATTERN_THREE_WHITE_SOLDIERS) da classe CCandlePattern é usado para verificar a formação do padrão candle "3 Soldados Brancos".


2. Sinais de negociação confirmados pelo indicador MFI

Os sinais de negociação para abrir posição comprada ou vendida devem ser confirmados pelo indicador MFI. O valor do indicador MFI deve ser menor do que 40 (para posições compradas) ou superior a 60 (para as posições vendidas).

O fechamento da posição aberta depende dos valores do indicador MFI. Pode ser feito em dois casos:

  1. Se o MFI atingir o nível crítico oposto (70 para a posição comprada e 30 para posição vendida)
  2. se o sinal inverso não for confirmado (quando o indicador MFI atinge os seguintes níveis: 30 para a posição comprada e 70 para a posição vendida)

Fig. 3. Padrão "3 Corvos Negros" confirmado pelo indicador MFI

Fig. 3. Padrão "3 Corvos Negros" confirmado pelo indicador MFI


  • int CBC_WS_MFI::LongCondition() - verifica as condições para abrir posição comprada (retorna 80) e fechar a posição vendida (retorna 40);
  • int CBC_WS_MFI::ShortCondition() - verifica as condições para abrir posição vendida (retorna 80) e fechar a posição comprada (retorna 40).

2.1. Abrir posição comprada/ Fechar posição vendida

  1. A formação do padrão "3 Soldados Brancos" deve ser confirmado pelo indicador MFI: MFi(1)<40 (o valor do indicador MFI da última barra fechada deve ser menor do que 40).

  2. A posição vendida deve ser fechada se o indicador MFI cruzar para cima os níveis críticos (70 ou 30).

//+------------------------------------------------------------------+
//| Verificar as condições de entrada e saída do mercado             |
//| 1)  Entrada no Mercado (abrir posição comprada resultado=80)     |
//| 2)  Saída do Mercado (fechar posição vendida, resultado=40)      |
//+------------------------------------------------------------------+
int CBC_WS_MFI::LongCondition()
  {
   int result=0;
//--- idx pode ser usado para determinar o modo de trabalho Expert Advisor 
//--- idx=0 - neste caso EA verifica as condições de comércio em cada tick
//--- idx=1 - neste caso o EA verifica a negociação apenas em novas barras 
   int idx   =StartIndex();
//--- verificação das condições para abrir posição comprada
//--- formação do padrão 3 Soldados Brancos e MFI<40
  if(CheckCandlestickPattern(CANDLE_PATTERN_THREE_WHITE_SOLDIERS) && (MFI(1)<40))
     result=80;
//--- verificação das condições para fechar posição vendida 
//--- linha de sinal cruzando os níveis de sobrecomprado/sobrevendido (crescente 30, crescente 70)
  if(((MFI(1)>30) && (MFI(2)<30)) || ((MFI(1)>70) && (MFI(2)<70)))
     result=40;
//--- retorna o resultado
   return(result);
  }


2.2. Abrir posição vendida/ Fechar posição comprada

  1. A formação do padrão "3 Corvos Negros" deve ser confirmado pelo indicador MFI: MFI(1)>60 (o valor do indicador MFI da última barra fechada deve ser maior do que 60).

  2. A posição longa deve ser fechado se o indicador MFI cruzar para cima os níveis críticos (70 ou 30).

//+------------------------------------------------------------------+
//| Verificar as condições de entrada e saída do mercado             |
//| 1)  Entrada no Mercado (abrir posição vendida resultado=80)      |
//| 2)  Saída do Mercado (fechar posição comprada , resultado=40)    |
//+------------------------------------------------------------------+
int CBC_WS_MFI::ShortCondition()
  {
   int result=0;
//--- idx pode ser usado para determinar o modo de trabalho Expert Advisor 
//--- idx=0 - neste caso EA verifica as condições de comércio em cada tick
//--- idx=1 - neste caso o EA verifica a negociação apenas em novas barras 
   int idx   =StartIndex();
//--- verificação das condições para abrir posição vendida 
//--- formação do padrão 3 Corvos Negros e MFI>60
  if(CheckCandlestickPattern(CANDLE_PATTERN_THREE_BLACK_CROWS) && (MFI(1)>60))
     result=80;
//--- verificação das condições para fechar posição comprada
//--- linha de sinal cruzando os níveis de sobrecomprado/sobrevendido (crescente 30, crescente 70
   if(((MFI(1)>70) && (MFI(2)<70)) || ((MFI(1)<30) && (MFI(2)>30)))
     result=40;
//--- retorna o resultado
   return(result);
  }


2.3. Criando Expert Advisor usando Assistente MQL5

A classe CBC_WS_MFI não está incluído nas classes da Biblioteca Padrão, para usá-la, é necessário baixar o arquivo abc_ws_mfi.mqh (ver anexos) e guardá-lo na pasta client_terminal_data\folder\MQL5\Include\Expert\Signal\MySignals. O mesmo deve ser feito com o arquivo acandlepatterns.mqh. Você pode usá-los no Assistente MQL5 após reiniciar o MetaEditor.

Para criar um Expert Advisor através do Assistente MQL5:

Fig. 4. Criando Expert Advisor usando Assistente MQL5

Fig. 4. Criando Expert Advisor usando Assistente MQL5

Vamos especificar o nome do Expert Advisor:

Fig. 5. Propriedades gerais do Expert Advisor

Fig. 5. Propriedades gerais do Expert Advisor

Depois disso, precisamos selecionar os módulos de sinais de negociação a serem usados.

Fig. 6. Propriedades de sinal do Expert Advisor

Fig. 6. Propriedades de sinal do Expert Advisor

No nosso caso, usamos apenas um módulo de sinais de negociação.

Adicionando os módulos de sinais de negociação"Sinais baseado em 3 Corvos Negros/3 Soldados Brancos confirmadas pelo MFI":

Fig. 7. Propriedades de sinal do Expert Advisor

Fig. 7. Propriedades de sinal do Expert Advisor

Módulo de sinais de negociação adicionado:

Fig. 8. Propriedades de sinal do Expert Advisor

Fig. 8. Propriedades de sinal do Expert Advisor

Você pode selecionar as propriedades à direita, mas vamos utilizar a opção "trailing stop não usado":

Fig. 9. Seguindo as propriedades do Expert Advisor

Fig. 9. Seguindo as propriedades do Expert Advisor

Em relação às propriedades de gerenciamento de dinheiro, utilisaremos a opção "Negociação com volume de negociação fixo":

Fig. 10. Propriedades de gerenciamento de dinheiro do Expert Advisor

Fig. 10. Propriedades de gerenciamento de dinheiro do Expert Advisor

Ao pressionar o botão "Finalizar", vamos obter o código do Expert Advisor que foi gerado, localizado em Expert_ABC_WS_MFI.mq5, ele será salvo em terminal_data_folder\MQL5\Experts\.

Os parâmetros de entrada padrão do Expert Advisor que foi gerado são:

//--- Entrada para o sinal principal 
input int            Signal_ThresholdOpen   =10;     // Valor limite de sinal para abrir [0...100]
input int            Signal_ThresholdClose  =10;     // Valor limite de sinal para fechar[0...100]
input double         Signal_PriceLevel      =0.0;    // Nível do preço para executar uma oferta
input double         Signal_StopLevel       =50.0;   // Nível de Stop Loss (em pontos)
input double         Signal_TakeLevel       =50.0// Nível de Take Profit (em pontos)

deve ser substituído para:

//--- Entrada para o sinal principal
input int            Signal_ThresholdOpen   =40;     // Valor limite de sinal para abrir [0...100]
input int            Signal_ThresholdClose  =20;     // Valor limite de sinal para fechar [0...100]
input double         Signal_PriceLevel      =0.0;    // Nível do preço para executar uma oferta 
input double         Signal_StopLevel       =0.0;    // Nível de Stop Loss (em pontos)
input double         Signal_TakeLevel       =0.0;    // Nível de Take Profit(em pontos)

Os parâmetros de entrada Signal_ThresholdOpen/Signal_ThresholdClose permitem especificar os níveis de limite para abrir e fechar de posições.

No código dos métodos LongCondition() e ShortCondition() da classe de sinais de negociação colocaremos os valores fixos do limite:

  • Abrir Posição: 80;
  • Fechar posição: 40.

O Expert Advisor, gerado pelo Assistente MQL5, abre e fecha uma posição usando os valores dos módulos de sinais de negociação. O valor do módulo principal (como um container, que consistem em todos os módulos adicionados) também é usado, mas o seu LongCondition() e ShortCondition() métodos sempre retornam 0.

Os resultados dos valores do módulo principal também é usado na média dos valores. No nosso caso, temos: módulo principal + 1 módulo de sinais de negociação, por isso precisamos ter este fato em conta na fixação dos valores limite. Devido a este fato, o ThresholdOpen e ThresholdClose devem ser definidos como 40=(0+80)/2 e 20=(0+40)/2.

Os valores dos parâmetros de entrada Signal_StopLevel e Signal_TakeLevel são definidos como 0, isso significa que o fechamento das posições será realizado apenas quando as condições de fechamento forem verdadeiras.


2.4. Teste dos resultos pelo histórico

Vamos considerar um teste do histórico feito pelo Expert Advisor com os dados históricos (EURUSD H1, período de testes: 2010.01.01-2011.03.16, PeriodMFI=37, MA_period=13).

Na criação de Expert Advisor usamos o volume fixo (Lote da Negociação Fixa, 0.1), o algorítimo do Trailing Stop não é usado (Trailing Stop não é usado).

Fig. 11. Resultados dos testes do Consultor Especialista, com base nos padrões 3 Corvos Negros/3 Soldados Brancos + MFI

Fig. 11. Resultados dos testes do Consultor Especialista, com base nos padrões 3 Corvos Negros/3 Soldados Brancos + MFI


O melhor conjunto de parâmetros de entrada podem ser encontrados usando o Testador de Estratégias do terminal do cliente MetaTrader 5.

O código do Expert Advisor criado pelo Assistente MQL5 está anexado em expert_abc_ws_mfi.mq5.

Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/287

Assistente MQL5 - Sinais comércio com base em 3 Corvos Negros/3 Soldados Brancos + RSI Assistente MQL5 - Sinais comércio com base em 3 Corvos Negros/3 Soldados Brancos + RSI

Sinais de negociação baseado nos padrões de candles "3 Corvos Negros/3 Soldados Branco", confirmado pelo indicador Índice de Força Relativa (RSI). O código do Expert Advisor baseado nesta estratégia pode ser gerado automaticamente usando o Assistente MQL5.

Demo_DRAW_ZIGZAG Demo_DRAW_ZIGZAG

Exemplo simples de uso do estilo de desenho DRAW_ZIGZAG.

Assistente MQL5 - Sinais de Negociação com base nos padrões candles 3 Corvos Negros/3 Soldados Brancos + CCI Assistente MQL5 - Sinais de Negociação com base nos padrões candles 3 Corvos Negros/3 Soldados Brancos + CCI

Sinais de negociação baseado nos padrões de candles "3 Corvos Negros/3 Soldados Brancos", confirmado pelo indicador Commodity Channel Index (CCI). O código do Expert Advisor baseado nesta estratégia pode ser gerado automaticamente usando o Assistente MQL5.

cIntSpeech cIntSpeech

Ele fala conforme o texto especificado usando o mecanismo de voz.