English Русский 中文 Español Deutsch 日本語
preview
De Novato a Especialista: A Jornada Essencial no Comércio MQL5

De Novato a Especialista: A Jornada Essencial no Comércio MQL5

MetaTrader 5Testador |
221 1
Clemence Benjamin
Clemence Benjamin

Seções Principais:

  1. Introdução: Um Breve Passeio pela Minha Jornada no MQL5
  2. Desvendando os Segredos para se Tornar um Trader MQL5 de Sucesso
  3. Implementação de Inteligência Artificial no Desenvolvimento de Algoritmos
  4. Conclusão

 

Introdução: Um Breve Passeio pela Minha Jornada no MQL5

Quando entrei na comunidade MQL5 em 2019, eu era um iniciante com apenas habilidades em trading manual no meu celular e conhecimento limitado sobre trading algorítmico, apesar de uma sólida formação em Ciência da Computação. Eu gostaria de ter compreendido os conceitos de trading algorítmico mais cedo. Inicialmente, eu os rejeitei e continuei com o trading manual. No entanto, três anos depois, enquanto trabalhava como técnico eletrônico, procurei continuar operando apesar do meu trabalho exigente. Esse desejo me motivou a aprender sobre trading algorítmico para desenvolver sistemas que automatizassem minhas operações ou, pelo menos, fornecessem sinais acionáveis.

Voltar à comunidade MQL5 foi como encontrar uma casa de possibilidades. Os artigos que encontrei me motivaram a ler mais, cada um enriquecido com habilidades valiosas. Muitos artigos orientam os leitores por projetos de algoritmos, evoluindo de estágios básicos para complexos. Nos últimos dois anos, refinei minhas habilidades em MQL5 por meio de vários projetos personalizados. O aprendizado se tornou mais rápido com a rápida evolução da tecnologia e dos recursos. Recomendo ler este artigo com atenção para não perder nenhuma informação crucial.

 

Para Quem é Este Artigo?

  1. Iniciantes absolutos para começar.
  2. Desenvolvedores intermediários e avançados para desbloquear novos potenciais.

Eu vou guiá-lo na criação de um programa funcional personalizado para suas necessidades e inspirá-lo a começar. O objetivo deste artigo é tornar a comunidade MQL5 amigável, simplificando o desenvolvimento de algoritmos com as tecnologias emergentes.

O ambiente de trading algorítmico se tornou muito mais amigável em comparação a alguns anos atrás, graças aos recursos educacionais acessíveis. Aqui estão algumas perguntas que guiaram meu foco, e espero que elas o inspirem também:

  • Como os iniciantes podem aprender e dominar rapidamente os fundamentos do MQL5?
  • Quais recursos estão disponíveis para que os aprendizes de MQL5 superem rapidamente desafios específicos de programação?
  • Como os traders podem inventar novas estratégias, otimizar e automatizar usando o MQL5?

Vou discutir três áreas para começar sua jornada no MQL5 como um iniciante absoluto ou para aprimorar suas habilidades como um desenvolvedor sênior. Um conselho que quero dar a você é: “Apaixone-se por texto; há joias escondidas na leitura.” Muitos perdem oportunidades porque não gostam de ler. A internet, especialmente a comunidade MQL5, oferece inúmeras oportunidades para carreiras, autoria, desenvolvimento e freelance. Visito mql5.com pelo menos três vezes ao dia e a integrei com meu ID de terminal móvel, chamado MetaQuotes ID, para receber notificações cruciais no meu dispositivo móvel. Como William Shakespeare disse, “Nem tudo que reluz é ouro.” A verdadeira riqueza está na leitura de textos, que podem não ser tão atraentes quanto imagens, mas até mesmo um algoritmo é composto por texto valioso.

  •  Segredo 1: Comunidade MQL5
  •  Segredo 2: Plataforma Desktop MetaTrader 5
  •  Segredo 3: Inteligência Artificial

Esses três elementos podem ser usados juntos para tornar você um melhor desenvolvedor de algoritmos MQL5. Embora o objetivo deste artigo seja motivá-lo a começar, também garantirei que construamos um programa básico para implementar esses três segredos.

 

Desvendando os Segredos para se Tornar um Trader MQL5 de Sucesso

Segredo 1: Comunidade MQL5

