
WebSocket para o MetaTrader 5: Usando a API do Windows
Neste artigo vamos usar WinHttp.dll com o intuito de criar um cliente WebSocket para os programas MetaTrader 5. Em última instância, o cliente deve ser implementado como uma classe e testado em interação com o WebSocket API da Binary.com.

Desenvolvimento de um sistema de negociação baseado no indicador Fibonacci
Esta é a continuação de uma série de artigos nos quais aprendemos como construir sistemas de negociação com base nos indicadores mais populares. Desta vez, cobriremos o indicador Fibonacci. Veremos como escrever um programa baseado nos sinais deste indicador.


Combinatória e teoria da probabilidade para negociação (Parte II): fractal universal
Neste artigo, continuaremos a estudar fractais e prestaremos muita atenção a resumir todo o material. Tentarei apresentar todos os projetos da maneira mais compacta e compreensível para serem aplicados ao trading.

Conselhos de um programador profissional (Parte I): Armazenamento, depuração e compilação de códigos Trabalho com projetos e registros
Conselhos de um programador profissional sobre métodos, técnicas e ferramentas auxiliares para tornar a programação mais fácil.


Guia prático do MQL5: Desenvolvendo uma estrutura para um sistema de negócios baseado na estratégia de tela tripla
Nesse artigo, desenvolveremos uma estrutura para um sistema de negócios baseado na estratégia de tela tripla no MQL5. O Consultor Especialista não será desenvolvido do zero. Ao invés disso, simplesmente modificaremos o programa do artigo anterior "Guia prático do MQL5: Usando indicadores para definir condições de negócios em Consultores Especialistas" que já servem substancialmente ao nosso propósito. Então o artigo também demonstrará como você pode modificar facilmente padrões de programas já prontos.


Criando um jogo de "Snake" no MQL5
Este artigo descreve um exemplo da programação do jogo "Snake". No MQL5, a programação do jogo tornou-se possível principalmente por causa dos recursos de manuseio de evento. A programação orientada a objeto simplifica em muito este processo. Neste artigo, você aprenderá os recursos de processamento de eventos, os exemplos de uso de classes da Biblioteca MQL5 Padrão e detalhes das chamadas de função periódica.


Criando um Consultor Especialista, que negocia em um número de instrumentos
O conceito da diversificação de ativos nos mercados financeiros é bastante antigo e sempre atraiu negociantes iniciantes. Neste artigo, o autor propõe uma abordagem maximamente simples para a construção de um Expert Advisor de moeda múltipla, para uma introdução inicial a esta direção das estratégias de negócio.


Interfaces Gráficas III: Grupos de Botões Simples e Multifuncionais (Capítulo 2)
O primeiro capítulo desta série foi sobre os botões simples e multifuncionais. O segundo artigo se dedicará aos grupos de botões interconectados entre si, que permitirão a criação dos controles, quando um usuário puder selecionar uma das opções a partir de um determinado conjunto (grupo).


Usando criptografia com aplicativos externos
Consideraremos problemas de criptografia/descriptografia de objetos no MetaTrader e em programas de terceiros, a fim de descobrir as condições sob as quais são obtidos os mesmos resultados quando os dados iniciais são os mesmos.


Cálculo de expressões matemáticas (Parte 1). Analisadores descendentes recursivos
Neste artigo são abordados os princípios básicos de análise e cálculo de expressões matemáticas, são implementados analisadores descendentes recursivos que funcionam nos modos interpretador e cálculo rápido com base numa árvore de sintaxe pré-construída.


Biblioteca para desenvolvimento fácil e rápido de programas para a MetaTrader (parte VIII): Eventos de modificação de ordens e posições
Nos artigos anteriores, nós começamos a criar uma grande biblioteca multi-plataforma, simplificando o desenvolvimento de programas para as plataformas MetaTrader 5 e MetaTrader 4. Na sétima parte, nós adicionamos o monitoramento da ativação de ordens StopLimit e preparamos a funcionalidade para o monitoramento de outros eventos envolvendo ordens e posições. Neste artigo, nós desenvolveremos a classe para monitorar os eventos de modificação de ordens e posições.


