Hoje estou comemorando comigo mesmo!
Faz alguns dias que tenho pensado em aprender a programar(obrigado cryptoctopus), principalmente por ser uma habilidade que tenho acreditado cada dia mais que, independente da área de atuação profissional, pode ter grande utilidade.
Sempre fui envolvido desde criança com computadores (meu pai tinha um MSX), mas por algum motivo aprender a programar nunca havia me despertado curiosidade suficiente até agora.
Depois de uns dias cogitando qual linguagem seria mais interessante para os meus objetivos pessoais, tive uma epifania: Porque não aprender o MQL, linguagem de programação do metatrader, e quem sabe programar um bom robô de trade?
E assim o fiz, e hoje, menos de uma semana depois de iniciar a tentar entender como criar um programa no Metatrader 4, consegui finalizar a programação de um Expert Advisor(Robô de Trade). No fim das contas, o pouco interesse que tive sobre como programar em Basic no MSX, alguns cursos durante a adolescência, e uma matéria de Programação Orientada a Objetos na faculdade foram de grande utilidade nesses dias.
E no fim das contas acabou sendo mais fácil do que eu esperava.
Esse meu robô não é nenhuma nova maravilha do trade, não tenho muita certeza se vai ser lucrativo, e provavelmente tem muitas falhas de otimização de código, mas é uma sensação muito boa saber que é sim possível aprender um sistema de programação com uma certa dose de esforço, e conseguir resultados efetivos.
A lógica do robô é bem simples, utilizando três médias móveis exponenciais (200,26,12) :
Utiliza a comparação entre EMA 26 e EMA 200
* Se EMA 26 > EMA 200 - Tendência de Alta
* Se EMA 26 < EMA 200 - Tendência de BaixaSe estiver em tendência de Alta, realiza compra em uma das três condições
- EMA 16 cruza EMA 26 de baixo para cima
- Fecha a compra quando o preço toca EMA 16
- EMA 26 cruza EMA 200 de baixo para cima
- Fecha compra quando EMA 16 cruza EMA 26 de cima para baixo
- Quando EMA 16 > EMA 26, compra quando o preço toca EMA 26
- Fecha compra quando EMA 16 cruza EMA 26 de cima para baixo
- EMA 16 cruza EMA 26 de baixo para cima
Se estiver em tendência de Baixa, realiza venda em uma das três condições
- EMA 16 cruza EMA 26 de cima para baixo
- Fecha a compra quando o preço toca EMA 16
- EMA 26 cruza EMA 200 de cima para baixo
- Fecha compra quando EMA 16 cruza EMA 26 de baixo para cima
- Quando EMA 16 > EMA 26, compra quando o preço toca EMA 26
- Fecha compra quando EMA 16 cruza EMA 26 de baixo para cima
- EMA 16 cruza EMA 26 de cima para baixo
Em um post futuro explico melhor a estratégia, com desenhos para melhor entendimento.
ATENÇÃO: Estou utilizando essa estratégia apenas por motivos de aprendizado. Utilize-a por sua conta e risco.
O código em MQL é baseado em C++, então algum conhecimento sobre essa linguagem já facilita bastante o aprendizado.
Se você aí lendo esse artigo tem conhecimento de MQL ou C++, sinta-se livre em criticar, e sugerir melhorias na forma de escrever o código. Eu agradeço muito qualquer orientação.
Sem mais delongas, apresento a vocês, o MEU ROBÔ! (Parte do código não foi eu que escrevi, mas copiei dos tutoriais, afinal é parte do aprendizado):
O código ficou completamente bugado aqui, então se quiserem dar uma olhada nele, vejam aqui
Posted from my blog with SteemPress : http://tradingpassoapasso.com.br/index.php/2018/02/14/o-primeiro-programa-agente-nunca-esquece-metatrader-mql4/