Artigos sobre como programar e utilizar robôs de negociação na linguagem MQL5

icon

Os experts que os desenvolvedores criam para o MetaTrader realizam uma grande variedade de tarefas. Entre elas estão o monitoramento de muitos instrumentos financeiros 24h por dia, a cópia de operações, a criação e o envio de relatórios, a análise de notícias e até mesmo o acesso dos traders à sua própria interface gráfica personalizada.

Os artigos podem abordar técnicas de programação, ideias matemáticas para processamento de dados, dicas para criar e encomendar robôs de negociação.

Novo artigo
recentes | melhores
preview
Matrizes e vetores em MQL5

Matrizes e vetores em MQL5

Os tipos de dados especiais matrix e vector permitem escrever um código que se aproxima da notação matemática. Isto poupa o trabalho de criar laços aninhados e de lembrar de indexar corretamente as matrizes que estão envolvidas no cálculo. Isto aumenta a confiabilidade e a velocidade de desenvolvimento de programas complexos.
preview
Indicadores múltiplos em um gráfico (Parte 04): Iniciando pelo EA

Indicadores múltiplos em um gráfico (Parte 04): Iniciando pelo EA

Em artigos anteriores, eu expliquei como criar um indicador com múltiplas sub janela, mas apesar de ser interessante de se fazer, quando usamos um indicador personalizado. Aqui vamos entender como adicionar múltiplas janelas em um EA.
preview
Stop-loss fixo com base na ação do preço e RSI (stop-loss "inteligente")

Stop-loss fixo com base na ação do preço e RSI (stop-loss "inteligente")

O Stop-loss é a principal ferramenta de gerenciamento de dinheiro na negociação. O uso eficaz do stop-loss, take-profit e tamanho do lote pode tornar a negociação mais consistente e, em geral, mais lucrativa. No entanto, fazer uso disto tem suas próprias dificuldades. A principal delas é a caça ao stop-loss. Neste artigo analisaremos como minimizar o efeito da caça ao stop-loss e compararemos isto com o uso clássico de stop loss para determinar lucratividade.
Desenvolvimento de robôs de negociação usando programação visual
Desenvolvimento de robôs de negociação usando programação visual

Desenvolvimento de robôs de negociação usando programação visual

Este artigo demonstra as capacidades do editor botbrains.app, uma plataforma no-code para o desenvolvimento de robôs de negociação. Para criar um robô de negociação você não precisa programar, basta arrastar os blocos necessários para o esquema, definir seus parâmetros e estabelecer as ligações entre eles.
Como se tornar um bom programador (Parte 7): como se tornar um desenvolvedor freelancer de sucesso
Como se tornar um bom programador (Parte 7): como se tornar um desenvolvedor freelancer de sucesso

Como se tornar um bom programador (Parte 7): como se tornar um desenvolvedor freelancer de sucesso

Quer se tornar um desenvolvedor de sucesso no Freelance da MQL5.Community? Então recomendo a leitura das dicas deste artigo.
preview
Construindo uma rede neural profunda do zero em linguagem MQL

Construindo uma rede neural profunda do zero em linguagem MQL

Neste artigo, vou apresentar a vocês uma rede neural profunda implementada em linguagem MQL com suas diferentes funções de ativação, entre elas estão a função tangente hiperbólica para as camadas ocultas e a função Softmax para a camada de saída. Avançaremos do primeiro passo até o final para formar completamente a rede neural profunda.
preview
Trabalhando com o tempo (Parte 1): princípios básicos

Trabalhando com o tempo (Parte 1): princípios básicos

As funções e o código discutidos no artigo o ajudarão a entender melhor os princípios de processamento de tempo, de mudança de horário da corretora e de horário de verão ou de inverno. O uso adequado do tempo é um aspecto muito importante do trading. Este nos permite saber, por exemplo, se a Bolsa de Londres ou Nova Iorque já abriu ou ainda não ou a que horas começa/termina o pregão no mercado de moedas.
Desenvolvendo um EA de negociação do zero
Desenvolvendo um EA de negociação do zero

Desenvolvendo um EA de negociação do zero

Entenda como se dá o desenvolvimento de um EA para negociação programando o mínimo possível.
Como se tornar um bom programador (Parte 2): mais cinco hábitos que devem ser abandonados para programar melhor em MQL5
Como se tornar um bom programador (Parte 2): mais cinco hábitos que devem ser abandonados para programar melhor em MQL5

