De Novato a Especialista: A Jornada Essencial no Comércio MQL5
Seções Principais:
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?
- Iniciantes absolutos para começar.
- 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:

- 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.

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:
- Entendendo os templates do MetaEditor com o ChatGPT
- 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:

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.
- Vá até chat.openai.com e inicie um chat.
- Copie o código do programa do MetaEditor.
- 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.
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.

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

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
Aviso: Todos os direitos sobre esses materiais pertencem à MetaQuotes Ltd. É proibida a reimpressão total ou parcial.
Esse artigo foi escrito por um usuário do site e reflete seu ponto de vista pessoal. A MetaQuotes Ltd. não se responsabiliza pela precisão das informações apresentadas nem pelas possíveis consequências decorrentes do uso das soluções, estratégias ou recomendações descritas.
Redes neurais em trading: Segmentação guiada (Conclusão)
Otimização com búfalos-africanos — African Buffalo Optimization (ABO)
Algoritmo de otimização baseado em ecossistema artificial — Artificial Ecosystem-based Optimization (AEO)
Análise de Sentimento no Twitter com Sockets
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Publicou o artigo From Beginner to Expert: Essentials on the Way to Trade in MQL5:
Autor: Clemence Benjamin