O MQL5 é um recurso abrangente para tudo relacionado ao trading algorítmico. Ele contém tudo o que você precisa para começar e continuar se desenvolvendo como trader. Aqui estão alguns componentes-chave da comunidade MQL5 que são essenciais para desenvolvedores:

  mql5.com

    • Documentação: Recurso abrangente que fornece informações detalhadas sobre programação MQL5, incluindo funções, classes e diretrizes de desenvolvimento.
    • 'AlgoBook': Uma coleção de livros sobre algoritmos para ajudar no desenvolvimento dos seus próprios algoritmos.
    • 'NeuroBook': Livros especializados em redes neurais e técnicas de aprendizado de máquina no trading algorítmico usando MQL5.
    • 'CodeBase': Um repositório de scripts, indicadores e consultores especializados (EAs) gratuitos em MQL5, contribuições da comunidade MQL5 para traders baixarem, usarem e modificarem.
    • Fórum: Plataforma interativa para discutir estratégias de trading, questões de programação e compartilhar experiências e soluções relacionadas ao desenvolvimento MQL5.
    • Artigos: Biblioteca de artigos oferecendo tutoriais, estratégias de trading, dicas de programação e insights sobre vários aspectos do trading algorítmico com MQL5.
    • Mercado: Uma loja online onde os traders podem comprar e vender aplicações de trading MQL5, incluindo EAs, indicadores e scripts.
    • Sinais: Um serviço que permite aos traders assinar sinais de trading fornecidos por traders experientes, possibilitando a cópia automática de suas operações.
    • VPS: Serviço de Servidor Privado Virtual fornecido pela MetaTrader, permitindo que os traders executem seus robôs e sinais 24/7 sem interrupções.
    • Freelance: Plataforma onde os traders podem contratar desenvolvedores freelancers para criar aplicações de trading personalizadas, indicadores ou scripts em MQL5.
    • Cotações: Cotações em tempo real de instrumentos financeiros, fornecendo aos traders os preços de mercado atualizados necessários para tomar decisões informadas de trading.
    • Calendário: Um calendário econômico listando eventos econômicos significativos e notícias que podem impactar os mercados financeiros e as estratégias de trading.
    • 'WebTerminal': Uma versão online da plataforma de trading MetaTrader, permitindo que os traders acessem suas contas e realizem trades diretamente de um navegador da web, sem a necessidade de instalar nenhum software.
    • Caixa de Pesquisa: Uma ferramenta que permite aos usuários encontrar rapidamente informações, recursos ou conteúdo dentro da comunidade MQL5 e sua vasta biblioteca de documentação, artigos e discussões no fórum.

 

Segredo 2: Plataforma Desktop MetaTrader 5

Esta plataforma é outro recurso rico e essencial para dominar o trading algorítmico. Ela possui muitos dos recursos encontrados na comunidade MQL5 e serve como ponto de partida para escrever algoritmos. Ao elaborar estratégias, começo analisando gráficos para identificar padrões repetitivos nos dados de mercado passados, depois desenvolvo a lógica no papel antes de codificar meu algoritmo. MetaTrader 5 vem com o MetaQuotes Language Editor e o Strategy Tester, entre outras funcionalidades, tornando-a uma excelente ferramenta para desenvolvimento e estudos.

Deixe-me mostrar brevemente um exemplo:

Eu abro o gráfico para analisar o que aconteceu. Aqui está uma imagem do GBP/USD antes de qualquer indicador ser aplicado. Em seguida, adiciono EMA 50 e EMA 21 no gráfico para ver como eles interagem com as mudanças de preço. Observo possíveis cruzamentos e marco-os com ferramentas de retângulo. A partir dessa imagem, posso começar a planejar a automação.

GBPUSD 


Configurando MA21



Configurando MA 50


Estratégia de cruzamento de MA do GBPUSD


MetaQuotes Language Editor (MetaEditor):

Templates: O MetaEditor vem com templates prontos para scripts, Expert Advisors (EAs) e indicadores, oferecendo um bom ponto de partida para projetos e ajudando os usuários a entender a estrutura e os componentes principais dos programas MQL5.

Aprendizado Prático: O teórico educacional John Dewey destacou a importância de “aprender fazendo” no início do século 20. Comece criando projetos simples usando esses templates. Modifique e experimente com eles para sentir como diferentes elementos interagem. Essa abordagem prática solidifica seu conhecimento básico e está alinhada com a filosofia de Dewey de que a participação ativa no aprendizado melhora a compreensão e retenção.

 

Segredo 3: Inteligência Artificial