Como se tornar um bom programador (Parte 2): mais cinco hábitos que devem ser abandonados para programar melhor em MQL5

Este artigo é uma leitura obrigatória destinada a todos que desejam melhorar sua carreira como programadores. O objetivo desta série de artigos é ajudar o leitor, incluindo experientes, a melhorar suas habilidades de programação. As ideias descritas são aplicáveis tanto a programadores iniciantes em MQL5 quanto a profissionais.
Padrões com exemplos (Parte I): Topo múltiplo
Padrões com exemplos (Parte I): Topo múltiplo

Padrões com exemplos (Parte I): Topo múltiplo

Com este artigo começamos um ciclo em que consideraremos padrões de reversão no âmbito da negociação algorítmica. Iniciamos examinando a primeira e mais interessante família de padrões desse tipo que se originam dos chamados topo duplo e fundo duplo.
Gráficos na biblioteca DoEasy (Parte 76): objeto forma e temas de cores predefinidos
Gráficos na biblioteca DoEasy (Parte 76): objeto forma e temas de cores predefinidos

Gráficos na biblioteca DoEasy (Parte 76): objeto forma e temas de cores predefinidos

Neste artigo, descreveremos o conceito de criação de temas de GUI na biblioteca, criaremos um objeto forma que será descendente de um objeto da classe do elemento gráfico, prepararemos dados para criar as sombras dos objetos gráficos da biblioteca e para continuar desenvolvendo a funcionalidade no futuro.
Gráficos na biblioteca DoEasy (Parte 75): métodos para trabalhar com primitivos e texto num elemento gráfico básico
Gráficos na biblioteca DoEasy (Parte 75): métodos para trabalhar com primitivos e texto num elemento gráfico básico

Gráficos na biblioteca DoEasy (Parte 75): métodos para trabalhar com primitivos e texto num elemento gráfico básico

No artigo, continuaremos a desenvolver a classe base do elemento gráfico que compreende todos os objetos gráficos criados com base na classe da Biblioteca Padrão CCanvas. Criaremos métodos para desenhar primitivas gráficas e métodos para enviar texto para um objeto-elemento gráfico.
Gráficos na biblioteca DoEasy (Parte 74): elemento gráfico básico baseado na classe CCanvas
Gráficos na biblioteca DoEasy (Parte 74): elemento gráfico básico baseado na classe CCanvas

Gráficos na biblioteca DoEasy (Parte 74): elemento gráfico básico baseado na classe CCanvas

Vamos revisar o conceito de construção de objetos gráficos, que vimos no artigo anterior, e preparar uma classe base para todos os objetos gráficos da biblioteca criados com base na classe CCanvas da Biblioteca Padrão.
Gráficos na biblioteca DoEasy (Parte 73): objeto-forma de um elemento gráfico
Gráficos na biblioteca DoEasy (Parte 73): objeto-forma de um elemento gráfico

Gráficos na biblioteca DoEasy (Parte 73): objeto-forma de um elemento gráfico

Neste artigo, começamos uma nova seção grande sobre a biblioteca para trabalhar com gráficos. Hoje vamos criar um objeto de estados do mouse, um objeto base de todos os elementos gráficos e uma classe do objeto-forma dos elementos gráficos da biblioteca.
Outras classes na biblioteca DoEasy (Parte 72): rastreamento e fixação dos parâmetros de objetos-gráficos numa coleção
Outras classes na biblioteca DoEasy (Parte 72): rastreamento e fixação dos parâmetros de objetos-gráficos numa coleção

Outras classes na biblioteca DoEasy (Parte 72): rastreamento e fixação dos parâmetros de objetos-gráficos numa coleção

Neste artigo, vamos finalizar as classes de objetos-gráficos e de sua coleção. Faremos o rastreamento automático das alterações das propriedades dos gráficos e das suas janelas, bem como o armazenamento de novos parâmetros nas propriedades do objeto. Este aprimoramento nos permitirá gerar uma funcionalidade de evento para toda a coleção de gráficos no futuro.
Outras classes na biblioteca DoEasy (Parte 71): eventos da coleção de objetos-gráficos
Outras classes na biblioteca DoEasy (Parte 71): eventos da coleção de objetos-gráficos

Outras classes na biblioteca DoEasy (Parte 71): eventos da coleção de objetos-gráficos

