English Русский 中文 Español Deutsch 日本語
Módulo de sinais de negociação utilizando o sistema Bill Williams

Módulo de sinais de negociação utilizando o sistema Bill Williams

MetaTrader 5Sistemas de negociação | 14 setembro 2016, 16:44
3 216 0
VISUAL MARKETS SOFTWARE DEVELOPMENT CENTER - FZCO
Nikolay Churbanov

Introdução

O sistema de negociação por Bill Williams descrito em seu livro chamado "New trading dimensions" é certamente algo que qualquer trader está familiarizado. Este é um dos sistemas que contém regras claras e compreensíveis para a maioria dos principiantes. Entretanto, a simplicidade das regras é apenas aparente - o sistema de negociação compreende mais de uma dúzia de padrões de negociação.

Muitos tentaram criar um Expert Advisor com base neste sistema, porém o padrão de formalização, pesquisa e correta interpretação apresenta ser muito difícil. Para automatizar uma negociação, assim como identificar e marcar os padrões do sistema, tenho desenvolvido um módulo de sinais de negociação para a criação de robôs no Assistente do MQL5.

Focou-se em criar o máximo de comodidade para os potenciais usuários do terminal MetaTrader 5, que pretendem estudar o sistema de negociação de forma independente. A diferença deste módulo de negociação, sugerido a partir de outros 60 módulos publicados para o Assistente do MQL5, é que ele contém opções de configurações, no qual inclui uma interface visual.

Portanto, são estas as principais características do módulo de negociação:

  1. O ajuste das configurações do sistema de negociação com um painel gráfico.
  2. A capacidade de desativar a identificação e marcação dos padrões selecionados.
  3. A capacidade de desativar a negociação com os padrões selecionados.
  4. A capacidade de otimizar os parâmetros do sistema de negociação.

Estrutura (o código-fonte está contido no arquivo billwilliamsts.zip, anexado a este artigo):

  1. Classe CBillWilliamsTS no MQL5. Contém toda a lógica de identificação dos sistemas de padrões das negociação e dos padrões encontrados. Podemos executar padrões encontrados no gráfico do instrumento de negociação usando esta classe (opcional). A classe está contida no arquivo BillWilliamsTS.mqh.
  2. Classe CBillWilliamsDialog do painel gráfico no MQL5. A intenção é exibir o painel interativo das configurações de gerenciamento dos objetos da classe CBillWilliamsTS. A classe está contida no arquivo BillWilliamsPanel.mqh.
  3. Classe SignalBillWilliams do MQL5. O módulo de sinal de negociação utiliza o Assistente do MQL5 para a criação automática de um Expert Advisor.
  4. O Expert Advisor BillWilliamsEA do MQL5.É um expert de negociação desenvolvido baseado nas classes de negociação e no painel gráfico. A finalidade é usar uma negociação automática com os padrões do sistema de negociação Bill Williams, que esteja contido no arquivo BillWilliamsEA.mq5.

Os materiais são fornecidos na seguinte ordem:

  1. Breve descrição da estratégia de negociação Bill Williams, os padrões de negociação utilizados e a marcação realizada pelo Expert Advisor desenvolvido.
  2. Descrição do painel gráfico.
  3. Os resultados dos testes em vários instrumentos de negociação.


1. Uma visão geral do sistema de negociação Bill Williams

1.1. Informações gerais

Em seu livro "New trading dimensions", Bill Williams afirma que é necessário conhecer a estrutura do mercado para alcançar resultados rentáveis nos mercados financeiros. Segundo o autor, o mercado tem cinco dimensões, que se estudado cumulativamente, pode ajudá-lo a obter a verdadeira imagem e levar até 80% do movimento de tendência do mercado, sendo eles:

  1. O fractal (espaço da fase)
  2. Momentum (energia da fase)
  3. Aceleração/desaceleração (força da fase)
  4. Zona (energia da fase/força de combinação)
  5. Linha de balanço

Além das cinco dimensões, Bill Williams introduz condições de mercado bem conhecidas - tendência e lateralidade. Para identificá-los, o autor do sistema sugere usar o indicador Alligator, que ele mesmo desenvolveu e trabalhar apenas com as áreas do mercado de tendências.

Elementos do sistema, padrões de negociação e peculiaridades de marcação dos sinais encontrados através do módulo de sinais de negociação desenvolvido serão considerados mais adiante no artigo.


1.2. Alligator

O indicador Alligator é uma combinação de três médias móveis (Figura 1):

  • Mandíbula, linha lenta (azul), normalmente é uma média móvel de 13 período;
  • Dente, linha mediana (vermelho), normalmente é uma média móvel de 8 períodos;
  • Lábios, linha rápida (verde), normalmente fica e uma média móvel de 5 período;

