Robot no MetaTrader5

Parte 1 - Robot MetaTrader 5

Posted by     "rbits" on Friday, March 26, 2021

TOC

Histórico

Criar um robô é o caminho para quem quer automatizar suas operações de compra e vendas de ativos no mercado financeiro. Ele tem algumas vantagens em relação ao operador humano:

  • Elimina todo lado emocional;

  • Permite simular suas estratégias contra o histórico de dados passados;

  • Executa mais rápido as operações mesmo com maior volumes de negócios;

  • Validações estatísticas podem ser feitas de forma produza operações vencedores e consistentes a médio e longo prazo;

  • Opera durante todo seu período de trabalho, sem reclamar;

Você que opera no mercado financeiro pode fazer uso de robo para automatizar suas operações de venda e compra de ativos. Nenhum robô substitui a inteligência humana, não entre em falsas promessas divulgadas pela Internet, não existe soluções milagrosas ou sem risco de grandes perdas. Qualquer técnicas ou setup de operação no mercado financeiro podem ser eficientes em alguns periodos, mas o mercado muda constantemente e o risco de perda é sempre alto. Robôs nào são indicados para investidores sem experiência em operações no home-broker das Corretoras.

No mercado existem vários softwares para ajudar a operação na Bolsa, alguns são gratuitos, outros são pagos. Metatrader5 ou MT5 é um plataforma para operação em investimentos que oferece muitos recursos profissionais, entre eles, o uso e criação de robôs, sem custo em algumas Corretoras.

A maioria das Corretoras fazem suas personalizações do MT5 e oferecem a solução completa (ambiente de produção ou demo) de baixo custo ou gratuitamente em muitos casos.

A diferença entre baixar a versão das Corretoras ou da versão baixada diretamente do site do fabricante são as personalizações. O instalador distribuido pelas Corretoras inclui os ativos listados na Bolsa de Valores de São Paulo. A versão direta do fabricante oferece somente algumas moedas configuradas como ativos para operar na conta demo fornecida pelo fabricante. Posteriormente é possivel incluir o pacote da nossa Bolsa na versão baixada do fabricante mas é mais complicado.

As Corretoras oferecem separadamente uma versão com conta de produção e uma outra com conta demo. A conta de produção permite operações reais nas Bolsas, já uma conta demo permite operar somente no modo virtual(sem risco de perder dinheiro) mas faz uso de cotações com dados reais.

A solução ou plataforma MetaTrader possui dois produtos que são instalados com um único instalador no Windows:

  • Plataforma MT5 é o produto de gestão das operações de compra e venda de ativos.

  • MetaEditor é o software de desenvolvimento da programação do robô.

Ao instalar o Plataforma MT5 automaticamente é instalado o MetaEditor.

O robô na plataforma MT5 é chamado de EA (Expert Advisors) que automatiza sua operação na Bolsa.

Portanto, o termo EA(Expert Advisors) = ROBÔ.

O requisito desejável para criação de robos no MT5 é ter tido contato anterior com alguma outra linguagem de programação. Criação de um robo exige um procedimento mais complexo do que simples uso de uma versão pronta. Outro ponto essencial para o sucesso no uso ou criação do robô é ter um setup ou esquema de operação definido, pois será a receita de bolo utilizada na criação das regras executadas pelo seu robô.

Nessa primeira parte será fornecida uma visão geral da solução. Na segunda parte será explicado como executar um robô já pronto. A terceira parte explica tudo sobre o básico da programação no MT5.

Plataforma de Negociação

