English Русский 中文 Deutsch 日本語
preview
Pairs Trade

Pairs Trade

MetaTrader 5Negociação | 21 fevereiro 2024, 09:48
355 0
Aleksej Poljakov
Aleksej Poljakov

Introdução

Atualmente, existe uma enorme quantidade de estratégias de trading para todos os gostos. Todas elas são direcionadas para a obtenção de lucro. No entanto, essa obtenção de lucro de uma forma ou de outra está ligada aos riscos que acompanham o trading — quanto maior o lucro esperado, maiores são os riscos. E aqui surge uma questão válida: é possível reduzir os riscos de trading ao mínimo, obtendo um lucro pequeno, mas estável? O pairs trade satisfaz essa condição.

O pairs trade é uma das variedades da arbitragem estatística, que foi inicialmente proposta por Jerry Bamberger na década de 1980. Esta estratégia de trading é neutra em relação ao mercado, o que permite aos traders obterem lucro praticamente em qualquer condição de mercado. Na base do pairs trade está a suposição de que as características de instrumentos financeiros interrelacionados, após um desvio temporário, retornarão aos seus valores médios históricos. Assim, o pairs trade se reduz a algumas ações simples:

  • Identificar a divergência da relação estatística de dois instrumentos financeiros;

  • Abrir posições neles;

  • Fechar as posições quando as características dos instrumentos retornarem à média.

Apesar de sua aparente simplicidade, o pairs trade não é um método fácil e sem riscos de extrair lucros. O mercado está em constante mudança, e as relações estatísticas podem se alterar, enquanto qualquer movimento improvável de preço no mercado pode levar a perdas significativas. Trabalhar com esse tipo de situações adversas requer a adesão estrita às regras da estratégia de trading e ao gerenciamento de riscos.


Correlação

As estratégias de pairs trade são mais frequentemente construídas com base na correlação de dois instrumentos financeiros. A mudança de preços de vários pares de moedas pode estar interrelacionada. Por exemplo, o preço de um símbolo muda na mesma direção que o preço de outro símbolo. Nesse caso, existe uma correlação positiva entre esses símbolos. Com uma correlação negativa, os preços se movem em direções opostas.

A estratégia de pairs trade baseada em correlação é muito simples. Primeiramente, o trader deve escolher dois instrumentos financeiros com forte correlação. Depois, ele precisa analisar a mudança da correlação com base em dados históricos. Essa análise lhe permite ao trader tomar uma decisão fundamentada sobre entrar em uma operação.

Para o trading, os pares de moedas com correlação negativa são de particular interesse. Por exemplo, este é o caso do movimento de EURUSD e USDCHF.

Para avaliar a correlação, é mais frequentemente utilizado o coeficiente de correlação de Pearson. Este coeficiente é calculado pela fórmula:

Tal cálculo do coeficiente de correlação sempre dá uma estimativa tendenciosa. Em amostras pequenas, a estimativa obtida r pode diferir significativamente do valor exato da correlação. Para reduzir esse erro, é possível usar a correção de Olkin-Pratt:

Vamos tentar desenvolver as regras de uma estratégia de trading baseada na correlação.

Primeiramente, é necessário escolher dois pares de moedas adequados. Para isso, o valor médio da correlação histórica desses pares deve ser negativa. Quanto menor, melhor.

Em seguida, precisamos coletar estatísticas com valores de correlação amostral sobre o histórico desses pares de moedas. Essa estatística será necessária para o cálculo dos sinais.

No próximo passo, é preciso estabelecer um nível de ativação. Se a correlação atual atingir esse nível, então o Expert Advisor pode abrir posições. Esse nível pode ser definido explicitamente. Por exemplo, -0.95, -0.9, etc. Mas também é possível aplicar outra abordagem. Podemos pegar os valores históricos de correlação e ordená-los em ordem crescente. E como nível de ativação, tomar o limite dos 10% menores valores.

Antes de abrir posições, é necessário determinar seu tipo. Se o preço atual de um par de moedas estiver abaixo da média móvel, então uma posição de Compra (Buy) é aberta para esse símbolo. E, inversamente, se o preço estiver acima da média, então uma posição de Venda (Sell) é aberta. Além disso, as posições abertas devem ser em direções opostas. Essa condição deve ser obrigatoriamente cumprida, caso contrário, a abertura de posições é proibida.

