Tutorial simples de sistema de comércio de suporte à resistência para o EA Wizard

Neste artigo vamos mostrar como construir um sistema comercial semi-automático simples baseado em níveis de suporte e resistência (níveis S/R). O sistema terá as seguintes características:

  • Os preços para os níveis S/R serão definidos pelo usuário através do uso de parâmetros de entrada. Caso contrário, a EA os colocará automaticamente no gráfico acima e abaixo do preço de mercado atual.
  • uma vez que a última barra baixa atravessa acima do nível S e fecha acima do preço da barra aberta, a EA abrirá uma posição longa
  • uma vez que a última barra alta cruze abaixo do nível R definido e a barra feche abaixo de sua abertura, a EA abrirá uma posição curta
  • você será capaz de limitar o número de negócios abertos por cada nível S/R, assim como os tamanhos de stop-loss e profit-target
  • a EA utilizará o % fixo das regras de gestão de fundos próprios da conta
  • o EA também desenhará linhas correspondentes aos níveis S/R definidos para que você possa facilmente modificá-los diretamente nos gráficos

Estabelecendo o básico

O que precisamos fazer primeiro é configurar nosso nome EA e nossas regras de gerenciamento de dinheiro. Eis como fazer isso:

Configuração de entradas EA

O mais feito nesta etapa é óbvio, mas vamos nos concentrar nas variáveis por um momento. Passaremos por elas enquanto explicamos o significado:

últimoSuporte - este é o preço informado para o nível S. Ele será automaticamente ajustado no início da EA e depois poderá ser modificado alterando o parâmetro ou modificando a linha de suporte diretamente no gráfico.
lastResistance - este é o preço informado para o nível R. Ele será automaticamente ajustado no início da EA e depois poderá ser modificado alterando o parâmetro ou modificando a linha de resistência diretamente no gráfico.
tradesLongCounter - esta variável será usada para armazenar o número de negócios longos realizados com o último nível S/R definido
tradesShortCounter - esta variável será usada para armazenar o número de negócios curtos realizados com o último nível S/R definido

OBSERVAÇÃO: incorporamos estes "balcões de negociação" para limitar o número máximo de negociações executadas por cada nível definido. Precisamos disso para evitar o excesso de negociação enquanto não esperamos mais de 3 negociações em cada nível S ou R definido. Também precisamos reiniciar estes contadores uma vez que modificamos o nível S ou R para um novo preço para que a EA possa começar de novo.

maxTradesPerSR - o número máximo de negócios permitidos por cada nível S/R
PT, SL - estas são distâncias das ordens stop-loss e profit-target expressas em número de pips

Para as regras de administração do dinheiro, pretendemos arriscar não mais do que 3% de nossa conta por cada operação com o tamanho máximo possível de 5 lotes.

Também precisamos ter certeza de que as regras globais de gerenciamento de dinheiro funcionarão corretamente com nossos tamanhos PT e SL definidos, então vamos mudar para a aba SL/PT:

Estabelecimento de regras MM globais

Configurando os níveis de S/R

Uma vez definidas todas as entradas necessárias, podemos passar para a próxima tarefa - criar regras e lógica para a própria EA.

Precisamos que nossa EA tenha preços S/R editáveis (como inputs), mas ainda precisamos que a EA funcione de forma inteligente, ou seja, que desenhe linhas horizontais mesmo sem entrar em nenhum valor de preço específico, uma vez que carregamos nossa EA. Aqui está como fazer isso:

Estabelecimento de preços S/R

se LastSupport = 0 OU lastResistance = 0 - Caso não tenhamos definido nenhum preço específico para a carga da EA, deixe que a EA a defina por conta própria então:

lastResistance = (Alta[1] + ConvertToRealPips(100)) e
lastSupport = (Low[1] - ConvertToRealPips(100))

Se você não definir nenhum preço específico para o nível S ou R no momento em que você carregar o EA, o EA o fará automaticamente colocando 100 pips acima da corrente alta (para o nível R) e 100 pips abaixo da corrente baixa (para o nível S). Estamos usando o ConvertToRealPips(pips) funcionam aqui para adicionar e subtrair 100 pips (pips tem que ser convertidos em uma diferença de preço para esse fim).

Desenho de níveis S/R em um gráfico

É aqui que entra em jogo o verdadeiro poder do EA Wizard. Se você não tiver determinada função necessária disponível no EA Wizard, você pode simplesmente adicioná-la usando o código MQL4 personalizado.

Precisamos acrescentar uma condição que verifique se alguma dessas linhas horizontais (R OU S) já estão em vigor na tabela. Podemos usar uma função útil chamada ObjectFind("nome do objeto") para isto (lembre-se das citações que devem ser usadas aqui). Se as linhas não existirem no gráfico (função ObjectFind retorna número menor que zero), podemos desenhá-las na próxima etapa.

CustomFunction: ObjectFind("resistência1") < 0 OU
CustomFunction: ObjectFind("suporte1") < 0

Desenho das linhas horizontais

Ação personalizada: ObjectCreate("resistance1", OBJ_HLINE, 0, Time[0], lastResistance);
Ação personalizada: ObjectCreate("support1", OBJ_HLINE, 0, Time[0], lastSupport);

Para traçar as linhas, utilizamos o ObjectCreate função como é definida no Manual de linguagem MQL4 para criar novos objetos de linha horizontal.

A função requer vários parâmetros:

"suporte1"., "resistência1". são nomes que usamos para nossas linhas, pois cada objeto no MetaTrader deve ter definido seu próprio nome.

