Otimização paralela pelo método de enxame de partículas (Particle Swarm Optimization)
Este artigo descreve uma forma de otimização rápida por meio do método de enxame de partículas e apresenta uma implementação em MQL pronta para ser utilizada tanto no modo thread único dentro do EA quanto no modo multi-thread paralelo com complemento que executado nos agentes locais do testador.
Resultados do MQL5 Market para o segundo trimestre de 2013
Operando com sucesso a um ano e meio, o MQL5 Market se tornou a maior loja de estratégias de negócios e indicadores técnicos de negociadores. Ele oferece cerca de 800 aplicações fornecidas por 350 desenvolvedores de todo o mundo. Mais de 100.000 programas de negócio já foram comprados e baixados por negociantes para os terminais do MetaTrader 5.
Domine e utilize o testador de estratégias MQL5 de forma eficiente
Os desenvolvedores MQL5 devem dominar diversas ferramentas essenciais. Entre elas, destaca-se o testador de estratégias. Este artigo serve como um guia prático para a utilização do testador de estratégias MQL5.
Ciência de Dados e Aprendizado de Máquina (Parte 02): Regressão Logística
A classificação de dados é uma coisa crucial para um algotrader e um programador. Neste artigo, nós vamos nos concentrar em um dos algoritmos de classificação logística que provavelmente podem nos ajudar a identificar os Sims ou Nãos, as Altas e Baixas, Compras e Vendas.
Trabalhando com séries temporais na biblioteca DoEasy (Parte 50): indicadores padrão multiperíodos multissímbolos com deslocamento
Neste artigo, melhoraremos os métodos da biblioteca para exibir corretamente indicadores padrão multissímbolos e multiperíodos, cujas linhas são exibidas no gráfico do símbolo atual com determinado deslocamento definido nas configurações. Também colocaremos as coisas em ordem nos métodos que permitem trabalhar com indicadores padrão e removeremos o código desnecessário no programa-indicador final para a área da biblioteca.
Trabalhando com séries temporais na biblioteca DoEasy (Parte 44): classe-coleção de objetos de buffers de indicador
Neste artigo, veremos a criação de uma classe-coleção de objetos de buffers de indicador, testaremos tanto as possibilidades de criar qualquer quantidade de buffers para programas-indicadores quanto as de trabalhar com eles (o número máximo de buffers que podem ser criados em indicadores MQL é de 512 buffers).
Combinatória e teoria da probabilidade para negociação (Parte III): primeiro modelo matemático
Para dar continuação lógica ao tópico, hoje abordaremos o desenvolvimento de modelos matemáticos multifuncionais para tarefas de negociação. Assim sendo, descreverei todo o processo de desenvolvimento do primeiro modelo matemático para descrever fractais a partir do zero. Este modelo deve se tornar um importante alicerce, ser multifuncional e universal, inclusive para construir a base teórica para o futuro desenvolvimento do ramo.
O MQL4 como uma ferramenta do trader, ou a análise técnica avançada
As transações comerciais são, antes de tudo, um cálculo de probabilidades. O ditado que diz que o ócio é um motivador do progresso revela a razão pela qual todos os indicadores e sistemas de transações que conhecemos foram desenvolvidos. O fato é que a maioria dos novatos no mundo das transações estuda teorias "prontas" de transação. Mas, por sorte, há ainda mais segredos de mercado a serem descobertos, e as ferramentas usadas na análise de movimentos de preços existem, basicamente, sob a forma de indicadores técnicos e conjuntos matemáticos ou estatísticos não realizados. Devemos agradecer a Bill Williams por sua contribuição à teoria dos movimentos de mercado. Mas talvez ainda seja cedo para descansar.
Desenvolvendo um sistema de Replay - Simulação de mercado (Parte 18): Tiquete e mais tiquetes (II)
Neste, fica extremamente claro, que as métricas, estão muito longe, do tempo ideal de confecção das barras de 1 minuto. Assim então, a primeira coisa que de fato iremos corrigir, será justamente isto. Corrigir a questão da temporização, não é algo complicado. Por mais incrível que possa parecer, é na verdade até bem simples de ser feito. Porém não fiz a correção no artigo anterior, por que lá o desejo era explicar, como fazer para jogar os dados de tickets, que estavam sendo usados para gerar as barras de 1 minuto no gráfico, para dentro da janela de observação de mercado.
GIT: Mas que coisa é esta ?
Neste artigo apresentarei uma ferramenta de suma importância para quem desenvolve programas. Se você não conhece GIT, veja este artigo para ter uma noção do que se trata, tal ferramenta. E como usá-la junto ao MQL5.
Desenvolvendo um sistema de Replay (Parte 32): Sistema de Ordens (I)
De todas as coisas desenvolvidas até aqui. Esta com toda a certeza, vocês também irão notar, e com o tempo irão concordar, que é a mais desafiadora de todas. O que temos de fazer é algo simples. Fazer com que o nosso sistema, simule o que um servidor de negociação efetua na prática. Isto de ter que implementar uma forma de simular, exatamente o que seria feito, pelo servidor de negociação, parece simples. Pelo menos nas palavras. Mas precisamos fazer isto de uma maneira, que para o usuário do sistema de replay / simulação, tudo venha a acontecer, de forma o mais invisível, ou transparente, possível.
Ciência de Dados e Aprendizado de Máquina (Parte 07): Regressão Polinomial
Ao contrário da regressão linear, a regressão polinomial é um modelo flexível destinado a performar melhor em tarefas que o modelo de regressão linear não poderia lidar. Vamos descobrir como fazer modelos polinomiais em MQL5 e tirar algo positivo disso.
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.
Como usar registros de parada de funcionamento para depurar os seus próprios DLLs
De 25 a 30% de todos os registros de parada de funcionamento recebidos de usuários surgem por conta de erros ocorridos quando funções importadas de dlls personalizados são executadas.
O modelo de movimento de preços e suas principais disposições (Parte 2): Equação da evolução do campo probabilístico do preço e a ocorrência do passeio aleatório observado
O artigo considera a equação da evolução do campo probabilístico do preço e o critério do próximo salto do preço. Ela também revela a essência dos valores dos preços nos gráficos e o mecanismo para a ocorrência de um passeio aleatório desses valores.
Teoria das Categorias em MQL5 (Parte 1)
A Teoria das Categorias é um ramo diverso da Matemática e em expansão, sendo uma área relativamente recente na comunidade MQL. Esta série de artigos visa introduzir e examinar alguns de seus conceitos com o objetivo geral de estabelecer uma biblioteca aberta que atraia comentários e discussões enquanto esperamos promover o uso deste campo notável no desenvolvimento da estratégia dos traders.
Desenvolvendo um sistema de Replay - Simulação de mercado (Parte 08): Travando o Indicador
Aqui vou mostrar como travar um indicador, usando pura e simplesmente a linguagem MQL5, de uma forma muito interessante e surpreendente.
Algoritmos de otimização populacionais: Algoritmo de otimização de cuco (COA)
O próximo algoritmo que abordaremos será a otimização de busca de cuco usando voos Levy. Este é um dos algoritmos de otimização mais recentes e um novo líder na tabela de classificação.
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.
Ciência de Dados e Aprendizado de Máquina (Parte 06): Gradiente Descendente
O gradiente descendente desempenha um papel significativo no treinamento das redes neurais e muitos algoritmos de aprendizado de máquina. Ele é um algoritmo rápido e inteligente, apesar do seu trabalho impressionante, ele ainda é mal interpretado por muitos cientistas de dados, vamos ver do que ele se trata.
Trabalhando com séries temporais na biblioteca DoEasy (Parte 48): indicadores multissímbolos multiperíodos num buffer de uma subjanela
Neste artigo consideraremos um exemplo que mostra como criar indicadores padrão multissímbolos e multiperíodos que usam um buffer de indicador e funcionam numa subjanela do gráfico principal. Prepararemos classes da biblioteca para trabalhar com indicadores padrão que funcionam na janela principal do programa, ou que tenham mais de um buffer para exibir seus dados.
Trabalhando com preços na biblioteca DoEasy (Parte 61): coleção de séries de ticks para símbolos
Visto que diferentes símbolos podem ser usados durante a operação do programa, é necessário criar uma lista própria para cada um deles. Hoje vamos combinar essas listas numa coleção de dados de ticks. Na verdade, irá tratar-se de uma lista normal baseada numa classe de array dinâmico de ponteiros para instâncias da classe CObject e seus herdeiros da Biblioteca Padrão.
Desenvolvendo um sistema de Replay - Simulação de mercado (Parte 07): Primeiras melhorias (II)
No artigo anterior fizemos a correção de alguns pontos, e adicionamos alguns testes no nosso sistema de replay, estes tentam garantir a maior estabilidade quanto for possível obter, ao mesmo tempo iniciamos a criação e o uso de um arquivo de configuração para o sistema de replay.
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.
Desenvolvendo um sistema de Replay - Simulação de mercado (Parte 25): Preparação para a próxima etapa
Aqui neste artigo iremos finalizar a primeira etapa do desenvolvimento do sistema de replay / simulador. Ao finalizar esta etapa, estou dizendo a você, caro leitor, que o sistema já estará em um estágio avançado o suficiente para que novas funcionalidades possam de fato serem implementadas. Isto a fim de tornar o sistema ainda mais elaborado e mais útil para efetuar estudos e desenvolver conceitos de analise de mercado.
Algoritmos de otimização populacionais: algoritmo de vaga-lumes
Vamos considerar o método de otimização de vaga-lumes (Firefly Algorithm, FA). Esse algoritmo evoluiu de um método desconhecido por meio de modificações para se tornar um líder real na tabela de classificação.
Ciência de Dados e Aprendizado de Máquina (Parte 13): Analisando o mercado financeiro usando a análise de componentes principais (PCA)
Vamos tentar melhorar qualitativamente nossa análise dos mercados financeiros usando a análise de componentes principais (PCA). Aprenderemos como essa técnica pode ajudar a identificar padrões ocultos nos dados, identificar tendências de mercado ocultas e otimizar estratégias de investimento. Neste artigo, veremos como o PCA oferece uma nova perspectiva para a análise de dados financeiros complexos, ajudando-nos a ver informações que não percebemos usando abordagens tradicionais. Veremos se sua aplicação aos dados do mercado financeiro proporciona uma vantagem sobre a concorrência e nos ajuda a ficar um passo à frente.
Combinatória e teoria da probabilidade para negociação (Parte V): análise de curva
Neste artigo, explorei as possibilidades de reduzir amostras multiestado complexas a amostras simples de estado duplo. O objetivo principal é obter uma análise e umas conclusões que possam ajudar no desenvolvimento de algoritmos de negociação escaláveis baseados na teoria da probabilidade. Naturalmente, a matemática também está envolvida, mas dada a experiência de artigos anteriores, vejo que informações mais gerais são muito mais úteis do que detalhes.
Trabalhando com preços na biblioteca DoEasy (Parte 60): lista-série de dados de dados de tick do símbolo
Neste artigo, criaremos uma lista para armazenar dados de tick de um símbolo e verificaremos tal criação e respectiva recepção de dados a partir dela no EA. Essas listas de dados de tick - separadamente para cada símbolo usado - formarão uma coleção de dados de tick.
Força bruta para encontrar padrões (Parte V): uma nova perspectiva
Neste artigo, vou apresentar uma abordagem completamente diferente para o algorítmico de negociação, que levei um tempo considerável para desenvolver. Claro, tudo isso está relacionado ao meu programa de força bruta, que passou por várias mudanças, permitindo que ele resolva várias tarefas simultaneamente. No entanto, este artigo é mais geral e extremamente simples, sendo adequado até mesmo para aqueles que não têm conhecimento prévio ou apenas passaram por isso.
O modelo de movimento dos preços e suas principais disposições (Parte 1): A versão do modelo mais simples e suas aplicações
O artigo fornece os fundamentos de um movimento de preços matematicamente rigoroso e a teoria do funcionamento do mercado. Até o presente, nós não tivemos nenhuma teoria de movimento de preços matematicamente rigorosa. Em vez disso, nós tivemos que lidar com as suposições baseadas na experiência, afirmando que o preço se move de uma certa maneira após um determinado padrão. É claro que essas suposições não foram apoiadas nem pela estatística e nem pela teoria.
Validação cruzada combinatoriamente simétrica no MQL5
Neste artigo veremos como implementar a verificação cruzada combinatoriamente simétrica no MQL5 puro para medir o grau de ajuste após a otimização de uma estratégia usando o algoritmo completo e lento do testador de estratégias.
Implementando o fator Janus em MQL5
Gary Anderson desenvolveu um método de análise de mercado baseado em uma teoria que chamou de fator Janus. Essa teoria descreve um conjunto de indicadores que podem ser usados para identificar tendências e avaliar o risco de mercado. Neste artigo, vamos implementar essas ferramentas no MQL5.
Trabalhando com séries temporais na biblioteca DoEasy (Parte 54): classes herdeiras do indicador base abstrato
Neste artigo, analisaremos a criação de classes de objetos herdeiros do indicador base abstrato. Esses objetos nos darão acesso à capacidade de criar EAs de indicador, coletar e receber estatísticas sobre valores de dados de diferentes indicadores e preços. Também criaremos uma coleção de objetos-indicadores a partir da qual será possível acessar as propriedades e dados de cada indicador criado no programa.
Redes neurais de maneira fácil (Parte 17): Redução de dimensionalidade
Continuamos a estudar modelos de inteligência artificial, em particular, algoritmos de aprendizado não supervisionados. Já nos encontramos com um dos algoritmos de agrupamento. E neste artigo quero compartilhar com vocês outra maneira de resolver os problemas de redução de dimensionalidade.
Previsão usando modelos ARIMA em MQL5
Neste artigo, continuamos a desenvolver a classe CArima para construir modelos ARIMA adicionando métodos de previsão intuitivos.
Desenvolvendo um sistema de Replay - Simulação de mercado (Parte 15): Nascimento do SIMULADOR (V) - RANDOM WALK
Neste artigo iremos finalizar a fase, onde estamos desenvolvendo o simulador para o nosso sistema. O principal proposito aqui será ajustar o algoritmo visto no artigo anterior. Tal algoritmo tem como finalidade criar o movimento de RANDOM WALK. Por conta disto, o entendimento do conteúdo dos artigos anteriores, é primordial para acompanhar o que será explicado aqui. Se você não acompanhou o desenvolvimento do simulador, aconselho você a ver esta sequência desde o inicio. Caso contrário, poderá ficar perdido no que será explicado aqui.
Desenvolvendo um sistema de Replay - Simulação de mercado (Parte 14): Nascimento do SIMULADOR (IV)
Neste artigo continuaremos a fase de desenvolvimento do simulador. Mas agora, vamos ver como criar de fato um movimento do tipo RANDOM WALK. Este tipo de movimentação é muito interessante, pois tudo envolvido no mercado de capitais tem como base este tipo de movimentação. Além do mais você vai começar a entender alguns conceitos importantes para quem faz estáticas de mercado.
Redes neurais de maneira fácil (Parte 26): aprendizado por reforço
Continuamos a estudar métodos de aprendizado de máquina. Com este artigo, começamos outro grande tópico chamado aprendizado por reforço. Essa abordagem permite que os modelos estabeleçam certas estratégias para resolver as tarefas. E esperamos que essa propriedade inerente ao aprendizado de reforço abra novos horizontes para a construção de estratégias de negociação.
Desenvolvendo um sistema de Replay — Simulação de mercado (Parte 03): Ajustando as coisas (I)
Vamos dar uma ajeitada nas coisas, pois este começo não está sendo um dos melhores. Se não fizermos isto agora, vamos ter problemas logo, logo.