Existem muitos modelos de IA sendo inventados todos os dias, mas vamos falar brevemente sobre o ChatGPT. Ele é um modelo de IA conversacional projetado para ajudar os usuários, fornecendo respostas, inspiração e ajuda na produtividade. É gratuito para usar e pode auxiliar na escrita, aprendizado, brainstorming e muito mais. O ChatGPT foi criado pela OpenAI, uma empresa fundada em 2015.

Modelos de IA como o ChatGPT são treinados com grandes quantidades de dados, incluindo linguagens de programação e documentação. Esse processo de treinamento envolve analisar padrões, entender sintaxe e aprender as melhores práticas de inúmeros exemplos de código em várias linguagens. Como resultado, o ChatGPT pode oferecer orientação em nível de especialista, ajudando você a entender conceitos complexos de programação e resolver problemas de codificação de forma eficiente.

 

Implementação de Inteligência Artificial no Desenvolvimento de Algoritmos

Aqui, vou guiá-lo sobre como a colaboração de ferramentas pode simplificar seu aprendizado e quebrar as limitações causadas pela falta de conhecimento desses recursos. Para começar com o ChatGPT, vou dividir as atividades em dois:

  1. Entendendo os templates do MetaEditor com o ChatGPT
  2. Desenvolvendo um script com a assistência da IA, chamado "Meu Primeiro Programa MQL5"

 

Entendendo os templates do MetaEditor com o ChatGPT

No MetaTrader 5 desktop, vá em Ferramentas e selecione MetaQuotes Language Editor, ou pressione F4 no seu teclado. Uma nova janela do MetaEditor será aberta. Vá em Arquivo e selecione Novo. Abaixo está uma imagem animada mostrando o processo:

MetaEditor: MeuPrimeiroIndicador

Eu nomeei o arquivo como "MeuPrimeiroIndicador", mas isso é opcional; você pode nomeá-lo como quiser. Ao fazer isso, você obterá um template de código mostrado no trecho abaixo.

//+------------------------------------------------------------------+
//|                                             MyFirstIndicator.mq5 |
//|                                  Copyright 2024, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2024, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

Como iniciante, você pode se perguntar: "O que é isso?" Bem, deixe-me mostrar como entender tudo facilmente como parte do nosso objetivo de desbloquear segredos.

  1. Vá até chat.openai.com e inicie um chat.
  2. Copie o código do programa do MetaEditor.
  3. Digite um prompt no ChatGPT: "Explique este código MQL5 em partes:" (cole o código que você copiou) e clique em enviar.

O ChatGPT responderá com uma explicação detalhada do que está acontecendo. Continue lendo para descobrir mais.

Em resposta, o ChatGPT dividiu o programa em trechos e o explicou de uma forma mais envolvente, tornando fácil entender o template. Aqui está o programa explicado pelo ChatGPT em texto itálico:

//+------------------------------------------------------------------+
//|                                             MyFirstIndicator.mq5 |
//|                                  Copyright 2024, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+

  • Esta seção é um comentário de cabeçalho que inclui o nome do arquivo, as informações de copyright e um link para o site da MetaQuotes. Isso é típico no código MQL5 para dar contexto e atribuição.

#property copyright "Copyright 2024, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_chart_window

Essas diretivas #property fornecem metadados sobre o indicador:

  • #property copyright: Indica o detentor dos direitos autorais e o ano.
  • #property link: Fornece um link para um site (normalmente onde mais informações podem ser encontradas).
  • #property version: Especifica a versão do indicador.
  • #property indicator_chart_window: Indica que o indicador será desenhado na janela principal do gráfico (em vez de em uma janela separada).
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   
//---
   return(INIT_SUCCEEDED);
  }