Trabalhando com séries temporais na biblioteca DoEasy (Parte 36): objeto das séries temporais de todos os períodos usados do símbolo
No artigo, veremos como combinar listas de objetos-barras para cada período usado no objeto da série temporal do símbolo. Consequentemente, teremos para cada símbolo um objeto pronto armazenando as listas de todos os períodos usados da série temporal.


Como criar e testar símbolos de ativos MOEX personalizados no MetaTrader 5
O artigo descreve a criação de um símbolo de ativo personalizado da bolsa de valores usando a linguagem MQL5, em particular, descreve o uso de cotações no popular site "Finam". Outra opção considerada neste artigo é a possibilidade de trabalhar com um formato arbitrário de arquivos de texto, usados na criação do símbolo personalizado. Isso permite trabalhar com quaisquer símbolos financeiros e fontes de dados, depois de criar um símbolo personalizado, podemos usar todos os recursos do Testador de Estratégia do MetaTrader 5 a fim de testarmos os algoritmos de negociação para os instrumentos da bolsa.


O papel das distribuições estatísticas no trabalho de negociação
Este artigo é uma continuação lógica do meu artigo de Distribuições de probabilidade estatística em MQL5 que apresenta as classes para trabalhar com algumas distribuições estatísticas teóricas. Agora que temos uma base teórica, sugiro que devemos prosseguir diretamente para conjuntos de dados reais e tentar fazer algum uso informativo desta base.


LifeHack para traders: relatório comparativo de vários testes
No artigo, é tratada a execução simultânea do teste de Experts em quatro símbolos diferentes. A comparação final dos quatro relatórios respetivos é realizada numa tabela, como seria feito durante a seleção de produtos numa loja. Uma vantagem adicional consiste na geração automática de gráficos de distribuição para cada símbolo.

Desenvolvendo um EA de negociação do zero (Parte 09): Um salto conceitual (II)
Colocando o Chart Trade em uma janela flutuante. No artigo anterior criamos o sistema base para utilizar templates dentro de uma janela flutuante.

Otimização Walk Forward Contínua (parte 5): Panorama do Projeto Otimizador Automático e Criação da Interface Gráfica
Este artigo fornece uma descrição mais detalhada da otimização walk-forward na plataforma MetaTrader 5. Nos artigos anteriores, nós consideramos os métodos para gerar e filtrar o relatório de otimização e começar a analisar a estrutura interna do aplicativo responsável pelo processo de otimização. O Otimizador Automático é implementado como uma aplicação em C# e possui sua própria interface gráfica. O quinto artigo é dedicado à criação dessa interface gráfica.


Redes Neurais Profundas (Parte VIII). Melhorando a qualidade de classificação dos bagging de ensembles
O artigo considera três métodos que podem ser usados para aumentar a qualidade de classificação do bagging de ensembles, e a estimação de sua eficiência. Os efeitos da otimização dos hiperparâmetros da rede neural ELM e dos parâmetros de pós-processamento são avaliados.


Biblioteca para desenvolvimento fácil e rápido de programas para a MetaTrader (parte XI). Compatibilidade com a MQL4 - Eventos de encerramento de posição
Nós continuamos com o desenvolvimento de uma grande biblioteca multi-plataforma, simplificando o desenvolvimento de programas para as plataformas MetaTrader 5 e MetaTrader 4. Na décima parte, nós retomamos nosso trabalho sobre a compatibilidade da biblioteca com a MQL4 e definimos os eventos de abertura de posições e ativação de ordens pendentes. Neste artigo, nós definiremos os eventos de encerramento de posições e nos livraremos das propriedades de ordem não utilizadas.


Modelagem 3D em MQL5
As séries temporais são um sistema dinâmico em que os valores de uma variável aleatória chegam de forma consistente, isto é, de forma contínua ou em intervalos. A transição para a análise 3D de mercado fornece um novo olhar sobre os complexos processos e fenômenos de interesse para os investigadores. Este artigo descreve as funções de visualização para representações em 3D de dados bidimensionais.