O MT5 é plataforma de negociação que opera com multimercados (ações, futuro, forex(não por meio de Corretoras no Brasil) desenvolvido pela MetaQuotes Software Corp. Atualmente está na versão 5.

Instalação

A primeira alternativa é a instalação do produto diretamente do fabricante. Será criada uma conta demo para executar as operações.

A segunda alternativa para instalaçao do MT5 é criar uma conta em uma Corretora e adquirir a plataforma MT5. Sugiro usar uma conta demo oferecida pela Corretora para poder treinar e analisar a acertividade das operações ou estrategia antes de entrar na conta de produção. Cada Corretora tem seu próprio procedimento de ativação da plataforma e oferece orientação para configurar ou fazer uso do produto.

Ambiente de Desenvolvimento

O produto MetaEditor oferece um ambiente de desenvolvimento gráfico ou Integrated Development Environment (IDE) para criação e geração do arquivo que será executado no produto MetaTrader 5.

Para programar as regras para um robô ou EA é necessário conhecer a linguagem de programação MQL5. Ela é muito similiar a linguagem de programação C++ ou C# da Microsoft. O codigo de programação usado nas ações do EA são simplesmente instruções da estrategia definidas em comandos da linguagem MQL5 (MetaQuotes Language 5).

Para quem já programou em qualquer linguagem não terá dificuldade. Para quem não tem experiência é importante entender a execução de um robô já pronto ou usar inicialmente o codigo de programação basico do programa oferecido nesse tutorial para depois se preocupar com cada instruçao de programação.

O MT5 oferece uma Comunidade de desenvolvedores que publicam muitos artigos, produtos, problemas, soluções que podem ajudar muito nos primeiros passos com o produto. O acesso ao site pode ser feito a partir do site https://www.mql5.com/en. Esse site é uma como uma grande loja de departamentos. A dica mais importante é que existem muitos codigos prontos disponiveis na seção CodeBase desse site.

As oportunidades de aplicações e serviços dentro do MT5 são enormes. O mais importante é entender como usar os recursos oferecidos pela plataforma MT5.

O MetaEditor pode ser chamado pelo seu link no desktop, a partir do icon na barra de ferramentas do MT5 ou simplesmente pressionando a tecla F4 no mesmo.

Ele é dividido em três partes:

  • Navegador ou Navigator: onde todo o gerenciamento do codigo é feito.

  • Window: onde o codigo é digitado

  • Ferramentas ou Toolbox: onde são visualizadas das as mensagens.

Programação

Da mesma forma que um humano, um robô ou simplesmente EA precisa de uma estrategia para compra e venda de ativos. A estrategia é um espelho das ações de um trader faz durante as operações na Bolsa de Valores.

Nem sempre a estratégia vai ser vencedora. Nesse primeiro momento, a estratégia consiste do cruzamento de duas médias móveis uma de 10 periodos e outra de 50 (uma rápido e outra lenta) mais um filtro de entrada nas operações com o indicador RSI (relative strength index) ou IFR (Indice de Força Relativa) .

O robô pode fazer uso das seguintes operações: apenas o cruzamento das médias móveis, apenas o IFR ou ambos (cruzamento de médias mais IFR).

O Metatrader tem um recurso muito prático que permite testar o robô antes de colocar o mesmo em produção e agilizar os testes a partir de várias configurações baseadas em dados históricos de vários ativos financeiros. Dessa forma, voce não precisa ficar esperando a ocorrencia do evento e reduz a possibilidade de falhas na estratégia.

Abrir o MetaEditor e criar um novo projeto de EA com o nome do arquivo .mql5 criado que contém o codigo do robô. O assistente ajudará a criar um modelo basico para estruturar o codigo de programação do seu EA com tres funções ou metodos basicas:

  • OnInit () é a função para inicializar o robo, só é executa uma única vez no carregamento para memoria.

  • OnDeinit () é a função usada para remover o robo do MT5.

  • OnTick () é a função que contém toda a logica de programação e será executada apenas dentro do horario de funcionamento do mercado.

Existe a função OnTimer () que pode ser usada como alternativa para desenvolvimento com a intenção de minimizar os limites de OnTick(), fazer testes e apurar erros de programacao. Existem outras funções de uso especifico como OnChartEvent(), OnTrader(), OnTester(), etc.

Para programação em MT5 são necessários entender alguns elementos basicos de programação como por exemplo definição de comentários:

  • Comentarios (//) qualquer texto após // será seu comentario, não será interpretado pelo compilador ou seja não será tratado como comando da linguagem MQL5.

  • O segundo tipo de comentário / * aqui seu comentario* / onde o texto entre eles é ignorado, tambem.

Documentos

MetaFrame5:

Perguntas Mais Frequentes