MTC Combo: Otimizando seu Trading com Neural Networks no MetaTrader 5

Mike 2017.01.20 01:56 19 0 0
Anexo

Hoje, vamos falar sobre o MTC Combo, um sistema que combina o Sistema de Trading Básico (BTS) com uma rede neural (NN) para potencializar suas operações no MetaTrader 5.

O objetivo do EA é simples: utilizar uma rede neural para complementar a estratégia do BTS, realizando ações que o sistema básico não consegue. Dessa forma, você terá um sistema de trading que combina o melhor dos dois mundos.

Não precisamos reinventar a roda, certo? Se já existe um carro, por que ensinar alguém a correr? E se temos um helicóptero, por que ensinar a voar? Se o seu sistema de trading é voltado para tendências, é fundamental ensinar a rede neural a operar contra a tendência. Um sistema de tendências não consegue identificar bem os períodos de lateralização ou as reversões. Uma alternativa é usar duas estratégias - uma de tendência e outra contra a tendência - no mesmo gráfico, ou treinar a rede neural para que ela complemente o sistema de trading.

Para isso, desenvolvemos uma rede neural de duas camadas, composta por dois perceptrons na camada inferior e um perceptron na camada superior. A rede neural pode estar em um dos três estados:

  1. Entrando em uma posição longa
  2. Entrando em uma posição curta
  3. Indefinido

Quando a rede neural está indefinida, o controle é passado para o BTS, enquanto os sinais de trading são gerados nos dois primeiros estados.

O treinamento da rede neural ocorre em três etapas, com um perceptron sendo treinado a cada uma delas. O BTS otimizado está presente em cada estágio, permitindo que os perceptrons saibam suas capacidades.

O treinamento separado dos perceptrons utiliza um algoritmo genético, que, apesar de ter algumas limitações, permite que o processo de otimização seja realizado de maneira lógica e dentro de um tempo razoável.

Antes de iniciarmos o treinamento da rede neural, precisamos otimizar o BTS. Para isso, o número do estágio é especificado na entrada do EA com o ID pass, que termina com o número do estágio.

Vamos às preparações iniciais para a otimização e treinamento da rede neural.

Defina o depósito inicial no testador como R$100 (para evitar um margin call artificial durante a otimização), otimize o parâmetro Balance + max Sharpe Ratio e escolha o tipo de otimização Fast Genetic Algorithm.

Agora, vá para a aba de Entradas nas propriedades do EA. Defina o tamanho do lote das posições abertas atribuindo o valor de 0.01 ao ID lots.

A otimização deve ser feita segundo o modelo Open prices only, que é mais rápido e o algoritmo do EA possui uma gestão eficaz de novas barras.

Primeira etapa: otimização do BTS:

Defina pass como 1. Otimize apenas as entradas correspondentes ao primeiro estágio, com todos os IDs terminando em um. Portanto, marque apenas essas entradas para otimização e remova as marcações dos demais parâmetros.

  • tp1 - take profit do BTS. Otimizado entre 100 e 1000, com passo de 10
  • sl1 - stop loss do BTS. Otimizado entre 100 e 1000, com passo de 10
  • p1 - período do oscilador CCI aplicado no BTS. Otimizado entre 3 e 100, com passo de 1

Inicie o treinamento através da otimização do algoritmo genético.

Segunda etapa: treinamento do perceptron responsável por posições curtas:

Defina a entrada pass para 2. Remova as marcações de otimização configuradas na etapa anterior e salve as entradas obtidas anteriormente.

Defina as marcações de otimização para os parâmetros da segunda etapa (IDs terminando em dois):

  • x12, x22, x32, x42 - proporções de peso do perceptron reconhecendo posições curtas. Otimizado entre 0 e 200, com passo de 1.
  • tp2 - take profit de posições abertas pelo perceptron. Otimizado entre 100 e 1000, com passo de 10
  • sl2 - stop loss de posições abertas pelo perceptron. Otimizado entre 100 e 1000, com passo de 10
  • p2 - período dos valores da diferença de preço analisados pelo perceptron. Otimizado entre 3 e 100, com passo de 1.

Inicie o treinamento através da otimização do algoritmo genético.

Terceira etapa: treinamento do perceptron responsável por posições longas:

Defina a entrada pass para 3. Remova as marcações de otimização configuradas na etapa anterior e salve as entradas obtidas anteriormente.

Defina as marcações de otimização para os parâmetros da terceira etapa (IDs terminando em três):

  • x13, x23, x33, x43 - proporções de peso do perceptron reconhecendo posições longas. Otimizado entre 0 e 200, com passo de 1.
  • tp3 - take profit de posições abertas pelo perceptron. Otimizado entre 100 e 1000, com passo de 10
  • sl3 - stop loss de posições abertas pelo perceptron. Otimizado entre 100 e 1000, com passo de 10
  • p3 - período dos valores da diferença de preço analisados pelo perceptron. Otimizado entre 3 e 100, com passo de 1.

Inicie o treinamento através da otimização do algoritmo genético.

Quarta etapa: treinamento da primeira camada (perceptron da camada superior):

Defina a entrada pass para 4. Remova as marcações de otimização configuradas na etapa anterior e salve as entradas obtidas anteriormente.

Defina as marcações de otimização para os parâmetros da quarta etapa (IDs terminando em quatro):

  • x14, x24, x34, x44 - proporções de peso do perceptron da primeira camada. Otimizado entre 0 e 200, com passo de 1.
  • p4 - período dos valores da diferença de preço analisados pelo perceptron. Otimizado entre 3 e 100, com passo de 1.

Inicie o treinamento através da otimização do algoritmo genético.

Pronto! A rede neural está treinada.

O EA possui ainda um parâmetro não otimizado chamado mn, que é o número mágico permitindo ao sistema distinguir suas próprias ordens entre as abertas manualmente ou por outros EAs. O número mágico deve ser único.

P.S.

  • O tamanho do depósito inicial é definido como um drawdown absoluto multiplicado por dois (margem de segurança).
  • O código-fonte do EA não foi otimizado.
  • Altere o conteúdo da função basicTradingSystem() se você quiser substituir o BTS embutido por outro algoritmo de trading.
  • Re-otimize o EA durante os finais de semana se os resultados da semana anterior forem insatisfatórios. As perdas sinalizam mudanças no mercado e a necessidade de re-otimização. Se o EA for lucrativo, não há necessidade de re-otimização, pois o robô reconhece bem os padrões do mercado.
Lista
Comentário 0