Tabelas eletrônicas no MQL5
O artigo descreve uma classe de array tridimensional dinâmico que contém dados de diferentes tipos em sua primeira dimensão. O armazenamento de dados na forma de tabela é conveniente para resolver uma gama ampla de problemas de organização, armazenamento e operação com informações ligadas de diferentes tipos. O código fonte da classe que implementa a funcionalidade de trabalho com etiquetas está em anexo neste artigo.


Como desenvolver sistemas baseados em médias móveis
Existem muitas maneiras diferentes de filtrar os sinais gerados por qualquer estratégia. Provavelmente, a mais simples delas consiste no uso de uma média móvel. Vamos falar sobre isso neste artigo.

Perceptron Multicamadas e o Algoritmo Backpropagation (Parte II): Implementação em Python e Integração com MQL5
Um pacote python foi disponibilizado com o proposito de trazer integração com MQL, com isso abre-se as portas para enumeras possibilidades como, exploração de dados, criação e uso de modelos de machine learning. Com essa integração nativa entre MQL5 e Python, abriu-se as portas para muitas possibilidades de uso, podemos construir de uma simples regressão linear a um modelo de aprendizado profundo. Vamos entender como instalar e preparar o ambiente de desenvolvimento e usar algumas das bibliotecas de aprendizado de maquina.

Abordagem de força bruta para encontrar padrões
Neste artigo, procuraremos padrões no mercado, criaremos Expert Advisors com base neles e verificaremos quanto tempo esses padrões permanecem funcionais.


Aprofundando na "memória" do mercado através da diferenciação e do análise de entropia
O campo para aplicar a diferenciação fracionária é bastante amplo. Por exemplo, os algoritmos de aprendizado de máquina geralmente recebem uma série diferenciada na entrada. O problema é que é necessário derivar novos dados de acordo com o histórico existente, para que o modelo de aprendizado de máquina possa reconhecê-los. Este artigo discute a abordagem inicial para a diferenciação das séries temporais, além disso, é fornecido um exemplo de estratégia de negociação otimizada automaticamente baseada nas séries diferenciadas obtidas.


Contos de Robôs de Negociação: É Mais ou Menos?
Dois anos atrás, no artigo "A Última Cruzada" analisamos bastante um método que ainda não é amplamente utilizado na atualidade e interessante para a exibição das informações de mercado - gráficos de ponto e figura. Agora eu sugiro que você tente escrever um robô de negociação com base nos padrões detectados no gráfico ponto e figura.


Como se tornar um bom programador (Parte 4): agilizando a velocidade de programação
Suponho que todo desenvolvedor quer escrever código mais rapidamente. Porém, a habilidade de escrever código de forma rápida e produtiva não é uma característica inata que apenas uns poucos trazem consigo. Trata-se de uma habilidade que qualquer programador pode desenvolver e que será o tópico deste artigo.


Padrões disponíveis ao negociar cestas de moedas
Seguindo o nosso artigo anterior, sobre os princípios de negociação de cestas de moeda, vamos analisar os padrões que os traders podem detectar. Também consideraremos as vantagens e desvantagens de cada padrão e forneceremos algumas recomendações sobre seu uso. Os indicadores baseados no oscilador Williams, serão utilizados como ferramentas de análise.


Controles gráficos personalizados. Parte 2. Biblioteca de controles
O segundo artigo da série "Controles gráficos personalizados" apresenta uma biblioteca para manusear os principais problemas que surgem da interação entre um programa (Expert Advisor, script, indicador) e um usuário. A biblioteca contém um grande número de classes (CInputBox, CSpinInputBox, CCheckBox, CRadioGroup, CVSсrollBar, CHSсrollBar, CList, CListMS, CComBox, CHMenu, CVMenu, CHProgress, CDialer, CDialerInputBox, CTable) e exemplos de seu uso.


Interfaces Gráficas VIII: O Controle Calendário (Capítulo 1)
Na parte VIII da série de artigos dedicados à criação de interfaces gráficas no MetaTrader, nós vamos introduzir os controles compostos complexos como os calendários, lista hierárquica e o navegador de arquivos. Devido à grande quantidade de informações, os artigos foram escritos separadamente para cada assunto. O primeiro capítulo desta parte descreve o controle calendário e sua versão expandida — um calendário suspenso.