Adicionalmente, os volumes das posições em diferentes instrumentos devem estar interrelacionados. Suponha que PointValue seja o preço de um ponto na moeda do depósito. Então, os volumes das posições devem ser tais que a seguinte igualdade seja cumprida.

Nesse caso, um movimento de preço de igual número de pontos resultará em um resultado aproximadamente igual para cada um dos instrumentos.

Além disso, adicionei ao Expert Advisor mais dois níveis. A cruzamento do primeiro nível indica a necessidade de mover as posições para o ponto de equilíbrio (break-even). Seu valor é igual a 33%. E o cruzamento do segundo nível leva ao fechamento de todas as posições. O nível de fechamento é igual a 67%, mas não mais que zero. A alteração desses níveis pode influenciar significativamente a rentabilidade do Expert Advisor.

Vamos testar o Expert Advisor que opera de acordo com essas regras. Aqui está a variação do saldo para os pares de moedas EURUSD e USDCHF no período de 01.01.2021 a 30.06.2023.

O resultado é bom. No entanto, o coeficiente de correlação de Pearson tem algumas peculiaridades. Sua aplicação é justificada apenas se os valores das séries temporais tiverem uma distribuição normal. Além disso, esse coeficiente é significativamente influenciado por valores atípicos. Ademais, a correlação de Pearson pode reconhecer apenas relações lineares. Para ilustrar essas peculiaridades, é melhor usar o quarteto de Anscombe.

No primeiro gráfico, vemos uma correlação linear sem surpresas. No segundo conjunto de dados, há uma dependência não linear, cuja força o coeficiente de Pearson não conseguiu detectar. No terceiro conjunto, o coeficiente de correlação é influenciado por um forte valor atípico. No quarto gráfico, a correlação está ausente, mas ainda assim, até mesmo um único valor é suficiente para gerar uma correlação bastante forte.

Da essas deficiências, o coeficiente de correlação de postos de Spearman está livre. Ele capta bem uma dependência crescente ou decrescente constante entre duas séries temporais. Para a correlação de Spearman, não importa a lei segundo a qual os dados de entrada são distribuídos. O coeficiente de Pearson funciona bem apenas com dados distribuídos de acordo com a lei normal. Já o coeficiente de Spearman lida facilmente com qualquer outra distribuição ou sua mistura.

Além disso, o coeficiente de correlação de Spearman pode revelar dependências não lineares. Por exemplo, uma série temporal está sob a influência de uma tendência linear, enquanto a outra está sob uma tendência exponencial. O coeficiente de Spearman lida facilmente com tal situação. Já o coeficiente de Pearson não conseguirá revelar completamente a força da interrelação dessas séries.

O cálculo do coeficiente de correlação de postos de Spearman pode ser feito da seguinte maneira. Primeiramente, precisamos criar dois arrays. Em cada array, registraremos o valor do preço e o índice da barra para ambos os símbolos.

index
EURUSD
USDCHF
0 1.06994
 0.89312
1 1.06980
0.89342
2 1.07058
0.89277
3 1.07045
0.89294
4 1.07089

0.89283

Agora, precisamos ordenar ambos os arrays em ordem crescente. Após a ordenação, os valores dos preços não são mais de nosso interesse. O que nos interessa são apenas os valores dos índices, tanto os que estavam antes da ordenação quanto os atuais. Na tabela, os números entre parênteses são os índices dos preços que eram antes da ordenação dos arrays.

cur. index EURUSD USDCHF
0 1.06980   (1) 0.89277   (2)
1 1.06994   (0) 0.89283   (4)
2 1.07045  (3) 0.89294   (3)
3 1.07058   (2) 0.89312   (0)
4 1.07089   (4) 0.89342   (1)

Agora, precisamos encontrar as diferenças entre os índices atuais para preços com os mesmos índices antes da ordenação. Por exemplo, vamos encontrar a diferença D0. Primeiro, encontramos os preços cujo índice era igual a zero. São 1.06994 EURUSD e 0.89312 USDCHF. Os índices atuais desses preços são 1 e 3, respectivamente. Então, a diferença D0 = 1 – 3 = -2.