Neste artigo, criaremos uma funcionalidade para rastrear alguns eventos de objetos-gráficos - adição/remoção de gráficos de símbolos, de subjanelas do gráfico, bem como adição/exclusão/mudança de indicadores presentes em janelas de gráficos.
Swaps (Parte I): bloqueio e posições sintéticas
Swaps (Parte I): bloqueio e posições sintéticas

Swaps (Parte I): bloqueio e posições sintéticas

Neste artigo, tentarei expandir o conceito clássico de métodos de negociação de swap, e também explicarei porque cheguei à conclusão de que ele, em minha opinião, merece atenção especial e vale absolutamente a pena ser estudado.
Outras classes na biblioteca DoEasy (Parte 69): classe-coleção de objetos-gráficos
Outras classes na biblioteca DoEasy (Parte 69): classe-coleção de objetos-gráficos

Outras classes na biblioteca DoEasy (Parte 69): classe-coleção de objetos-gráficos

Com este artigo, começaremos o desenvolvimento de uma classe-coleção de objetos-gráficos que armazenará uma lista-coleção de objetos-gráficos com suas subjanelas e indicadores, e tornará possível trabalhar com gráficos selecionados e suas subjanelas, ou com uma lista de vários gráficos ao mesmo tempo.
preview
Redes neurais de maneira fácil (Parte 13): normalização em lote

Redes neurais de maneira fácil (Parte 13): normalização em lote

No artigo anterior, começamos a examinar métodos para melhorar a qualidade do treinamento da rede neural. Neste artigo, proponho continuar este tópico e considerar uma outra abordagem, em particular a de normalização de dados em lote.
Outras classes na biblioteca DoEasy (Parte 68): classe de objeto-gráfico e classes de objetos-indicadores na janela do gráfico
Outras classes na biblioteca DoEasy (Parte 68): classe de objeto-gráfico e classes de objetos-indicadores na janela do gráfico

Outras classes na biblioteca DoEasy (Parte 68): classe de objeto-gráfico e classes de objetos-indicadores na janela do gráfico

Neste artigo, continuaremos a desenvolver a classe do objeto-gráfico. Vamos adicionar uma lista de objetos-janelas, onde, por sua vez, estarão disponíveis as listas de indicadores colocados nestas.
Outras classes na biblioteca DoEasy (Parte 67): classe de objeto-gráfico
Outras classes na biblioteca DoEasy (Parte 67): classe de objeto-gráfico

Outras classes na biblioteca DoEasy (Parte 67): classe de objeto-gráfico

Neste artigo, vamos criar uma classe de um objeto-gráfico (um gráfico de um instrumento de negociação) e modificar a classe-coleção de objetos de sinal mql5 para que cada objeto-sinal armazenado na coleção também atualize todos os seus parâmetros quando a lista é atualizada.
preview
Redes Neurais de Maneira Fácil (Parte 12): Dropout

Redes Neurais de Maneira Fácil (Parte 12): Dropout

Como a próxima etapa no estudo das redes neurais, eu sugiro considerar os métodos de aumentar a convergência durante o treinamento da rede neural. Existem vários desses métodos. Neste artigo, nós consideraremos um deles intitulado Dropout.
Outras classes na biblioteca DoEasy (Parte 66): classe-coleção de Sinais MQL5.com
Outras classes na biblioteca DoEasy (Parte 66): classe-coleção de Sinais MQL5.com

Outras classes na biblioteca DoEasy (Parte 66): classe-coleção de Sinais MQL5.com

Neste artigo, criaremos uma classe-coleção de sinais - do serviço Sinais MQL5.com - com funções para gerenciar sinais assinados e também modificaremos a classe do objeto-instantâneo do livro de ofertas para exibir o volume total de ordens sell e buy.
preview
Técnicas úteis e exóticas para a negociação automatizada

Técnicas úteis e exóticas para a negociação automatizada

Neste artigo, eu demonstrarei algumas técnicas muito interessantes e úteis para a negociação automatizada. Algumas delas podem ser familiares para você. Eu tentarei cobrir os métodos mais interessantes e explicarei por que vale a pena usá-los. Além disso, eu mostrarei o que essas técnicas podem fazer na prática. Nós criaremos Expert Advisors e testaremos todas as técnicas descritas usando as cotações históricas.
preview
Redes Neurais de Maneira Fácil (Parte 11): Uma visão sobre a GPT

Redes Neurais de Maneira Fácil (Parte 11): Uma visão sobre a GPT