Esta seção define a função OnInit, que é chamada quando o indicador é inicializado:

  • OnInit(): A função é responsável por configurar o indicador, como alocar buffers e inicializar variáveis.
  • return'(INIT_SUCCEEDED);': Indica que a inicialização foi bem-sucedida. INIT_SUCCEEDED é uma constante pré-definida no MQL5.
  • Atualmente, a função não executa nenhuma ação, pois o corpo principal entre os comentários (//---) está vazio.

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

Esta seção define a função OnCalculate, que é chamada para calcular os valores do indicador a cada tick:

  • OnCalculate: Aqui é onde a lógica principal do indicador é implementada. Ele processa os dados de preço e calcula os valores do indicador.
  • Rates_total: Número total de barras no gráfico.
  • 'Prev_calculated': Número de barras calculadas durante a chamada anterior.
  • Time[], open[], high[], low[], close[], tick_volume[], volume[], spread[]: Arrays contendo o tempo, preços de abertura, máxima, mínima, fechamento, volume de ticks, volume real e spread de cada barra.

A função atualmente não realiza nenhum cálculo, pois o corpo principal está vazio. Ela simplesmente retorna rates_total, indicando o número total de barras que foram processadas. Isso é importante para manter o controle das barras processadas nas chamadas subsequentes. Em resumo, este é um código esqueleto para um indicador personalizado em MQL5. Ele configura a estrutura básica e os metadados, mas ainda não executa nenhuma ação ou cálculo específico.


Desenvolvendo um script com a assistência da IA, chamado "Meu Primeiro Programa MQL5"

Primeiro, precisamos saber o objetivo do programa que estamos desenvolvendo. Neste caso, vou sugerir um programa de script para me informar se o candle D1 é Bull ou Bear. Em seguida, vá até o ChatGPT e envie um prompt. Desta vez, queremos fornecer o template do programa de script para armazenamento na memória da IA e depois pedir para modificá-lo de acordo com as condições.

Criar um Script


Defina o nome do Script

Primeiro, precisamos saber o objetivo do programa que estamos desenvolvendo. Neste caso, vou sugerir um programa de script para me informar se o candle D1 é Bull ou Bear. Após pressionar "Concluir", obtemos esse template de programa e o copiamos para ChatGPT para realizar nosso plano de acordo com este contexto:

//+------------------------------------------------------------------+
//|                                          MyFirstMQL5 Program.mq5 |
//|                                  Copyright 2024, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2024, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   
  }
//+------------------------------------------------------------------+
Abaixo está um trecho de código conforme solicitado no ChatGPT.
Create an MQL5 script from this template that tells day candle status on screen: //+------------------------------------------------------------------+
//|                                          MyFirstMQL5 Program.mq5 |
//|                                  Copyright 2024, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2024, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   
  }
//+------------------------------------------------------------------+

 ChatGPT responde:

//+------------------------------------------------------------------+
//|                                          MyFirstMQL5 Program.mq5 |
//|                                  Copyright 2024, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2024, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

// Input parameters for customizing the text display
input color TextColor = clrRed;               // Color of the text
input int FontSize = 20;                      // Font size
input ENUM_ANCHOR_POINT AnchorCorner = ANCHOR_LEFT_UPPER; // Text anchor point
input int X_Offset = 10;                      // X offset
input int Y_Offset = 10;                      // Y offset

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   // Get the opening price of the current day
   double openPrice = iOpen(_Symbol, PERIOD_D1, 0);
   
   // Get the closing price of the current day
   double closePrice = iClose(_Symbol, PERIOD_D1, 0);
   
   // Determine the candle status
   string candleStatus = (closePrice >= openPrice) ? "Bullish" : "Bearish";
   
   // Display the candle status on the screen
   DisplayCandleStatus(candleStatus);
  }

//+------------------------------------------------------------------+
//| Function to display the candle status on the screen              |
//+------------------------------------------------------------------+
void DisplayCandleStatus(string status)
  {
   string objName = "CandleStatusText";
   
   if(ObjectFind(0, objName) < 0)
     {
      // Create the text object if it doesn't exist
      ObjectCreate(0, objName, OBJ_LABEL, 0, 0, 0);
      ObjectSetInteger(0, objName, OBJPROP_CORNER, AnchorCorner);
      ObjectSetInteger(0, objName, OBJPROP_XDISTANCE, X_Offset);
      ObjectSetInteger(0, objName, OBJPROP_YDISTANCE, Y_Offset);
      ObjectSetInteger(0, objName, OBJPROP_FONTSIZE, FontSize);
      ObjectSetInteger(0, objName, OBJPROP_COLOR, TextColor);
     }
   
   // Update the text
   ObjectSetString(0, objName, OBJPROP_TEXT, "Day Candle: " + status);
  }
//+------------------------------------------------------------------+


Testando

Aqui está o procedimento que segui durante os testes.

  • Copie o Código: Após receber o script modificado do ChatGPT, copie o código.
  • Abra o MetaEditor: Inicie o MetaEditor no seu computador.
  • Crie um Novo Script:
    • Vá em Arquivo > Novo > Script.
    • Digite um nome para o seu script, depois clique em Avançar e Concluir.
  • Cole o Código: Substitua o código gerado automaticamente no novo arquivo de script pelo código modificado que você recebeu do ChatGPT.
  • Compile o Script:
    • Clique no botão Compilar na barra de ferramentas do MetaEditor.
    • Se não houver erros, seu script será compilado com sucesso.
  • Verifique a Saída:
    • Na aba Navegador, procure na seção Scripts para encontrar seu arquivo de script compilado.
    • Arraste e solte o script em um gráfico no MetaTrader 5 para ver os resultados.

  • Revise os Resultados: Monitore o gráfico para verificar se o script identifica corretamente se o candle D1 é um Bull ou um Bear.

