Início Negociação Sistemática Postagem

Expert Advisor com Médias Móveis: Maximize Seus Lucros no MetaTrader 4

Anexo
13617.zip (118.38 KB, Baixar 4 vezes)

A ideia deste Expert Advisor (EA) é minha, enquanto o código foi desenvolvido por Sergey Diubakin.

Nesta versão, o EA foi utilizado para operar em uma conta PAMM. Devido ao fator humano (sim, eu!), o lucro líquido foi de 20%. O lucro máximo que poderia ser alcançado foi de 84% do depósito inicial.

Período de trading real: de 23.02.2015 a 23.07.2015.

Com base nas minhas observações, operar com este EA requer um depósito considerável, variando entre 15.000 e 20.000 reais no mínimo.

Os valores do indicador Média Móvel são utilizados para as operações. Se a linha da média móvel rápida estiver acima da linha da média móvel lenta, e a distância entre essas duas linhas for maior que o especificado, então uma ordem de compra é aberta.

Os valores opostos dos indicadores são usados para abrir uma ordem de venda. O fechamento das ordens ocorre de acordo com os valores do indicador de média móvel.

Este EA também possui módulos adicionais: a distância entre as médias móveis rápida e lenta, Take Profit, Stop Loss, Trailing Stop, a distância entre ordens (para cima e para baixo), método de média de Take Profit, horário de operação, Turn e o aumento do primeiro lote principal no caso de o anterior ter fechado em prejuízo.

Algoritmo do EA:

  1. O EA verifica se há ordens abertas anteriormente.
  2. Se não houver ordens abertas, o EA analisa o gráfico e, se todas as condições especificadas nas configurações forem atendidas, ele abre a primeira ordem principal.
  3. Após abrir a primeira ordem principal, o EA define os níveis de Take Profit e Stop Loss (se esses módulos estiverem ativados).
  4. Se a primeira ordem principal fechar com prejuízo, a próxima ordem pode ser aberta com um aumento de tamanho.
  5. Se a primeira ordem principal for colocada, os módulos Step Up e Step Down forem ativados e o preço atingir os valores especificados, ordens adicionais para esses módulos serão colocadas. Ordens adicionais para os módulos Step Up e Step Down podem ser colocadas apenas se o EA observar que já abriu a primeira ordem principal ou se houver ordens adicionais não fechadas.
  6. Este Expert Advisor possui 2 modos de operação:
    • a) O primeiro modo de operação é que se a MA Rápida estiver acima da MA Lenta, o EA coloca ordens de compra e, assim que a tendência muda (a MA Rápida fica abaixo da MA Lenta), todas as ordens abertas são fechadas e ordens de venda são colocadas.
    • b) O segundo modo de operação é que se o EA já tiver aberto ordens de compra e a tendência mudar (a MA Rápida ficar abaixo da MA Lenta), as ordens permanecem abertas. O EA pode colocar ordens de venda apenas quando a MA Rápida ficar abaixo da MA Lenta e todas as ordens do EA forem fechadas (Take Profit, Stop Loss alcançados ou fechadas "manualmente").
  7. Este Expert Advisor tem um módulo de Horário de Operação, que, se ativado, permite que o EA coloque a primeira ordem principal apenas no período especificado neste módulo. Este módulo não se aplica a ordens adicionais para os módulos Step Up, Step Down e Turn. Ou seja, se houver ordens previamente abertas pelo EA e qualquer um dos módulos Step Up, Step Down ou Turn estiver ativado, ordens adicionais para esses módulos serão colocadas independentemente do horário.