Fig. 1. Alligator

Fig. 1. Alligator

De acordo com o sistema, as operações de negociação devem ser executadas apenas quando as linhas do Alligator são dispostas na direção da tendência e em ordem decrescente do seu valor de período: os preços, lábios, dentes e mandíbulas. A figura mostra o início e o fim da tendência de baixa.

É óbvio que o Alligator é um indicador muito atrasado, o mesmo serve para todos os outros indicadores com base em médias móveis. No entanto, a interseção entre as médias móveis não age como um sinal de entrada no mercado, apenas filtros executam negociações.


1.3. Fractais - sinais da primeira dimensão do mercado

O fractal é uma formação constituída por 5 velas. Fractal de venda é na mínima de preço da vela média. Fractal de compra, por outro lado, é na máxima de preço da vela média. Fractals também são chamados como a primeira dimensão de mercado (dimensão 1):

Figura 2. Fractais

Figura 2. Fractais

Um fractal é considerado válido se for formado acima da linha média do Alligator (dentes) durante uma tendência de alta de abaixo da linha média para uma tendência de baixa.

O Expert Advisor desenvolvido marca fractais válidos da seguinte forma (FrB — FractalBuy — valid buy fractals, FrS — FractalSell — valid sell fractals):

Figura 3. Fractal de compra operacional

Figura 3. Fractal de compra válido


Figura 4. Fractal de venda operacional

Figura 4. Fractal de venda válido

Uma ordem pendente Buy Stop é posicionada a 1 pip acima da máxima da barra, onde um fractal de compra válido é formado. Uma ordem pendente Sell Stop é posicionada a 1 pip abaixo da mínima da barra, onde o fractal de venda válido é formado. Posições adicionais (por fractais e outros indicadores) são abertas somente após superar o primeiro fractal, quando o Alligator altera a tendência.


1.4. Awesome Oscillator (Awesome Oscillator) - AO - sinais da segunda dimensão do mercado

1.4.1. Informações gerais

O Awesome Oscillator(AO) determina a dinâmica do mercado. Ele é a diferença entre o período 34 da SMA e o período 5 da SMA, que são calculados com os valores centrais das barras. No gráfico, o indicador é apresentado como um histograma:

Figura 5. Awesome Oscillator(AO)

Figura 5. Oscilador Impressionante

Existem 6 padrões com base neste oscilador na estratégia de negociação. Suas descrições e marcações através do Expert Advisor são apresentadas a seguir.

1.4.2. Padrão "Saucer" de compra

Figura 6. Padrão "Saucer" de compra

Figura 6. Padrão "Saucer" de compra

O padrão consiste em três colunas. A primeira coluna deve ser maior do que a coluna do meio e pode ser de qualquer cor. A coluna do meio deve ser vermelha. A terceira coluna (sinal) deve ser verde. O sinal é exibido pelo Expert Advisor no indicador AO e é referida como DiB (Dish Buy).

1.4.3. Padrão "Saucer" de venda

Figura 7. Padrão "Saucer" de venda

Figura 7. Padrão "Saucer" de venda

O padrão consiste em três colunas. A primeira coluna deve ser menor do que a coluna do meio e pode ser de qualquer cor. A coluna do meio deve ser verde. A terceira coluna (sinal) deve ser vermelha. O sinal é apresentado no indicador AO pela Expert Advisor e é referido como DiS (Dish Sell).

1.4.4. Padrão de compra "cruzamento da linha zero"

Figura 8. Padrão de compra "cruzando a linha zero"

Figura 8. Padrão de compra "cruzamento da linha zero"

O sinal aparece quando o histograma cruza a linha zero acima. A coluna que intercepta a linha zero é a coluna de sinal. O sinal é apresentado no indicador AO pelo Expert Advisor e é referido como CrB (Cross Buy).

1.4.5. Padrão de venda "cruzamento da linha zero"

Figura 9. Padrão de venda "cruzamento da linha zero"

Figura 9. Padrão de venda "cruzamento da linha zero"

O sinal aparece quando o histograma cruza a linha zero abaixo. A coluna que intercepta a linha zero é a coluna de sinal. O sinal é apresentado no indicador AO pelo Expert Advisor e é referido como CrS (Cross Sell).

1.4.6. Padrão de compra "Twin peaks"

Figura 10. Padrão de compra "Two peaks"

Figura 10. Padrão de compra "Twin peaks"

