Discussão do artigo "Arbitragem Estatística via Reversão à Média no Trading de Pares: Superando o Mercado com Matemática"
Não estou entendendo sua abordagem e seu código. Já que você usa um temporizador de 5 segundos e atualizações da matriz de cotações, por que usa o CopyClose para _Period inicialmente? Não dá para comparar e processar na mesma matriz — intervalos de 5 segundos e quaisquer intervalos de tempo padrão (até mesmo M1).
Após o CopyClose inicial, você tem um array de cotações ordenadas do elemento mais antigo (0º) ao mais recente (n-1º).
Em seguida, você atualiza (por meio do temporizador) a matriz removendo o último elemento (o mais recente) e inserindo um único novo valor de fechamento no índice 0 (onde o elemento mais antigo é armazenado).
Você nunca deslocou a matriz de cotações ao ocorrer a formação de novas barras; ou seja, suas matrizes têm intervalos de 5 segundos, mas um dos modos compara esses valores com médias móveis (MAs) ao longo de _Period. Isso é, mais uma vez, uma grande inconsistência.
Além disso, se você for usar barras finalmente (suas intenções ainda não estão claras), certifique-se de sincronizar as barras de símbolos diferentes por carimbos de data e hora.
Após o CopyClose inicial, você tem um array de cotações ordenadas do elemento mais antigo (0º) ao mais recente (n-1º).
Em seguida, você atualiza (por meio do temporizador) a matriz removendo o último elemento (o mais recente) e inserindo um único novo valor de fechamento no índice 0 (onde o elemento mais antigo é armazenado).
Você nunca deslocou a matriz de cotações ao ocorrer a formação de novas barras; ou seja, suas matrizes têm intervalos de 5 segundos, mas um dos modos compara esses valores com as médias móveis (MAs) ao longo de _Period. Isso, mais uma vez, é uma grande inconsistência.
Além disso, se você for usar barras finalmente (suas intenções ainda não estão claras), certifique-se de sincronizar as barras de diferentes símbolos por carimbos de data e hora.
Obrigado por dedicar seu tempo para verificar o código.
Os intervalos de 5 segundos são arbitrários neste momento. Poderia ser 1 segundo ou 10 segundos. A ideia é ter uma janela inicial para calcular o spread médio e, eventualmente, outras estatísticas para o período coberto pelo CountQuotes. Em seguida, continuar atualizando uma janela móvel em intervalos de X segundos, independentemente do período de tempo.
Você está certo sobre as barras: não estou interessado nelas nem em mantê-las sincronizadas, pois me parece que são irrelevantes neste caso específico. Quase todas as negociações duram alguns segundos, sendo abertas e fechadas dentro da mesma barra.
Dito isso, o que você acha dessa abordagem? Ficou mais claro agora? Você vê alguma falha crítica que possa levar a cálculos errados, afetar o desempenho ou algo do tipo?
Agradeço muito seu comentário e estou ansioso por mais. Esse código vai evoluir aqui, publicamente, e você já me deu o que pensar. :)
Tenha um ótimo fim de semana.
Caros amigos, cometi um erro ao enviar o arquivo de configuração do Tester (configurações *.ini). Obviamente, o backtest deve ser executado com TP/SL ZERO, ou seja, as posições devem ser fechadas quando o spread “retornar à média”, e não por stop-loss ou take-profit.
Para reproduzir corretamente o backtest descrito no artigo, por favor, utilizem o arquivo de configuração anexado aqui.
Peço desculpas por qualquer inconveniente que esse erro possa ter causado a vocês.
Muito obrigado por compartilhar; passei o dia todo ocupado trabalhando no seu material, que é muito interessante. Fiz alguns ajustes aqui e ali... ah, e adicionei alguns filtros.
Alguns gráficos dos últimos 3 meses
EURUSD
XAUUSD
Você está fazendo um ótimo trabalho, parabéns!
Muito obrigado por compartilhar. Passei o dia todo trabalhando no seu material, que é muito interessante. Fiz alguns ajustes aqui e ali... ah, e adicionei alguns filtros.
Alguns gráficos dos últimos 3 meses
EURUSD
XAUUSD
Você está fazendo um ótimo trabalho, parabéns!
Fico feliz que você esteja acompanhando, Eric.
Só uma observação: tome cuidado ao operar em conta real. O slippage e grandes operadores antecipando suas ordens podem causar prejuízos.
Boa sorte e boas negociações!
Fico feliz que você esteja verificando isso, Eric.
Só uma observação: tome cuidado ao operar em conta real. O slippage e grandes operadores antecipando suas ordens podem causar prejuízos.
Boa sorte e boas negociações!
Obrigado pelo aviso, você está certo. Vou testar primeiro e fazer os ajustes necessários.
Sou um grande fã do seu trabalho.
Olá. Artigo muito interessante. Tentei reproduzir os resultados, mas não aconteceu nada. O que estou deixando passar? Fiz o upload dos arquivos pairs-trading.mq5 e PairsTradingFunctions.mqh.
Obrigado
Os intervalos de 5 segundos são arbitrários neste momento. Poderia ser 1 segundo ou 10 segundos. A ideia é ter uma janela inicial para calcular a dispersão média e, eventualmente, outras estatísticas para o período coberto pelo CountQuotes. Em seguida, continuar atualizando uma janela móvel em intervalos de X segundos, independentemente do período de tempo.
Você está certo sobre as barras: não estou interessado nelas nem em mantê-las sincronizadas, pois me parece que são irrelevantes neste caso específico. Quase todas as negociações duram alguns segundos, sendo abertas e fechadas dentro da mesma barra.
Dito isso, o que você acha dessa abordagem? Ficou mais claro agora? Você vê alguma falha crítica que possa levar a cálculos errados, afetar o desempenho ou algo do tipo?
Então, todo o método com a iMA está incorreto, pois está vinculado às barras. Você precisa calcular a MA manualmente com amostras de 5 segundos.
- 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