Talvez um dos modelos mais avançados entre as redes neurais de linguagem atualmente existentes seja a GPT-3, cuja variante máxima contém 175 bilhões de parâmetros. Claro, nós não vamos criar tal monstro em nossos PCs domésticos. No entanto, nós podemos ver quais soluções arquitetônicas podem ser usadas em nosso trabalho e como nós podemos nos beneficiar delas.
Trabalhando com preços na biblioteca DoEasy (Parte 64): livro de ofertas, classes do objeto-instantâneo e objeto-série de instantâneos do livro de ofertas
Trabalhando com preços na biblioteca DoEasy (Parte 64): livro de ofertas, classes do objeto-instantâneo e objeto-série de instantâneos do livro de ofertas

Trabalhando com preços na biblioteca DoEasy (Parte 64): livro de ofertas, classes do objeto-instantâneo e objeto-série de instantâneos do livro de ofertas

Neste artigo, criaremos duas classes (a do objeto-instantânea do livro de ofertas e a do objeto-série dos instantâneos do livro de ofertas) e testaremos a criação de uma série de dados do livro de ofertas.
Algoritmo auto-adaptável (Parte IV): funcionalidade e testes adicionais
Algoritmo auto-adaptável (Parte IV): funcionalidade e testes adicionais

Algoritmo auto-adaptável (Parte IV): funcionalidade e testes adicionais

Continuo a complementar o algoritmo com a funcionalidade mínima necessária, vou fazer testes do que obtivemos como resultado. A lucratividade acabou sendo baixa, mas os artigos mostram um modelo que permite negociar com lucro de modo totalmente automático com base em instrumentos de negociação completamente diferentes, e não apenas diferentes, mas também operados em mercados fundamentalmente diferentes.
preview
Aplicação prática de redes neurais no trading (Parte 2). Visão computacional

Aplicação prática de redes neurais no trading (Parte 2). Visão computacional

O uso da visão computacional permite treinar redes neurais, usando uma representação visual do gráfico de preços e indicadores. Este método nos permite operar mais livremente com todo o conjunto de indicadores técnicos, uma vez que não requer feed digital para a rede neural.
Trabalhando com preços na biblioteca DoEasy (Parte 62): atualização em tempo real da série de ticks, preparação para trabalhar com o livro de ofertas
Trabalhando com preços na biblioteca DoEasy (Parte 62): atualização em tempo real da série de ticks, preparação para trabalhar com o livro de ofertas

Trabalhando com preços na biblioteca DoEasy (Parte 62): atualização em tempo real da série de ticks, preparação para trabalhar com o livro de ofertas

Neste artigo, atualizaremos em tempo real da coleção de dados de ticks e prepararemos a classe do objeto-símbolo para trabalhar com o livro de ofertas, cujo funcionamento abordaremos no próximo artigo.
preview
Força bruta para encontrar padrões (Parte III): novos horizontes

Força bruta para encontrar padrões (Parte III): novos horizontes

Este artigo dá continuidade ao tópico sobre força bruta, trazendo novos recursos de análise de mercado para o algoritmo do meu programa e acelerando, assim, a velocidade da análise e a qualidade dos resultados finais, o que fornece a visão da mais alta qualidade de padrões globais dentro da estrutura desta abordagem.
preview
Redes neurais de maneira fácil (Parte 10): Atenção Multi-Cabeça

Redes neurais de maneira fácil (Parte 10): Atenção Multi-Cabeça

Nós já consideramos anteriormente o mecanismo de self-attention (autoatenção) em redes neurais. Na prática, as arquiteturas de rede neural modernas usam várias threads de self-attention paralelas para encontrar várias dependências entre os elementos de uma sequência. Vamos considerar a implementação de tal abordagem e avaliar seu impacto no desempenho geral da rede.
Algoritmo auto-adaptável (Parte III): evitando a otimização
Algoritmo auto-adaptável (Parte III): evitando a otimização

Algoritmo auto-adaptável (Parte III): evitando a otimização

É impossível obter um algoritmo verdadeiramente estável se para a seleção de parâmetros com base em dados históricos for usada uma otimização. Um algoritmo estável em si deve saber que parâmetros são necessários para trabalhar com qualquer instrumento de negociação a qualquer momento. Ele não deve adivinhar, ele deve saber com certeza.
Desenvolvendo um algoritmo auto-adaptável (Parte II): melhorando a eficiência
Desenvolvendo um algoritmo auto-adaptável (Parte II): melhorando a eficiência