A seguir, encontramos a diferença D1. O índice atual do preço 1.06980 EURUSD é 0, e o preço 0.89342 USDCHF é 4. D1 = 0 – 4 = -4.

Da mesma maneira, calculam-se as demais diferenças.

Depois de calcularmos todas as diferenças, podemos prosseguir com o cálculo do coeficiente de correlação de postos de Spearman:

À primeira vista, a diferença entre os coeficientes de Pearson e Spearman parece pequena.

Mas ela pode ter um impacto significativo nos resultados de trading. O teste do Expert Advisor com os mesmos parâmetros mostrou um melhor resultado em comparação com o coeficiente de Pearson.

Deve-se lembrar que a estratégia de trading utilizada pode ser significativamente aprimorada. Assim, em vez de simplesmente mover posições para o ponto de equilíbrio, pode-se usar um trailing stop. E a aplicação de stop loss e take profit ajudará a reduzir a carga sobre o depósito.

É importante prestar muita atenção à escolha do período de correlação. Dela depende o estilo de trading. Um período de correlação pequeno indica negociação de scalping, enquanto um período grande indica negociação de tendência.


Cointegração

Na década de 1980, Clive Granger propôs o conceito de cointegração de séries temporais. Se existe cointegração, então primeiro deve haver integração. Vamos ver o que isso significa.

Suponhamos que temos uma série temporal cujos valores mudam de acordo com a seguinte lei:

Onde c é uma constante, e rand é um número aleatório. A equação parece simples, mas com ela podemos obter trajetórias de movimento interessantes. Para gerar números aleatórios, usaremos a biblioteca Statistics. Nesta biblioteca, temos todas as distribuições necessárias com as quais podemos gerar séries temporais integradas.

Por exemplo, este é o aspecto de um movimento no qual a componente aleatória segue uma distribuição uniforme.

Parece um gráfico de preço? Agora, vamos substituir a distribuição uniforme por uma normal. Obteremos um gráfico mais parecido com o movimento do preço.

Mas ainda falta algo. Os gaps são bastante comuns nos gráficos de preço. Vamos, como uma variável aleatória, pegar a soma de uma distribuição normal e uma distribuição de Cauchy. É esta distribuição que responde por cisnes negros, corvos brancos e outras surpresas. Como resultado, obtemos uma série temporal como esta.

Agora nos perguntamos se toda essa integração pode ser usada de alguma forma na negociação. Suponha que temos duas séries integradas, cujos incrementos aleatórios seguem a mesma lei, mesmo com parâmetros diferentes. Se encontrarmos a diferença entre essas séries, podemos esperar que os componentes aleatórios de ambas as séries se compensem mutuamente. Então, poderemos identificar relações de longo prazo entre essas séries, e as próprias séries serão cointegradas.

Na prática, o comportamento dos pares de moedas cointegrados pode ser monitorado usando a diferença:

Neste caso, os coeficientes k e m devem ser escolhidos de tal forma que os valores de d[i] se desviem o mínimo possível de zero. Seus valores podem ser estimados usando o método dos mínimos quadrados pelas fórmulas:

Esta é a aparência da mudança na diferença entre o USDCHF e o USDCAD.

O valor dessa diferença não é limitado nem por cima, nem por baixo. E seu comportamento no histórico é o critério principal na escolha de pares cointegrados. Essa diferença deve oscilar em torno de zero e mudar de sinal. Quanto maior o número dessas mudanças de sinal no histórico, melhor.

A estratégia de trading em pares cointegrados é simples e, em muitos aspectos, lembra a estratégia de correlação. A abertura de duas posições em direções opostas ocorre quando a diferença entre dois instrumentos atinge um valor máximo ou mínimo. Essas posições devem ser fechadas quando a diferença se iguala a zero.

Esse Expert Advisor, operando nos pares de moedas USDCHF e USDCAD, durante o período de 01.01.2021 a 30.06.2023, mostrou tal mudança no saldo.

Para melhorar a qualidade do trading desse Expert Advisor, as mesmas recomendações aplicáveis a um expert que opera usando correlação são válidas.