OBJ_HLINE define o tipo de objeto que queremos desenhar. Neste caso, precisamos traçar uma linha horizontal

0 - O valor "zero" aqui representa o índice de janela. 0 significa o gráfico principal que queremos utilizar

Tempo[0] - estamos referenciando o ponto de desenho na última barra

últimoSuporte lastResistance são os preços que queremos que nossas linhas S/R sejam afixadas em

Note também que usamos Log To Journal para que possamos monitorar o comportamento da EA durante seu funcionamento. Esta função é muito útil, especialmente se você precisar observar o que acontece com certas variáveis de valor

Atualização de preços S/R

Se você modificar o nível S ou o nível R no gráfico, você precisa de sua EA para registrar essa mudança. Para conseguir isso, precisamos ler os preços atuais para ambas as linhas, quer elas correspondam a últimoSuporte lastResistance variáveis. Uma vez detectadas algumas mudanças, precisamos atualizar essas variáveis.

Lembre-se, uma vez que atualizamos os preços S/R, também queremos redefinir o contador de negociações para que a EA possa negociar livremente o novo nível de preços até um limite pré-definido - maxTradesPerSR.

Atualização de preço para o nível de resistência

lastResistance = CustomFunction: ObjectGet("resistência1", OBRPROP_PRICE1);

Usamos outra função MQL4 para isso. ObjectGet(). Esta função permite obter informações de uma determinada propriedade de objeto como o preço por exemplo. Esta função requer o nome do objeto e a constante de propriedade correta que estamos tentando obter (neste caso é o preço principal - PREÇO1).

E nós fazemos o mesmo para nosso nível S:

Atualização de preço para o nível de suporte

Negociação dos níveis de S/R - colocação dos pedidos

Quando tivermos tudo o que precisamos preparado, poderemos começar a definir regras comerciais para ambas as direções.

Comecemos com a longa condição primeiro:

Negociando o lado longo

Baixo[1] Cruzes Acima do últimoSuporte - para um sinal longo válido consideramos uma situação em que o baixo preço cruza acima do nível S definido
MarketPosição é plana - não há outra posição existente já aberta
IsBarOpen é Verdadeiro - avaliar a condição apenas uma vez por cada barra
comÉrcioLongCounter < maxTradesPerSR - comércio somente se o limite comercial não for alcançado

Se a condição acima se tornar válida, podemos colocar uma longa ordem de mercado com o número mágico 1000. Também temos que aumentar em 1 o valor do contador para os negócios longos (para contar o último negócio longo). Isto é feito usando o Atribuir variável e o Acréscimo funções.

Não se esqueça de definir adequadamente o tamanho do PT e SL também com o tamanho do lote para cada comércio, conforme mostrado na captura de tela.

Estabelecendo uma meta de lucro global
Configurando o tamanho do lote

Agora temos que fazer o mesmo para o lado curto:

Estabelecimento de regras laterais curtas

A principal diferença aqui está dentro da condição de cruz. Queremos ver um bar Alto[1] para atravessar abaixo nosso nível R definido. Para o ordem de mercado curta também temos que usar um número mágico diferente (2000 no nosso caso) porque no MetaTrader cada pedido tem um número mágico único atribuído.

Neste momento, temos nossa EA completa. O último passo aqui é exportar o código para um arquivo EA e testar a EA no MetaTrader4 usando o backtester ou o regime simulado.

Exportando a EA para o MetaTrader4

Uma vez salvo o EA, podemos iniciar o backktester MT4 para verificar sua função.

Teste da EA
Assine
Notificação de
5 Comentários
Mais antigo
Novidades Mais Votados
Feedbacks em linha
Ver todos os comentários
Ling
Ling
15. 12. 2017 7:40 am

O EA Wizard será capaz de usar um certo número de velas em horas específicas (se for uma tabela horária) para identificar os níveis de resistência de suporte e abrir e fechar negócios com base nesses níveis? Por exemplo, em uma tabela horária, desenhe as linhas resistentes e de suporte com base na maior alta e na menor baixa das velas fechadas às 3, 4 e 5 da manhã.

krikri
krikri
25. 2. 2018 12:00 pm

Olá, Tomás262,

muito bom trabalho, onde posso encontrar o arquivo sqw deste EA (sistema de comércio de resistência de suporte)?

cumprimentos

Christian

Denis Mc Grath
Denis Mc Grath
22. 5. 2018 8:28 am

Grande artigo Tomás.

girija k
22. 6. 2018 11:52 am

Vou compartilhar com vocês uma estratégia muito simples, baseada em um padrão de castiçal forte e facilmente perceptível. Eles a chamam de "Lucky Spike". Todos podem aprendê-lo, usá-lo e ganhar dinheiro com ele. Há comerciantes que ganham a vida comercializando exatamente este padrão. Basta dar uma olhada neste ebook que estou dando gratuitamente:==> http://www.forexmystery.com?hgd4h84gdh

girija k
22. 6. 2018 11:54 am

Vou compartilhar com vocês uma estratégia muito simples, baseada em um padrão de castiçal forte e facilmente perceptível. Eles a chamam de "Lucky Spike". Todos podem aprendê-lo, usá-lo e ganhar dinheiro com ele. Há comerciantes que ganham a vida comercializando exatamente este padrão. Basta dar uma olhada neste ebook que estou dando gratuitamente:==> http://www.forexmystery.com?hgd4h84gdh

Continuar lendo