Desenvolvendo um algoritmo auto-adaptável (Parte II): melhorando a eficiência

Neste artigo, continuarei meu tópico, mas começarei tornando o algoritmo desenvolvido anteriormente mais flexível. Ele se tornou mais estável com o aumento no número de candles na janela de análise ou com o aumento no valor limite da porcentagem a nível de preponderância de candles decrescentes ou crescentes. Tivemos que fazer concessões e definir um tamanho de amostra maior para análise ou uma porcentagem maior de preponderância de candles prevalecentes.
Trabalhando com séries temporais na biblioteca DoEasy (Parte 59): objeto para armazenar dados de um tick
Trabalhando com séries temporais na biblioteca DoEasy (Parte 59): objeto para armazenar dados de um tick

Trabalhando com séries temporais na biblioteca DoEasy (Parte 59): objeto para armazenar dados de um tick

Com este artigo, vamos começar a criar a funcionalidade de biblioteca para trabalhar com dados de preços. Hoje vamos criar uma classe de objeto que armazenará todos os dados de preços recebidos no tick a seguir.
Desenvolvendo um algoritmo auto-adaptável (Parte I): encontrando um padrão básico
Desenvolvendo um algoritmo auto-adaptável (Parte I): encontrando um padrão básico

Desenvolvendo um algoritmo auto-adaptável (Parte I): encontrando um padrão básico

Numa série de artigos, mostrarei um exemplo de como desenvolver algoritmos auto-adaptativos que levam em consideração a maioria de fatores que surgem nos mercados, apresentarei como sistematizar essas situações, como descrevê-las de forma lógica e como considerá-las na hora de negociar. Vou começar com um algoritmo muito simples, que com o tempo irá ganhar teoria e evoluir para um projeto muito complexo.
preview
Redes Neurais de Maneira Fácil (Parte 8): Mecanismos de Atenção

Redes Neurais de Maneira Fácil (Parte 8): Mecanismos de Atenção

Nos artigos anteriores, nós já testamos várias opções para organizar as redes neurais. Nós também estudamos as redes convolucionais emprestadas dos algoritmos de processamento de imagem. Neste artigo, eu sugiro estudarmos os Mecanismos de Atenção, cujo surgimento deu impulso ao desenvolvimento dos modelos de linguagem.
preview
Trabalhando com séries temporais na biblioteca DoEasy (Parte 58): séries temporais de dados de buffers de indicadores

Trabalhando com séries temporais na biblioteca DoEasy (Parte 58): séries temporais de dados de buffers de indicadores

No final do tópico sobre trabalho com séries temporais, realizaremos o armazenamento, a pesquisa e a classificação dos dados armazenados em buffers de indicadores, o que nos permitirá realizar análises posteriores com base nos valores dos indicadores criados assentes na biblioteca para nossos programas. O conceito geral por trás de todas as classes-coleções da biblioteca torna mais fácil encontrar os dados necessários na coleção correspondente, assim, o mesmo será possível na classe que será criada hoje.
preview
Reamostragem avançada e seleção de modelos CatBoost pelo método de força bruta

Reamostragem avançada e seleção de modelos CatBoost pelo método de força bruta

Este artigo descreve uma das possíveis abordagens para a transformação de dados com o objetivo de melhorar a generalização do modelo, ele também discute a amostragem e seleção dos modelos CatBoost.
preview
Algoritmo de aprendizado de máquina CatBoost da Yandex sem conhecimento prévio de Python ou R

Algoritmo de aprendizado de máquina CatBoost da Yandex sem conhecimento prévio de Python ou R

O artigo fornece o código e a descrição das principais etapas do processo de aprendizado de máquina usando um exemplo específico. Para obter o modelo, você não precisa de conhecimento prévio em Python ou R. Além disso, um conhecimento básico de MQL5 já é suficiente — este é exatamente o meu nível. Portanto, eu espero que o artigo sirva como um bom tutorial para um público amplo, auxiliando os interessados em avaliar os recursos de aprendizado de máquina e implementá-lo em seus programas.
preview
Força bruta para encontrar padrões (Parte II): Imersão

Força bruta para encontrar padrões (Parte II): Imersão

Neste artigo, continuarei o tópico sobre força bruta. Tentarei apresentar melhor os padrões com ajuda de uma nova versão melhorada do meu programa e me esforçarei para encontrar a diferença a nível de estabilidade usando diferentes períodos gráficos.