Novo artigo Arbitragem Estatística via Reversão à Média no Trading de Pares: Superando o Mercado com Matemática foi publicado:
Este artigo não pretende, de forma alguma, reproduzir, ou pior ainda, "revelar o código secreto" da RenTech ou de Jim Simons. Como mencionado anteriormente, isso seria impossível para qualquer pessoa que não estivesse diretamente envolvida em suas operações. Trata-se de um esforço para compartilhar minha compreensão dos princípios gerais que sustentam seus modelos. Esses princípios podem servir de base para o sistema de negociação até mesmo do mais modesto trader de varejo. A diferença estará na escala dos resultados, que será proporcional à quantidade de recursos investidos no sistema e na operação.
Portanto, o que você lerá a seguir é resultado de pesquisas em livros, documentários em vídeo e comunidades especializadas na internet, combinadas com minha experiência pessoal de alguns anos no segmento financeiro (mais voltada ao lado dos negócios do que ao desenvolvimento). O que a RenTech executa é gigantesco, mas o que veremos aqui é uma versão em miniatura, digamos, uma figura de ação de um super-herói, uma maquete de um arranha-céu.
O objetivo é contribuir com um método de análise de baixo custo, leve e fácil de desenvolver, que possa ser testado e aprimorado pelo trader de varejo comum utilizando apenas as ferramentas já disponíveis na plataforma MetaTrader 5, executada em um notebook comum, possivelmente até mesmo um modelo de entrada. O método deve ser útil tanto para traders algorítmicos quanto para traders discricionários. Começaremos com a configuração mais simples possível, suficiente apenas para descrever o processo.
Após compreender os conceitos gerais por trás do modelo, construiremos um portfólio mínimo para a forma mais simples de arbitragem estatística, negociaremos esse portfólio de forma automatizada por meio de um Expert Advisor, faremos algumas observações sobre os resultados e, por fim, refletiremos sobre os próximos passos necessários. Espero que esta experiência ajude você a dar os primeiros passos com essa poderosa técnica de negociação e que, posteriormente, seja capaz de expandir esse conhecimento, adicionando outros símbolos ao portfólio e testando algoritmos além daquele descrito aqui, construindo gradualmente sua própria estratégia completa de Arbitragem Estatística (StatArb), adequada aos seus recursos e objetivos.
Autor: Jocimar Lopes
Autor: Jocimar Lopes