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:
- O EA verifica se há ordens abertas anteriormente.
- 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.
- 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).
- Se a primeira ordem principal fechar com prejuízo, a próxima ordem pode ser aberta com um aumento de tamanho.
- 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.
- 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").
- 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:
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").
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.
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.
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.
- 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:
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).
- 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.
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).
- TakeProfit — o valor desejado de lucro em pontos ao fechar uma ordem ou um grupo de ordens.
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.
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).
- StopLoss — valor da perda em pontos que pode ser recebida se o preço se mover na direção oposta (para a ordem aberta).
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).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).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.
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.
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.
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).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:

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
- MACD Sample: Um Guia Prático para o Expert Advisor no MetaTrader 5
- Baixe Todo o Histórico de Ticks de um Símbolo no MetaTrader 5
- MQL5 Wizard: Sinais de Negócios com 3 Corvos Negros/3 Soldados Brancos + Estocástico para MetaTrader 5
- Como Integrar Eventos de Alto Impacto do ForexFactory no Seu EA para MetaTrader 4
- MasterMind 2: O Robô de Trading para MetaTrader 4 que Você Precisa Conhecer