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:
- Entrando em uma posição longa
- Entrando em uma posição curta
- 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.
Comentário 0