Compilando no MetaEditor


O programa compilou com sucesso sem necessidade de edições adicionais. O candle D1 foi confirmado como Bullish pelo script.

O script agora foi adicionado na pasta de scripts Boom 500 Index D1



Conclusão

Dominar o MQL5 é uma jornada que combina aprendizado, experimentação e o uso de ferramentas avançadas como a IA. Ao dominar os fundamentos, interagir com os recursos da comunidade, superar desafios dinâmicos com assistência da IA, otimizar estratégias e abraçar a automação, você pode desbloquear seu potencial completo como trader. Esses três segredos são apenas o começo; o aprendizado contínuo e a adaptação garantirão que você se mantenha à frente no dinâmico mundo do trading algorítmico. Aproveite as oportunidades que o MQL5 oferece e veja seu sucesso no trading disparar.

Muito pode ser feito com IA, e o limite é sua mente e a habilidade de comunicar sua ideia com ela. Nem todos os programas criados por IA serão executados de forma eficiente todas as vezes; às vezes, é necessário ir além na depuração e revisitar a documentação da comunidade e os Livros do MQL5 para uma pesquisa mais profunda. Há muito o que compartilhar, mas vamos deixar isso para a próxima vez. Pelo menos agora você tem um companheiro. Feliz desenvolvimento!
Nome do Arquivo Descrição
'MyFirstIndicator.mq5' Template de indicador MQL5
MyFirstMQL5 Program.mq5 Algoritmo de script.
MyFirstMQL5 Program.ex5 Script compilado pronto para uso.


Traduzido do Inglês pela MetaQuotes Ltd.
Artigo original: https://www.mql5.com/en/articles/15320

Últimos Comentários | Ir para discussão (1)
Yuriy Scherbakov
Yuriy Scherbakov | 29 abr. 2025 em 18:46
Bate-papo. Openai. Com não está funcionando
Redes neurais em trading: Segmentação guiada (Conclusão) Redes neurais em trading: Segmentação guiada (Conclusão)
Damos continuidade ao trabalho iniciado no artigo anterior sobre a construção do framework RefMask3D utilizando MQL5. Esse framework foi desenvolvido para um estudo aprofundado da interação multimodal e da análise de características em nuvens de pontos, com posterior identificação do objeto-alvo com base em uma descrição fornecida em linguagem natural.
Otimização com búfalos-africanos — African Buffalo Optimization (ABO) Otimização com búfalos-africanos — African Buffalo Optimization (ABO)
O artigo é dedicado ao algoritmo de otimização com búfalos-africanos (ABO), uma abordagem meta-heurística desenvolvida em 2015 com base no comportamento único desses animais. Ele descreve detalhadamente as etapas de implementação do algoritmo e sua eficácia na busca por soluções de problemas complexos, tornando-o uma ferramenta valiosa na área de otimização.
Algoritmo de otimização baseado em ecossistema artificial — Artificial Ecosystem-based Optimization (AEO) Algoritmo de otimização baseado em ecossistema artificial — Artificial Ecosystem-based Optimization (AEO)
O artigo aborda o algoritmo metaheurístico AEO, que modela as interações entre os componentes de um ecossistema, criando uma população inicial de soluções e aplicando estratégias adaptativas de atualização, e descreve detalhadamente as etapas do funcionamento do AEO, incluindo as fases de consumo e decomposição, bem como as diferentes estratégias de comportamento dos agentes. O artigo apresenta as características e vantagens do AEO.
Análise de Sentimento no Twitter com Sockets Análise de Sentimento no Twitter com Sockets
Este inovador bot de negociação integra o MetaTrader 5 com Python para aproveitar a análise de sentimento em tempo real nas mídias sociais para decisões automatizadas de negociação. Ao analisar o sentimento no Twitter relacionado a instrumentos financeiros específicos, o bot traduz as tendências das mídias sociais em sinais acionáveis de negociação. Ele utiliza uma arquitetura cliente-servidor com comunicação via socket, permitindo uma interação contínua entre as capacidades de negociação do MT5 e o poder de processamento de dados do Python.