Documentação gerada automaticamente para o código MQL5
A maioria dos codificadores Java estará familiarizada com a documentação gerada automaticamente com o JavaDocs. A ideia é adicionar comentários no código de uma maneira semi-estruturada que possam ser extraídos em um arquivo de ajuda fácil de navegar. O mundo do C++ também possui vários geradores automáticos de documentação, com os dois líderes sendo o SandCastle da Microsoft e o Doxygen. O artigo descreve o uso do Doxygen para criar o arquivo de ajuda HTML a partir dos comentários estruturados no código MQL5. O experimento funcionou muito bem, acredito que a documentação de ajuda que o Doxygen produz do código MQL5 irá agregar uma grande quantidade de valor.

Desenvolvendo um EA de negociação do zero( Parte 15): Acessando dados na WEB (I)
Como ter acesso a dados na WEB dentro do MetaTrader 5. Na WEB temos diversos sites e locais onde uma grande e vasta quantidade de informações estão disponíveis e ficam acessíveis a aqueles que sabem onde procurar e como melhor utilizar estas informações.


MQL5 vs QLUA - Por que operações de negociação no MQL5 são até 28 vezes mais rápidas?
Você já se perguntou como a sua ordem é entregue tão rápida na bolsa? Também já se perguntou quanto tempo seu terminal precisa para receber o resultado da operação? Nós fizemos uma comparação da velocidade de execução da operação de negociação, pois ninguém nunca mediu esses valores utilizando aplicações nas linguagens de programação MQL5 ou QLUA.


Trabalhando com séries temporais na biblioteca DoEasy (Parte 43): classes de objetos de buffers de indicador
Neste artigo, veremos a criação de classes de objetos-buffers de indicador como herdeiros de um objeto-buffer abstrato, o que simplifica a declaração e trabalho com buffers de indicadores ao criar programas-indicadores próprios baseados na biblioteca DoEasy.


Expert Advisor multiplataforma: Introdução
Este artigo descreve um método que permite desenvolver rápida e facilmente um Expert Advisor multiplataforma. O método proposto combina as características, comuns para ambas as versões, numa classe e desenvolve a implementação para funções incompatíveis nas classes herdadas.


Criação de documentos com base em códigos-fonte MQL5
No artigo é estudada a criação de documentação para um código em linguagem MQL5, partindo da automação de tags (marcação). Além disso, quanto ao programa Doxygen, é descrito seu funcionamento, adequada configuração e obtenção de resultados em vários formatos (HTML, HtmlHelp e PDF).


Interfaces Gráficas X: Gestão avançada de listas e tabelas. Otimização do código (build 7)
O código da biblioteca precisa ser otimizado: ele deve ser mais regularizado, o que é - mais legível e compreensível para estudar. Além disso, nós vamos continuar a desenvolver os controles criados anteriormente: listas, tabelas e barras de rolagem.


Trabalhando com modem GSM a partir de um Expert Advisor MQL5
Atualmente há um número razoável de meios para uma monitorização remota confortável de uma conta de negociação: terminais móveis, notificações push, trabalhando com o ICQ. Mas tudo requer conexão com a Internet. Este artigo descreve o processo de criação de um Expert Advisor que lhe permitirá ficar em contato com o terminal de negociação, mesmo quando a Internet móvel não estiver disponível, através de chamadas e mensagens de texto.

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.


Eleve os seus sistemas de negociação lineares ao poder
O artigo de hoje mostra a programadores MQL5 intermediários como eles podem obter mais lucro de seus sistemas de negociação lineares (Fixed Lot) facilmente implementando a chamada técnica de exponenciação. Isto é porque o crescimento de curva de capital resultante é, em seguida, geométrico, ou exponencial, tendo a forma de uma parábola. Especificamente, implementaremos uma variante MQL5 prática do dimensionamento da posição fracionária fixa desenvolvida por Ralph Vince.