Considerações finais

Como você pode ver, as estratégias de pairs trade são bastante viáveis. Mas exigem um estudo cuidadoso e aperfeiçoamento para aplicação prática.

Os seguintes programas foram usados durante a escrita deste artigo:

Nome Tipo Características
sPearson script iPeriod - período de correlação
Analisa as correlações históricas para todos os símbolos disponíveis na Observação do Mercado. Ao final do trabalho, salva os valores médios de correlação na pasta Files
iPearson
indicador SecSymbol - segundo símbolo
iPeriod - período de correlação
Mostra o coeficiente de correlação de Pearson atual
sSpearman script Analisa a correlação histórica de Spearman
iSpearman indicador Mostra a correlação atual de Spearman
EA Correlation EA Expert Advisor que negocia com base nas correlações de Pearson e Spearman
Integrated Series script Script que demonstra as possibilidades de construção de séries temporais integradas. Possibilidade de usar diferentes distribuições
sCointegration script Script que avalia a possível cointegração de pares de moedas
iCointegration indicador Indicador mostra a diferença de cointegração entre dois pares de moedas
EA Cointegration EA Expert Advisor que utiliza a cointegração de pares de moedas para negociação


Traduzido do russo pela MetaQuotes Ltd.
Artigo original: https://www.mql5.com/ru/articles/13338

Arquivos anexados |
sPearson.mq5 (2.33 KB)
iPearson.mq5 (3.14 KB)
sSpearman.mq5 (2.43 KB)
iSpearman.mq5 (3.3 KB)
EA_Correlation.mq5 (21.48 KB)
sCointegration.mq5 (2.29 KB)
iCointegration.mq5 (3.03 KB)
Linguagem de programação visual DRAKON — ferramenta de comunicação Desenvolvedor/Cliente MQL Linguagem de programação visual DRAKON — ferramenta de comunicação Desenvolvedor/Cliente MQL
DRAKON é uma linguagem de programação visual especialmente desenvolvida para facilitar a interação entre especialistas de diferentes áreas (biólogos, físicos, engenheiros...) com programadores em projetos espaciais russos (por exemplo, na criação do complexo "Buran"). Neste artigo, vou falar sobre como o DRAKON torna a criação de algoritmos acessível e intuitivamente compreensível, mesmo para quem nunca teve contato com código, e também como é mais fácil quer seja para o cliente explicar suas ideias ao encomendar robôs de negociação quer seja para o programador cometer menos erros em funções complexas.
Modelos prontos para integrar indicadores nos Expert Advisors (Parte 2): Indicadores de volume e Bill Williams Modelos prontos para integrar indicadores nos Expert Advisors (Parte 2): Indicadores de volume e Bill Williams
Neste artigo, examinaremos os indicadores padrão das categorias Volumes e Bill Williams. Criaremos modelos prontos a serem usados em Expert Advisors, modelos esses que incluirão: declaração e configuração de parâmetros, inicialização/desinicialização de indicadores e recuperação de dados/sinais a partir de buffers de indicador em EAs.
Teoria das Categorias em MQL5 (Parte 20): autoatenção e transformador Teoria das Categorias em MQL5 (Parte 20): autoatenção e transformador
Vamos nos afastar um pouco de nossos tópicos mais comuns e analisar uma parte do algoritmo do ChatGPT. Ele possui algumas semelhanças ou conceitos emprestados das transformações naturais? Vamos tentar responder a essas e outras perguntas usando nosso código no formato de classe de sinal.
Desenvolvimento de um Cliente MQTT para o MetaTrader 5: Metodologia TDD (Parte 2) Desenvolvimento de um Cliente MQTT para o MetaTrader 5: Metodologia TDD (Parte 2)
Este artigo faz parte de uma série que descreve as etapas do desenvolvimento de um cliente MQL5 nativo para o protocolo MQTT. Nesta parte, descrevemos como está organizando nosso código, os primeiros arquivos de cabeçalho e classes, e como escrever testes. Este artigo também inclui notas breves sobre o desenvolvimento orientado por testes (Test-Driven Development) e sua aplicação neste projeto.