O sinal de compra é formado quando o histograma está abaixo da linha zero, e o fundo do indicador está acima da anterior. Com isso, entre estes extremoss, o histograma não reagrupa acima de zero. O sinal é apresentado no indicador AO pela Expert Advisor e é referido como 2pB (2 peak Buy).

1.4.7. Padrão de venda "Twin peaks"

Figura 11. Padrão de venda "Two peaks"

Figura 11. Padrão de venda "Twin peaks"

O sinal de venda é formado quando o histograma está abaixo da linha zero e o último pico do indicador está abaixo do anterior. Com isso, entre estes extremos, o histograma não reagrupa abaixo de zero. O sinal é visualizado no indicador AO pelo Expert Advisor e é referido como 2pS (2 peak Sell).

1.4.7. Definindo ordens

Quando a coluna do sinal de compra aparece, uma ordem pendente Buy Stop é definida a 1 pip acima do sinal na máxima da barra. Quando a coluna sinal de venda aparece, uma ordem pendente Sell Stop é definida a 1 pip abaixa do sinal da mínima da barra.


1.5. Aceleração/Desaceleração do Oscilador - AC - sinais da terceira dimensão do mercado

A Aceleração/Desaceleração (АС) do histograma é a diferença entre o histograma do Awesome Oscillator e uma média móvel de 5 periodo sobre o Awesome Oscillator:

Figura 12. Oscilador AC

Figura 12. Oscilador AC

O sinal de compra é formado se aparecerem duas colunas consecutivas com valores maiores do que a última coluna menor(o histograma está acima da linha zero); se o histograma está abaixo da linha zero, então três colunas verdes consecutivas (Figura 13, sinal B - Comprar) devem ser formadas.

O sinal de venda é formado se aparecerem duas colunas consecutivas com valores menores do que a última coluna maior (o histograma está abaixo da linha zero); se o histograma está acima da linha zero, então três colunas vermelhas consecutivas (Figura 13, S sinal - venda) devem ser formadas.

Figura 13. Padrões do Oscilador AC

Figura 13. Padrões do Oscilador AC

O sinal é visualizado no indicador AC pelo Expert Advisor e é referido como S (Sell) ou B (Buy). Quando a coluna do sinal de compra aparece, uma ordem pendente Buy Stop é definida a 1 pip acima do sinal na máxima da barra. Quando a coluna sinal de venda aparece, uma ordem pendente Sell Stop é definida a 1 pip abaixa do sinal da mínima da barra.


1.6. Zonas de negociação - sinais da quarta dimensão do mercado

Bill Williams introduziu os termos das zonas de negociação: verde e vermelho. Se as colunas atuais АС e АО são verdes, o preço está posicionado na zona verde. Se as colunas atuais АС e АО são vermelhas, o preço é na zona vermelha.

Para abrir novas posições de compra na zona verde (posições de venda na zona vermelha) pelo menos duas barras verdes (vermelha) seguidas são necessárias e o preço de fechamento da segunda barra deve ser maior (menor) do que o preço de fechamento da barra anterior. No entanto, após cinco barras verdes ou vermelhas seguidas, as posições não são mais abertas.

No caso da quinta barra verde (vermelho) aparecer, é necessário colocar um Stop Loss com ordem de 1 pip inferior à mínima de preço (à máxima de preço) da quinta barra. Se a ordem pendente não é executada na barra seguinte, então ela deve ser alterada ao nível onde 1 pip seja inferior à mínima do preço (à máxima do preço) da sexta barra, e assim por diante.

Sinais da zona de negociação são exibidos no indicador de AC como ZS (Zona Sell) e ZB (Zona Buy) (normalmente elas correspondem aos sinais do indicador AC):

Figura 14. Sinais da zona de negociação

Figura 14. Sinais da zona de negociação


1.7. Negociação a partir da linha de balanço - sinais da quinta dimensão do mercado

O padrão "compra acima da linha de balanço" é formado por duas barras quando o preço é superior ao indicador Alligator. Se o preço de abertura da barra zero (também é a máxima do preço desta barra neste momento) é menor do que a primeira máxima de preço da barra anterior (podem ser encontrados algumas barras para trás), então o a máxima do preço encontrado será o preço da abertura de uma posição comprada na zona verde. Se o preço é inferior a linha do Alligator, então é necessário mais uma máxima acima do preço de entrada na zona verde.

A posição comprada abaixo da linha de balanço é inversa.

A lógica de negociação da linha de balanço é descrita em mais detalhes no artigo "Expert Advisor baseado no livro de Bill Williams".

O Expert Advisor marca padrões com uma linha horizontal ao invés de definir uma ordem pendente:

Figura 15. Locais para definir ordens pendentes

Figura 15. Locais para definir ordens pendentes


1.8. Fechando posições

Bill Williams propôs várias maneiras de fechar posições:

  • Se a barra intercepta os dentes do Alligator (linha vermelha) com um fechamento de preço, quando existe uma tendência no mercado, as posições devem ser fechadas;
  • O Stop Loss é definido após cinco barras numa linha aparecerem na zona verde (vermelho) sob o extremo da última barra;
  • Se um sinal na direção oposta aparece, então todas as posições abertas devem ser fechadas.


2. Painel gráfico

2.1. Informações gerais

A interface do painel gráfico é mostrado abaixo:

Figura 16. Painel gráfico para gerenciar o Expert Advisor

Figura 16. Painel gráfico para gerenciar o Expert Advisor

O painel gráfico é composto por quatro blocos lógicos:

  • Configurações do analisador;
  • Configurações do Alligator;
  • Configurações para exibir e negociar com os sinais das cinco dimensões;
  • Definições para negociação.

Após alterar as configurações pressione o botão "Accept" (aceitar) para salvar os blocos.


2.2. Configurações do analisador

Os seguintes elementos referem-se as configurações do analisador:
  • Mostrar Sinais - opção para a exibição de padrões encontrados baseados na estratégia de negociação Bill Williams;
  • RGB — configurações de cores para mostrar os padrões encontrados;
  • Contagem das barras - cálculo do montante determinante de barras no histórico para marcar o gráfico (se o valor zero é dado, então o gráfico inteiro é marcado).


2.3. Configurações do Alligator

As configurações do Alligator são padrão neste indicador. Existe uma opção adicional para desativar a exibição deste indicador (parâmetro 'Show').


2.4. Configurações para exibir e negociar com os sinais das cinco dimensões

É oferecido uma maneira de exibir os sinais separados (parâmetro 'Show') e de negociação com sinais separados (parâmetro 'Trade'):
  • Fractais (linha Dim1.Fractals);
  • AO (linha Dim2.AO);
  • AC (linha Dim3.AC);
  • Zona de negociação (linha Dim4.Zones);
  • Negociação a partir da linha de balanço(linha Dim5.Balance).

Além disso, existe uma opção para exibir todos os sinais independentes da tendência atual (parâmetro 'Show out of trend signals').


2.5. Configurações de negociação

Configurações de negociação tem apenas um parâmetro - o tamanho do Lote.


2.6. Janela principal

A interface do gráfico de trabalho é mostrado abaixo (painel de configurações está minimizado):

Figura 17. Janela principal

Figura 17. Janela principal



3. Criando um Expert Advisor no Assistente do MQL5

3.1. Preparação

Antes de criar um Expert Advisor você deve baixar o arquivo anexo billwilliamsts.zip e copiar seus arquivos para as pastas relevantes do catálogo de dados dos terminais de negociação.


3.2. Criando um Expert Advisor

As seguintes etapas devem ser executadas no gerador automático de Expert Advisor:

Selecione "Novo" no editor MQL e quando aparece uma nova janela, selecione "Expert Advisor (gerar)":

Figura 18. Assistente do MQL - passo 1

Figura 18. Criando um Expert Advisor — passo 1

Digite um nome do Expert Advisor que você deseja criar:

Criando um Expert Advisor — passo 2

Figura 19. Criando um Expert Advisor — passo 2

O próximo passo requer a adição do gerador de sinal a ser utilizado:

Criando um Expert Advisor — passo 3

Figura 20. Criando um Expert Advisor — passo 3

Selecione o "Sinal do sistema de negociação de Bill Williams" como o gerador de sinal:

Criando um Expert Advisor — passo 4

Figura 21. Criando um Expert Advisor — passo 4

O próximo passo é confirmado com o "ok" sem alterações dos parâmetros:

Criando um Expert Advisor — passo 5

Figura 22. Criando um Expert Advisor — passo 5

Seleção do módulo de sinal de negociação é confirmado:

Criando um Expert Advisor — passo 6

Figura 23. Criando um Expert Advisor — passo 6

Parâmetros Trailing Stop são definidos, se necessário:

Criando um Expert Advisor — passo 7

Figura 24. Criando um Expert Advisor — passo 7

Em seguida, os parâmetros de gerenciamento de dinheiro são definidos:

Criando um Expert Advisor — passo 8

Figura 25. Criando um Expert Advisor — passo 8

O arquivo do Expert Advisor criado deve ser editado, para que ele possa reagir a alterações dos parâmetros no painel de negociação:

É necessário encontrar esta seção no código do arquivo:

//--- Criando um filtro CBillWilliamsSignal
CBillWilliamsSignal *filter0=new CBillWilliamsSignal;

E modifique para:

filter0=new CBillWilliamsSignal;

Declare a variável global filter0:

//+------------------------------------------------------------------+
//| Objeto global do expert                                          |
//+------------------------------------------------------------------+
CExpert ExtExpert;
CBillWilliamsSignal *filter0;

E adicione o manipulador de evento no gráfico:

void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
{
  filter0.ChartEvent(id,lparam,dparam,sparam);
}

O Expert Advisor criado está pronto para ser usado.


3.3. Restrições

O Expert Advisor que foi criado no Assistente tem restrições impostas pela biblioteca API padrão:

  1. Não há capacidade de escalar a posição, se ela já está aberta (é exigido uma melhoria na biblioteca padrão);
  2. O Expert Advisor negocia apenas ordens de mercado.

Para eliminar essas desvantagens também é colocado no arquivo anexo um Expert Advisor adicional BillWilliamsEA.mq5, ele foi desenvolvido com base na classe de sinais de negociação.


4. Resultado dos testes

4.1. EURUSD D1, 2015

Teste gráfico EURUSD D1, 2015

Figura 26. Teste gráfico EURUSD D1, 2015

Os resultados detalhados estão no arquivo EUR-D1-2015.zip.


4.2. EURUSD D1, 2010 - 2015

Teste gráfico EURUSD D1, 2010-2015

Figura 27. Teste gráfico EURUSD D1, 2010-2015

Os resultados detalhados estão no arquivo EUR-D1-2010-2015.zip.


4.3. EURJPY D1, 2010 - 2015

Teste gráfico EURJPY D1, 2010-2015

Figura 28. Teste gráfico EURJPY D1, 2010-2015

Os resultados detalhados estão no arquivo EURJPY-D1-2010-2015.zip.


Conclusão

De acordo com os resultados dos testes, podemos concluir que o Expert Advisor funciona bem em seções de tendências, no entanto, está abaixo do ponto de equilíbrio no mercado de lateralidade (na verdade, esta é uma situação típica que o próprio Bill Williams mencionou).

Com a finalidade de alcançar resultados aceitáveis, técnicas de configuração das ordens de stop-loss devem ser combinadas, pois o sistema de Bill Williams permanece consideravelmente atrasado e entra apenas quando uma tendência está bem desenvolvido.

Traduzido do russo pela MetaQuotes Ltd.
Artigo original: https://www.mql5.com/ru/articles/2049

Arquivos anexados |
billwilliamsts.zip (12.97 KB)
eur-d1-2015.zip (50.88 KB)
Interfaces Gráficas V: O Controle Lista (Capítulo 2) Interfaces Gráficas V: O Controle Lista (Capítulo 2)
No capítulo anterior, nós escrevemos as classes para criar a barra de rolagem vertical e horizontal. Neste capítulo, nós vamos implementá-las. Nós vamos escrever uma classe para criar o controle lista, sendo que a barra de rolagem vertical será sua parte integrante.
Avaliação da eficácia dos sistemas de negociação pela análise de seus componentes Avaliação da eficácia dos sistemas de negociação pela análise de seus componentes
Este artigo explora a eficácia dos sistemas de negociação complexos pela análise da eficiência de seus componentes individuais. Qualquer análise é um dos componentes-chave de sucesso em negociação nos mercados financeiros, seja gráfica, com base em indicadores, ou qualquer outro. Portanto, de certa maneira, este arquivo é uma pesquisa sobre alguns sistemas de negociação simples e independentes, no qual podemos analisar a sua eficácia em conjunto com a utilidade da aplicação.
Proteção contra falsos positivos do robô de negociação Proteção contra falsos positivos do robô de negociação
A rentabilidade dos sistemas de negociação é determinada não só pela lógica e precisão da dinâmica dos instrumentos financeiros, mas também pela qualidade do algoritmo de execução dessa lógica. Os falsos positivos são uma manifestação característica da má execução da lógica fundamental do robô de negociação. Neste artigo trataremos várias opções para resolver esse problema.
Interfaces Gráficas V: A Barra de Rolagem Vertical e Horizontal (Capítulo 1) Interfaces Gráficas V: A Barra de Rolagem Vertical e Horizontal (Capítulo 1)
Nós ainda estamos discutindo o desenvolvimento da biblioteca para a criação de interfaces gráficas no ambiente do MetaTrader. No primeiro artigo da quinta parte da série, nós vamos escrever as classes para as criação da barra de rolagem vertical e horizontal.