Configurações do Expert Advisor:

  1. Modo de Operação:

    • 1 — se a tendência mudar, todas as ordens abertas serão fechadas e as ordens opostas serão abertas;
    • 2 — se a tendência mudar, as ordens abertas não serão fechadas (o EA espera até que o Take Profit ou Stop Loss sejam alcançados ou sejam fechadas "manualmente").
  2. MA Rápida — configurações para o plugin do indicador Média Móvel: período, deslocamento, método de MA. A Média Móvel incluída no terminal MetaTrader 4 é utilizada.

  3. MA Lenta — configurações para o plugin do indicador Média Móvel: período, deslocamento, método de MA. A Média Móvel incluída no terminal MetaTrader 4 é utilizada.

  4. Lote Inicial

    4.1. Lote Inicial

    • LotConst_or_not — permite ao usuário escolher se deseja começar a operar com o mesmo lote ou recalcular o lote inicial dependendo da variação do depósito:
      true — o primeiro lote será constante e igual ao valor de Lots, especificado abaixo;
      false — o primeiro lote mudará dinamicamente conforme a variação do depósito e dependerá do parâmetro RiskPercent e do tamanho do depósito. Lots =AccountBalance() * (RiskPercent / 100.0) / 10000.0
    • Lots — define o lote inicial para operações;
    • RiskPercent — define o lote inicial dependendo do depósito.

    4.2. Aumento do lote

    • FirstLotMultiplicator — parâmetro que é responsável pela razão de aumento de cada seguinte primeira ordem principal caso a ordem anterior tenha fechado com prejuízo;
    • First_LotSize — se a primeira ordem principal atingir um valor especificado nesta linha, então o EA coloca o Take Profit no nível definido na linha seguinte (First_LotSize_TakeProfit), mas não no ponto 5 das configurações do EA;
    • First_LotSize_TakeProfit — um nível de Take Profit "novo" da primeira ordem principal, caso atinja o tamanho definido na linha First_LotSize;
    • First_MaxLotSize — o valor máximo até o qual o EA irá aumentar a primeira ordem principal. Se o tamanho da primeira ordem principal a ser colocada for maior que o valor especificado nesta linha, então o EA coloca a primeira ordem principal de acordo com o ponto 3.1. das configurações do EA.
  5. Configurações da distância entre a MA Rápida e a MA Lenta

    • Distance — a distância necessária entre a MA Rápida e a MA Lenta para abrir uma ordem, medida em pontos do gráfico ao qual o EA está anexado.
      true — o módulo de Distância está ativado (on),
      false — o módulo de Distância está desativado (off).
  6. Lucro em pontos — TP

    • TakeProfit — o valor desejado de lucro em pontos ao fechar uma ordem ou um grupo de ordens.
      true — o módulo de TakeProfit está ativado (on),
      false — o módulo de TakeProfit está desativado (off).
  7. Método de média — Varyant — uma variante do método de média do nível de TakeProfit (selecionável entre 1 ou 2).

    • Varyant 1. A média do nível acontece de acordo com esta fórmula: (preço de abertura 1 + preço de abertura 2 + preço de abertura 3 + preço de abertura N) / N + nível de Take Profit, especificado nas configurações do EA.
    • Varyant 2. A média do nível ocorre da seguinte forma: o EA determina o "nível sem perda" de cada posição (considerando cada swap e comissões nas ordens, abertas pelo EA no momento da média do nível de Take Profit) e adiciona o nível de Take Profit especificado nas configurações do EA a esse preço.
  8. Stop em pontos — SL

    • StopLoss — valor da perda em pontos que pode ser recebida se o preço se mover na direção oposta (para a ordem aberta).
      true — o módulo de StopLoss está ativado (on),
      false — o módulo de StopLoss está desativado (off).
  9. A distância entre ordens (Step Up) — a distância (intervalo) entre ordens abertas na grade de ordens, definida ao longo da "tendência".

    true — o módulo Step Up está ativado (on),
    false — o módulo Step Up está desativado (off).

    9.1. Trailing Stop — nível de Stop Loss móvel.

    true — o módulo de Trailing Stop está ativado (on),
    false — o módulo de Trailing Stop está desativado (off).
  10. A distância entre ordens (Step Down) — a distância (intervalo) entre ordens abertas na grade de ordens, definida contra a "tendência".

    true — o módulo Step Down está ativado (on),
    false — o módulo Step Down está desativado (off).

  11. O identificador das ordens do EA — Mágico (Número Mágico) — o parâmetro ajuda os EAs a reconhecerem suas ordens ao operar em um terminal.

  12. Logo e saída de dados — ShowTableOnTesting — o parâmetro permite ativar ou desativar a tabela (ganhos de hoje, de ontem, etc.): verdadeiro - ativado, falso - desativado.

  13. Time frame — código do programa que determina qual período gráfico será usado pelo EA para operar.

    • Atual — o período gráfico especificado no terminal.
    • M1, M5, M15, M30, H1, H4, D1, W1, MN1 — períodos fixos.
  14. Horário de Operação — módulo para abrir a primeira ordem principal em um horário específico.

    true — o módulo de Horário de Operação está ativado (on),
    false — o módulo de Horário de Operação está desativado (off).

  15. Turn — coloca ordens limites de acordo com o nível de Stop Loss da primeira ordem principal na direção oposta.

    true — o módulo Turn está ativado (on),
    false — o módulo Turn está desativado (off).

    • Turn — a distância na qual a ordem pendente oposta é colocada.
    • LotMultiplicator — o parâmetro responsável pela razão de aumento das ordens colocadas pelo módulo Turn, caso a ordem anterior tenha fechado com prejuízo;
    • Turn_TakeProfit — o nível de Take Profit para ordens colocadas pelo módulo Turn;
    • Turn_LotSize — se a ordem a ser colocada pelo módulo Turn exceder o valor definido nesta linha, então um novo nível de Take Profit será usado para essa ordem, que é especificado pelo módulo Turn na linha seguinte, mas não na linha Turn_TakeProfit;
    • Turn_LotSize_TakeProfit — um novo nível de Take Profit para as ordens do módulo Turn, caso as ordens a serem colocadas excedam o tamanho especificado na linha Turn_LotSize;
    • Turn_MaxLotSize — o tamanho máximo de uma ordem a ser colocada pelo módulo Turn. Se a ordem a ser colocada exceder o tamanho especificado, então o EA não a colocará.

Resultados das Operações:

Resultados das Operações

Nesta versão, o Expert Advisor foi utilizado para operar em uma conta PAMM. Período de trading real: de 23.02.2015 a 23.07.2015.

O lucro máximo que poderia ser alcançado foi de 84% do depósito inicial. No entanto, devido à minha interferência, o lucro líquido foi apenas de 20%. A razão foi que eu interfiri no trading do EA.

Os testes que realizei mostraram um rendimento líquido de 5%, 10%, 15% ao mês, com um drawdown que não ultrapassou 20% do depósito.

P.S. Os conjuntos anexados operaram apenas na conta em que eu negociei. Configurações personalizadas do EA são necessárias para cada corretora e conta (demo ou real).

Não se deixe levar pela otimização, pois isso nem sempre ajuda e pode desconsiderar a velocidade de colocação das ordens em movimentos muito rápidos.

Publicações relacionadas

Comentário (0)