MetaTrader4
Sistema de Trading Automatizado 'Combo' para MetaTrader 4: Aprenda Como Funciona
Hoje vamos falar sobre um sistema de trading automatizado (ATS) chamado 'Combo', que é uma ferramenta poderosa para quem opera no MetaTrader 4. O objetivo aqui é integrar duas abordagens de trading que se complementam: um sistema básico de trading (BTS) e uma rede neural (NN).
Para ilustrar, vamos pensar da seguinte forma: não precisamos redescobrir as Américas, certo? Por que ensinar alguém a correr, se podemos usar um carro? E por que ensinar a voar, se temos um avião? A mesma lógica se aplica aqui!
Primeiro, estabelecemos um sistema ATS que segue tendências. Depois, ensinamos a rede neural a adotar uma estratégia de contra-tendência. Isso é fundamental, pois um sistema que se baseia apenas em tendências pode não funcionar bem em mercados laterais ou em momentos de reversão. É claro que é possível usar dois ATS diferentes – um para tendência e outro para contra-tendência – mas ensinar a NN para complementar seu sistema de trading existente é uma solução mais eficiente.
Para isso, criamos uma rede neural de duas camadas: duas perceptrons na camada inferior e uma na camada superior. O resultado da rede neural pode ser:
Entrar no mercado com uma posição longa
Entrar no mercado com uma posição curta
Estado indeterminado
O estado indeterminado indica que o controle é transferido para o BTS, enquanto as duas primeiras opções são sinais de trade gerados pela rede neural.
O ensino da rede neural acontece em três etapas, cada uma focada em um perceptron. Em todas as etapas, o BTS otimizado deve estar presente para que os perceptrons saibam o que podem fazer.
A primeira etapa é a otimização do BTS. Para nos organizarmos, registramos o número da etapa na entrada do ATS chamada 'pass'. Os identificadores de entrada correspondentes à etapa terão o número igual ao estágio atual.
Vamos começar as preparações para a otimização e o ensino da NN. Definimos um depósito inicial de R$ 1.000.000 (para evitar chamadas de margem artificiais durante a otimização) e a entrada a ser otimizada como 'Balance' nas propriedades do Expert Advisor na aba de 'Teste' do Strategy Tester. Em seguida, iniciamos o algoritmo genético.
Na aba 'Entradas' das propriedades do EA, especificamos o volume das posições a serem abertas, atribuindo o valor 1 ao identificador 'lots'. A otimização será feita com o modelo: 'Preços abertos apenas (método mais rápido para analisar a barra apenas concluída, disponível apenas para EAs que controlam explicitamente a abertura de barras)'.
A primeira fase da otimização é a otimização do BTS:
Defina o valor 1 para a entrada 'pass'.
Otimize apenas as entradas correspondentes à primeira etapa, ou seja, as que terminam em 1. Desmarque todas as outras entradas.
Os parâmetros a serem otimizados são:
tp1 - TakeProfit do BTS, otimizado entre 10 e 100, passo 1.
sl1 - StopLoss do BTS, otimizado entre 10 e 100, passo 1.
p1 - período do CCI utilizado no BTS, otimizado entre 3 e 100, passo 1.
Na segunda etapa, ensinamos o perceptron responsável pelas posições curtas:
Defina o valor 2 para a entrada 'pass'.
Desmarque as entradas que foram otimizadas na etapa anterior e salve os resultados em um arquivo.
Os parâmetros a serem otimizados nesta fase são:
x12, x22, x32, x42 - pesos do perceptron que reconhece posições curtas, otimizados entre 0 e 200, passo 1.
tp2 - TakeProfit das posições abertas pelo perceptron, otimizado entre 10 e 100, passo 1.
sl2 - StopLoss das posições abertas pelo perceptron, otimizado entre 10 e 100, passo 1.
p2 - período dos valores da diferença de preço a ser analisada pelo perceptron, otimizado entre 3 e 100, passo 1.
Iniciamos o ensino utilizando o algoritmo genético nesta fase.
Na terceira etapa, ensinamos o perceptron responsável pelas posições longas:
Defina o valor 3 para a entrada 'pass'.
Desmarque as entradas que foram otimizadas na etapa anterior e salve os resultados em um arquivo.
Os parâmetros a serem otimizados nesta fase são:
x13, x23, x33, x43 - pesos do perceptron que reconhece posições longas, otimizados entre 0 e 200, passo 1.
tp3 - TakeProfit das posições abertas pelo perceptron, otimizado entre 10 e 100, passo 1.
sl3 - StopLoss das posições abertas pelo perceptron, otimizado entre 10 e 100, passo 1.
p3 - período dos valores da diferença de preço a ser analisada pelo perceptron, otimizado entre 3 e 100, passo 1.
Vamos iniciar o ensino usando o algoritmo genético.
Por fim, na quarta etapa, ensinamos a camada superior da rede neural:
Defina o valor 4 para a entrada 'pass'.
Desmarque as entradas que foram otimizadas na etapa anterior e salve os resultados em um arquivo.
Os parâmetros a serem otimizados são:
x14, x24, x34, x44 - pesos do perceptron da primeira camada, otimizados entre 0 e 200, passo 1.
p4 - período dos valores da diferença de preço a ser analisada pelo perceptron, otimizado entre 3 e 100, passo 1.
Vamos iniciar o ensino usando o algoritmo genético. E voilà, a rede neural está ensinada!
O ATS possui mais uma entrada não otimizada, mn - Magic Number. Esse número identifica as posições para que o sistema de trading não misture suas ordens com as ordens abertas manualmente ou por outros ATS. O valor do número mágico deve ser único e não pode coincidir com os números mágicos de posições que não foram abertas por este Expert Advisor específico.
Observações Finais:
O tamanho do depósito inicial é calculado como o dobro do drawdown absoluto, ou seja, consideramos algumas reservas de segurança.
O EA fornecido nos códigos-fonte não está otimizado.
Se você precisar substituir o BTS embutido pelo algoritmo de outro sistema de trading, precisará modificar a função basicTradingSystem().
Para não precisar inserir manualmente os valores iniciais e finais e os valores dos passos para otimização, você pode usar o arquivo pronto combo.set, colocá-lo na pasta \tester MT4 e carregá-lo nas propriedades do EA no Tester.
A re-otimização do EA deve ser feita durante o final de semana, ou seja, no sábado ou no domingo, mas apenas se os resultados da semana anterior foram negativos. Se houver perdas, isso significa que o mercado mudou, e a re-otimização se faz necessária. Se houver lucros, isso indica que o ATS está identificando os padrões do mercado adequadamente e não requer re-otimização.
2008.03.06