Estratégia de negociação quant quant
QuantStart.
Junte-se ao portal de membros privados da Quantcademy que atende à comunidade de comerciantes de varejo de varejo em rápido crescimento. Você encontrará um grupo de comerciantes quânticos bem informados e com a mesma mentalidade, prontos para responder às suas perguntas mais prementes sobre negociação de quant.
Confira meu ebook sobre o comércio de quant, onde eu ensino você como criar estratégias de negociação sistemáticas lucrativas com ferramentas Python, desde o início.
Dê uma olhada no meu novo ebook sobre estratégias de negociação avançadas usando análise de séries temporais, aprendizado de máquina e estatísticas bayesianas, com Python e R.
Por Michael Halls-Moore em 26 de março de 2013.
Neste artigo, vou apresentá-lo a alguns dos conceitos básicos que acompanham um sistema de negociação quantitativa de ponta a ponta. Espera-se que este post atenda a dois públicos-alvo. O primeiro será indivíduos tentando obter um emprego em um fundo como um comerciante quantitativo. O segundo será indivíduos que desejam tentar configurar seu próprio negócio de negociação algorítmica "de varejo".
Negociação quantitativa é uma área extremamente sofisticada de financiamento quantitativo. Pode levar uma quantidade significativa de tempo para obter o conhecimento necessário para passar uma entrevista ou construir suas próprias estratégias de negociação. Não só isso, mas exige uma ampla experiência em programação, pelo menos em uma linguagem como MATLAB, R ou Python. No entanto, à medida que a frequência comercial da estratégia aumenta, os aspectos tecnológicos tornam-se muito mais relevantes. Assim, estar familiarizado com o C / C ++ será de suma importância.
Um sistema de comércio quantitativo consiste em quatro componentes principais:
Estratégia Identificação - Encontrar uma estratégia, explorar uma vantagem e decidir sobre a freqüência comercial Estratégia Backtesting - Obter dados, analisar o desempenho da estratégia e remover os viés Sistema de Execução - Vinculação a uma corretora, automatizando a negociação e minimizando os custos de transação Gerenciamento de Riscos - Alocação de capital ideal " tamanho da aposta "/ critério de Kelly e psicologia de negociação.
Começaremos dando uma olhada em como identificar uma estratégia de negociação.
Identificação de Estratégia.
Todos os processos de negociação quantitativos começam com um período inicial de pesquisa. Este processo de pesquisa engloba encontrar uma estratégia, verificando se a estratégia se encaixa em um portfólio de outras estratégias que você pode estar executando, obtendo quaisquer dados necessários para testar a estratégia e tentando otimizar a estratégia para retornos mais altos e / ou menor risco. Você precisará avaliar seus próprios requisitos de capital se estiver executando a estratégia como um comerciante "varejista" e como qualquer custo de transação afetará a estratégia.
Contrariamente à crença popular, é realmente bastante direto encontrar estratégias lucrativas através de várias fontes públicas. Os acadêmicos publicam regularmente resultados teóricos de negociação (embora, em sua maioria, sejam brutos dos custos de transação). Os blogs de finanças quantitativas discutirão estratégias em detalhes. As revistas comerciais descreverão algumas das estratégias empregadas pelos fundos.
Você pode questionar por que os indivíduos e as empresas estão interessados em discutir suas estratégias lucrativas, especialmente quando sabem que outras pessoas "que estão ocupando o mercado" podem impedir que a estratégia funcione a longo prazo. A razão está no fato de que eles não costumam discutir os parâmetros exatos e os métodos de ajuste que eles realizaram. Essas otimizações são a chave para transformar uma estratégia relativamente medíocre em uma altamente rentável. Na verdade, uma das melhores maneiras de criar suas próprias estratégias únicas é encontrar métodos semelhantes e, em seguida, realizar seu próprio procedimento de otimização.
Aqui está uma pequena lista de lugares para começar a procurar idéias de estratégia:
Muitas das estratégias que você irá analisar se encaixarão nas categorias de reversão à média e tendência / momento. Uma estratégia de reversão média é aquela que tenta explorar o fato de que existe um termo de longo prazo em uma "série de preços" (como a disseminação entre dois ativos correlacionados) e que os desvios de curto prazo desse significado eventualmente reverterão. Uma estratégia de impulso tenta explorar a psicologia dos investidores e a grande estrutura de fundos ao "engatar" uma tendência de mercado, que pode aumentar o impulso em uma direção e seguir a tendência até reverter.
Outro aspecto extremamente importante da negociação quantitativa é a freqüência da estratégia de negociação. A negociação de baixa freqüência (LFT) geralmente se refere a qualquer estratégia que detenha ativos por mais tempo do que um dia de negociação. Correspondentemente, a negociação de alta frequência (HFT) geralmente se refere a uma estratégia que mantém ativos intraday. Ultra-high frequency trading (UHFT) refere-se a estratégias que possuem ativos na ordem de segundos e milissegundos. Como profissionais de varejo, HFT e UHFT certamente são possíveis, mas apenas com conhecimento detalhado da "pilha de tecnologia" e da dinâmica do livro de pedidos. Não vamos discutir esses aspectos em grande medida neste artigo introdutório.
Uma vez que uma estratégia, ou conjunto de estratégias, tenha sido identificada, ela agora precisa ser testada quanto à lucratividade nos dados históricos. Esse é o domínio do backtesting.
Teste de estratégia.
O objetivo do backtesting é fornecer evidências de que a estratégia identificada por meio do processo acima é lucrativa quando aplicada a dados históricos e fora da amostra. Isso define a expectativa de como a estratégia funcionará no "mundo real". No entanto, backtesting não é garantia de sucesso, por várias razões. É talvez a área mais sutil do comércio quantitativo, uma vez que implica inúmeros vieses, que devem ser cuidadosamente considerados e eliminados, tanto quanto possível. Discutiremos os tipos comuns de polarização, incluindo viés de antecipação, viés de sobrevivência e viés de otimização (também conhecido como viés de "espionagem de dados"). Outras áreas de importância no backtesting incluem disponibilidade e limpeza de dados históricos, contribuindo com custos de transação realistas e decidindo uma plataforma robusta de backtesting. Discutiremos os custos de transação ainda mais na seção Sistemas de Execução abaixo.
Uma vez que uma estratégia tenha sido identificada, é necessário obter os dados históricos através dos quais realizar testes e, talvez, refinamento. Há um número significativo de fornecedores de dados em todas as classes de ativos. Seus custos geralmente variam de acordo com a qualidade, profundidade e pontualidade dos dados. O ponto de partida tradicional para os comerciantes de quantia iniciais (pelo menos no nível de varejo) é usar o conjunto de dados gratuito do Yahoo Finance. Não vou me debruçar muito sobre fornecedores aqui, em vez disso, gostaria de me concentrar nas questões gerais ao lidar com conjuntos de dados históricos.
As principais preocupações com dados históricos incluem precisão / limpeza, viés de sobrevivência e ajuste para ações corporativas, como dividendos e divisões de ações:
Precisão pertence à qualidade geral dos dados - se contém algum erro. Às vezes, os erros podem ser fáceis de identificar, como com um filtro de pico, que detecta "picos" incorretos nos dados de séries temporais e os corrige. Em outras ocasiões, podem ser muito difíceis de detectar. Muitas vezes é necessário ter dois ou mais provedores e, em seguida, verificar todos os seus dados uns contra os outros. O viés de sobrevivência é muitas vezes uma "característica" de conjuntos de dados gratuitos ou baratos. Um conjunto de dados com viés de sobrevivência significa que ele não contém ativos que não estão mais sendo negociados. No caso de ações, isso significa ações de saída / falência. Esse viés significa que qualquer estratégia de negociação de ações testada em tal conjunto de dados provavelmente terá um desempenho melhor do que no "mundo real", já que os "vencedores" históricos já foram pré-selecionados. As ações corporativas incluem atividades "logísticas" realizadas pela empresa, que geralmente causam uma mudança na função de etapa do preço bruto, que não deve ser incluída no cálculo dos retornos do preço. Ajustes para dividendos e desdobramentos são os culpados comuns. Um processo conhecido como ajuste de volta é necessário para ser realizado em cada uma dessas ações. É preciso ter muito cuidado para não confundir um desdobramento de ações com um verdadeiro ajuste de retorno. Muitos traders foram pegos por uma ação corporativa!
Para realizar um procedimento de backtest, é necessário usar uma plataforma de software. Você tem a opção entre o software de back-test dedicado, como o Tradestation, uma plataforma numérica como Excel ou MATLAB ou uma implementação personalizada completa em uma linguagem de programação, como Python ou C ++. Eu não vou me demorar muito em Tradestation (ou similar), Excel ou MATLAB, como eu acredito em criar uma pilha de tecnologia interna completa (por razões descritas abaixo). Um dos benefícios de o fazer é que o software de backtest e o sistema de execução podem ser bem integrados, mesmo com estratégias estatísticas extremamente avançadas. Para as estratégias HFT em particular, é essencial usar uma implementação personalizada.
Ao fazer o backtest de um sistema, é preciso ser capaz de quantificar o desempenho do mesmo. As métricas "padrão da indústria" para estratégias quantitativas são o rebaixamento máximo e o Índice de Sharpe. A retirada máxima caracteriza a maior queda de pico a calha na curva de equidade da conta em um determinado período de tempo (geralmente anual). Isso é mais frequentemente citado como uma porcentagem. As estratégias de LFT tenderão a ter rebaixamentos maiores do que as estratégias de HFT, devido a vários fatores estatísticos. Um backtest histórico mostrará o último drawdown máximo, que é um bom guia para o futuro desempenho de drawdown da estratégia. A segunda medida é o Índice de Sharpe, que é definido heuristicamente como a média dos retornos excedentes dividida pelo desvio padrão desses retornos excedentes. Aqui, os retornos excedentes referem-se ao retorno da estratégia acima de um benchmark pré-determinado, como o S & P500 ou um Tesouro de 3 meses. Note-se que o retorno anualizado não é uma medida normalmente utilizada, pois não leva em conta a volatilidade da estratégia (ao contrário do Índice de Sharpe).
Uma vez que uma estratégia tenha sido testada novamente e seja considerada livre de vieses (na medida em que isso seja possível!), Com um bom Sharpe e rebaixamentos minimizados, é hora de construir um sistema de execução.
Sistemas de Execução.
Um sistema de execução é o meio pelo qual a lista de negócios gerados pela estratégia é enviada e executada pelo corretor. Apesar do fato de que a geração de comércio pode ser semi ou totalmente automatizada, o mecanismo de execução pode ser manual, semi-manual (ou seja, "um clique") ou totalmente automatizado. Para estratégias LFT, as técnicas manuais e semi-manuais são comuns. Para as estratégias de HFT, é necessário criar um mecanismo de execução totalmente automatizado, que muitas vezes estará intimamente ligado ao gerador de comércio (devido à interdependência entre estratégia e tecnologia).
As principais considerações ao criar um sistema de execução são a interface para a corretora, a minimização dos custos de transação (incluindo a comissão, o deslizamento e a propagação) e a divergência de desempenho do sistema ao vivo com o desempenho testado.
Há muitas maneiras de interagir com uma corretora. Eles variam de chamar seu corretor no telefone diretamente para uma interface de programação de aplicativos (API) de alto desempenho totalmente automatizada. O ideal é que você queira automatizar a execução de suas negociações o máximo possível. Isso liberta você para se concentrar em pesquisas futuras, além de permitir que você execute várias estratégias ou mesmo estratégias de maior freqüência (na verdade, o HFT é essencialmente impossível sem execução automática). O software comum de backtesting descrito acima, como MATLAB, Excel e Tradestation são bons para estratégias mais baixas e mais simples. No entanto, será necessário construir um sistema de execução interno escrito em uma linguagem de alto desempenho, como C ++, para fazer qualquer HFT real. Como uma anedota, no fundo em que eu costumava trabalhar, tínhamos um "loop de negociação" de 10 minutos, onde baixávamos novos dados de mercado a cada 10 minutos e depois executávamos negociações com base nessas informações no mesmo período de tempo. Isso estava usando um script Python otimizado. Para qualquer coisa que se aproxime de dados de minuto ou de segunda frequência, acredito que o C / C ++ seria mais ideal.
Em um fundo maior, muitas vezes não é o domínio do comerciante de quantificação para otimizar a execução. No entanto, em pequenas lojas ou empresas de HFT, os comerciantes são os executores e, portanto, um conjunto de habilidades muito mais amplo é geralmente desejável. Tenha em mente se você deseja ser empregado por um fundo. Suas habilidades de programação serão tão importantes, se não mais, do que suas estatísticas e talentos de econometria!
Outra questão importante que se enquadra na bandeira de execução é a redução de custos de transações. Geralmente, há três componentes nos custos de transação: Comissões (ou impostos), que são as taxas cobradas pela corretora, pela bolsa e pela SEC (ou órgão regulador governamental similar); escorregamento, que é a diferença entre o que você pretendia que seu pedido fosse preenchido versus o que foi realmente preenchido; spread, que é a diferença entre o preço de oferta / oferta da garantia negociada. Observe que o spread NÃO é constante e depende da liquidez atual (ou seja, disponibilidade de ordens de compra / venda) no mercado.
Os custos de transação podem fazer a diferença entre uma estratégia extremamente rentável com uma boa relação Sharpe e uma estratégia extremamente rentável com uma relação Sharpe terrível. Pode ser um desafio prever corretamente os custos de transação de um backtest. Dependendo da frequência da estratégia, você precisará de acesso a dados de troca histórica, que incluirão dados de marca para preços de lances / pedidos. Equipes completas de quants dedicam-se a otimizar a execução nos fundos maiores, por estas razões. Considere o cenário em que um fundo precisa descarregar uma quantidade substancial de negócios (dos quais os motivos para isso são muitos e variados!). Ao "despejar" tantas ações no mercado, elas rapidamente deprimirão o preço e podem não obter uma execução ideal. Daí, os algoritmos que os pedidos de "gotejamento de alimentação" no mercado existem, embora o fundo corra o risco de derrapagem. Além disso, outras estratégias "atacam" essas necessidades e podem explorar as ineficiências. Este é o domínio da arbitragem da estrutura do fundo.
A última grande questão para os sistemas de execução diz respeito à divergência de desempenho da estratégia do desempenho do backtested. Isso pode acontecer por vários motivos. Nós já discutimos o viés avançado e o viés de otimização em profundidade, ao considerar backtests. No entanto, algumas estratégias não facilitam a verificação desses preconceitos antes da implantação. Isso ocorre em HFT mais predominantemente. Pode haver bugs no sistema de execução, bem como a própria estratégia de negociação que não aparece em um backtest, mas aparece no live trading. O mercado pode estar sujeito a uma mudança de regime posterior à implantação de sua estratégia. Novos ambientes regulatórios, mudanças no sentimento do investidor e fenômenos macroeconômicos podem levar a divergências na forma como o mercado se comporta e, consequentemente, na rentabilidade de sua estratégia.
Gerenciamento de riscos.
A peça final para o enigma de negociação quantitativa é o processo de gerenciamento de riscos. "Risco" inclui todos os vieses anteriores que discutimos. Inclui o risco de tecnologia, como servidores co-localizados na troca de repente, desenvolvendo um mau funcionamento do disco rígido. Isso inclui o risco de corretagem, como o corretor se quebrando (não tão louco quanto parece, dado o susto recente com o MF Global!). Em suma, abrange quase tudo o que poderia interferir com a implementação comercial, dos quais existem muitas fontes. Livros inteiros são dedicados ao gerenciamento de riscos para estratégias quantitativas, então não tento elucidar todas as possíveis fontes de risco aqui.
O gerenciamento de riscos também abrange o que é conhecido como alocação ótima de capital, que é um ramo da teoria do portfólio. Esse é o meio pelo qual o capital é alocado a um conjunto de estratégias diferentes e aos negócios dentro dessas estratégias. É uma área complexa e depende de algumas matemáticas não triviais. O padrão da indústria pelo qual a alocação ótima de capital e a alavancagem das estratégias estão relacionadas é chamado de critério de Kelly. Como este é um artigo introdutório, não vou me alongar em seu cálculo. O critério de Kelly faz algumas suposições sobre a natureza estatística dos retornos, que muitas vezes não são verdadeiros nos mercados financeiros, de modo que os operadores geralmente são conservadores quando se trata da implementação.
Outro componente fundamental do gerenciamento de riscos é lidar com o próprio perfil psicológico. Existem muitos viés cognitivos que podem se aproximar da negociação. Embora isso seja certamente menos problemático com o comércio algorítmico se a estratégia for deixada sozinha! Um viés comum é o da aversão à perda em que uma posição perdedora não será encerrada devido à dor de ter que perceber uma perda. Da mesma forma, os lucros podem ser tomados muito cedo porque o medo de perder um lucro já obtido pode ser muito grande. Outro viés comum é conhecido como viés de recência. Isso se manifesta quando os operadores enfatizam demais os eventos recentes e não a longo prazo. Então, é claro, há o par clássico de preconceitos emocionais - medo e ganância. Estes podem muitas vezes levar a sub ou sobre-alavancagem, o que pode causar blow-up (ou seja, o título da conta indo para zero ou pior!) Ou lucros reduzidos.
Como pode ser visto, o comércio quantitativo é uma área extremamente complexa, embora muito interessante, de financiamento quantitativo. Eu literalmente arranhei a superfície do tópico neste artigo e já está ficando bastante longo! Livros e documentos inteiros foram escritos sobre questões para as quais eu só dei uma ou duas sentenças. Por essa razão, antes de se candidatar a empregos quantitativos em bolsa de fundos, é necessário realizar uma quantidade significativa de estudo de base. No mínimo, você precisará de uma ampla experiência em estatística e econometria, com muita experiência em implementação, através de uma linguagem de programação como MATLAB, Python ou R. Para estratégias mais sofisticadas no final de freqüência mais alta, seu conjunto de habilidades é provável para incluir modificação do kernel do Linux, C / C ++, programação de montagem e otimização de latência da rede.
Se você estiver interessado em tentar criar suas próprias estratégias de negociação algorítmica, minha primeira sugestão seria se programar bem. Minha preferência é construir o máximo possível de dados capturados, backtester de estratégia e sistema de execução. Se o seu próprio capital está em jogo, não dormiria melhor à noite sabendo que você testou completamente o seu sistema e está ciente de suas armadilhas e problemas específicos? Terceirizar isso para um fornecedor, enquanto potencialmente economiza tempo a curto prazo, pode ser extremamente caro a longo prazo.
Apenas iniciando o comércio quantitativo?
3 razões para se inscrever para a lista de e-mails QuantStart:
1. Quant Trading Lessons.
Você terá acesso instantâneo a um curso de e-mail gratuito de 10 partes, repleto de sugestões e dicas para ajudá-lo a começar a negociação quantitativa!
2. Todo o conteúdo mais recente.
Todas as semanas, vou enviar-lhe um envoltório de todas as atividades no QuantStart para que você nunca mais perca uma postagem novamente.
Real, dicas de negociação viáveis, sem tonturas.
QuantStart.
Junte-se ao portal de membros privados da Quantcademy que atende à comunidade de comerciantes de varejo de varejo em rápido crescimento. Você encontrará um grupo de comerciantes quânticos bem informados e com a mesma mentalidade, prontos para responder às suas perguntas mais prementes sobre negociação de quant.
Confira meu ebook sobre o comércio de quant, onde eu ensino você como criar estratégias de negociação sistemáticas lucrativas com ferramentas Python, desde o início.
Dê uma olhada no meu novo ebook sobre estratégias de negociação avançadas usando análise de séries temporais, aprendizado de máquina e estatísticas bayesianas, com Python e R.
Por Michael Halls-Moore em 21 de setembro de 2016.
Anteriormente, no QuantStart, consideramos os fundamentos matemáticos de State Space Models e Kalman Filters, bem como a aplicação da biblioteca pykalman a um par de ETFs para ajustar dinamicamente uma relação de hedge como base para uma estratégia de negociação de reversão média.
Neste artigo, vamos discutir uma estratégia de negociação originalmente devido a Ernest Chan (2012) [1] e testada por Aidan O'Mahony em Quantopian [2]. Usaremos a estrutura de teste de QSTrader de código aberto baseada em Python para implementar a estratégia. O QSTrader realizará o "levantamento pesado" do rastreamento de posição, o manuseio de portfólio e a ingestão de dados, enquanto nos concentramos exclusivamente no código que gera os sinais de negociação.
A Estratégia de Negociação.
A estratégia de negociação de pares é aplicada a um par de fundos negociados em bolsa (ETF) que acompanham o desempenho de diferentes títulos do Tesouro dos EUA. Eles são:
O objetivo é construir uma estratégia de reversão média desse par de ETFs.
O "spread" sintético entre TLT e IEI é a série temporal em que estamos realmente interessados em saudades ou em curto. O Filtro Kalman é usado para rastrear dinamicamente a relação de cobertura entre os dois, a fim de manter a propagação estacionária (e, portanto, reverter).
Para criar as regras de negociação, é necessário determinar quando o spread se afastou muito do valor esperado. Como determinamos o que é "muito longe"? Poderíamos utilizar um conjunto de valores absolutos fixos, mas estes deveriam ser determinados empiricamente. Isso introduziria outro parâmetro livre no sistema que exigiria otimização (e perigo adicional de superação).
Uma abordagem "sem parâmetros" para criar esses valores é considerar um múltiplo do desvio padrão da propagação e usá-los como limites. Por simplicidade, podemos definir o coeficiente do múltiplo como igual a um.
Portanto, podemos ir "long the spread" se o erro de previsão cair abaixo do desvio padrão negativo da propagação. Respectivamente podemos ir "curto o spread" se o erro de previsão exceder o desvio padrão positivo do spread. As regras de saída são simplesmente o oposto das regras de entrada.
A relação de hedge dinâmica é representada por um componente do vetor de estado oculto no tempo $ t $, $ \ theta_t $, que será denotado como $ \ theta ^ 0_t $. Este é o valor de inclinação "beta" que é bem conhecido por regressão linear.
"Longing the spread" aqui significa comprar (anseio) $ N $ unidades de TLT e venda (shorting) $ \ lfloor $, onde $ \ lfloor $ é o "andar" que representa o número inteiro mais alto inferior a $ x $. Este último é necessário, pois devemos transacionar um número inteiro de unidades dos ETFs. "Reduzir o spread" é o oposto disso. $ N $ controla o tamanho total da posição.
$ e_t $ representa o erro de previsão ou erro residual da previsão no tempo $ t $, enquanto $ Q_t $ representa a variação dessa previsão no momento $ t $.
Para completar, as regras são especificadas aqui:
$ e_t \ lt - \ sqrt $ - Longo spread: Vá longo $ N $ partes de TLT e vá curto $ \ lfloor $ unidades de IEI $ e_t \ ge - \ sqrt $ - Sair long: Feche todas as posições longas de TLT e IEI $ e_t \ gt \ sqrt $ - Curta o spread: Vá curto $ N $ partes de TLT e vá longo $ \ lfloor $ unidades de IEI $ e_t \ le \ sqrt $ - Sair curto: feche todas as posições curtas de TLT e IEI .
O papel do filtro Kalman é para nos ajudar a calcular $ \ theta_t $, bem como $ e_t $ e $ Q_t $. $ \ theta_t $ representa o vetor dos valores de interceptação e inclinação na regressão linear entre TLT e IEI no tempo $ t $. É estimado pelo filtro de Kalman. O erro de previsão / residual $ e_t = y_t - \ hat _t $ é a diferença entre o valor previsto de TLT hoje e a estimativa de TLT do filtro de Kalman hoje. $ Q_t $ é a variância das previsões e, portanto, $ \ sqrt $ é o desvio padrão da previsão.
A implementação da estratégia envolve as seguintes etapas:
Receba as barras de OHLCV do mercado diário para TLT e IEI Use o filtro recursivo "on-line" de Kalman para estimar o preço do TLT hoje com base nas observações de ontem do IEI. Tome a diferença entre a estimativa de TLT de TLM e o valor real, muitas vezes chamado de erro de previsão ou erro residual, que é uma medida de quanto a propagação de TLT e IEI se afasta do seu valor esperado Longa propagação quando o movimento está negativamente longe do valor esperado e, consequentemente, abre a propagação quando o movimento está positivamente longe do esperado valor Sair das posições longas e curtas quando a série reverte para o valor esperado.
Para executar esta estratégia, é necessário ter dados de preços do OHLCV para o período coberto por este backtest. Em particular, é necessário fazer o download do seguinte:
TLT - Para o período de 3 de agosto de 2009 a 1º de agosto de 2016 (link aqui) IEI Para o período de 3 de agosto de 2009 a 1º de agosto de 2016 (link aqui).
Esses dados precisarão ser colocados no diretório especificado pelo arquivo de configurações do QSTrader se você quiser replicar os resultados.
Python QSTrader Implementation.
Como o QSTrader lida com o rastreamento de posição, gerenciamento de portfólio, ingestão de dados e gerenciamento de pedidos, o único código que precisamos escrever envolve o próprio objeto Estratégia.
A Estratégia se comunica com o PortfolioHandler por meio da fila de eventos, fazendo uso dos objetos SignalEvent para fazer isso. Além disso, devemos importar a classe de estratégia abstrata base, AbstractStrategy.
Observe que na versão alfa atual do QSTrader também devemos importar a classe PriceParser. Isso é usado para multiplicar todos os preços na entrada por um grande múltiplo ($ 10 ^ 8 $) e executar aritmética inteira quando rastrear posições. Isso evita questões de arredondamento de ponto flutuante que podem se acumulam durante o longo período de um backtest. Devemos dividir todos os preços por PriceParser. PRICE_MULTIPLIER para obter os valores corretos:
O próximo passo é criar a classe KalmanPairsTradingStrategy. O trabalho desta classe é determinar quando criar objetos SignalEvent com base no BarEvent recebido das barras diárias OHLCV de TLT e IEI da Yahoo Finance.
Existem muitas maneiras diferentes de organizar essa classe. Optei por codificar todos os parâmetros da classe para maior clareza da explicação. Notavelmente eu fixei o valor de $ \ delta = 10 ^ $ e $ v_t = 10 ^ $. Eles representam a variação do ruído do sistema e do ruído de medição no modelo do filtro Kalman. Isso também pode ser implementado como um argumento de palavra-chave no __init__ construtor da classe. Tal abordagem permitiria otimização direta de parâmetros.
A primeira tarefa é definir o tempo e os membros investidos iguais a Nenhum, pois serão atualizados à medida que os dados de mercado sejam aceitos e os sinais comerciais produzidos. latest_prices é uma matriz de dois dos preços atuais de TLT e IEI, usados por conveniência através da classe.
O próximo conjunto de parâmetros está relacionado ao Filtro Kalman e é explicado detalhadamente nos dois artigos anteriores aqui e aqui.
O conjunto final de parâmetros inclui dias, usado para acompanhar quantos dias se passaram, bem como qty e cur_hedge_qty, usados para rastrear as quantidades absolutas de ETFs para comprar tanto para o lado longo quanto para o curto. Eu estabeleci isso para ser 2.000 unidades em um patrimônio da conta de 100.000 USD.
O próximo método _set_correct_time_and_price é um método "auxiliar" utilizado para garantir que o Filtro de Kalman tenha todas as informações de preço corretas disponíveis no ponto certo. Isso é necessário porque, em um sistema de backtest baseado em eventos, como as informações de mercado do QSTrader, chegam sequencialmente.
Podemos estar em uma situação no dia em que recebemos um preço por IEI, mas não por TFT. Portanto, devemos aguardar até que os eventos de mercado TFT e IEI tenham chegado do loop de backtest, através da fila de eventos. Na negociação ao vivo, isso não é um problema, uma vez que eles chegarão quase instantaneamente em comparação com o período de negociação de alguns dias. No entanto, em um backtest baseado em eventos, devemos aguardar a chegada dos dois preços antes de calcular a nova atualização do filtro de Kalman.
O código verifica essencialmente se o evento subsequente é para o dia atual. Se for, então o preço correto é adicionado à lista de preços mais recentes de TLT e IEI. Se é um novo dia, os preços mais recentes são reiniciados e os preços corretos são mais uma vez adicionados.
Este tipo de método de "limpeza doméstica" provavelmente será absorvido na base de código QSTrader no futuro, reduzindo a necessidade de escrever o código "boilerplate", mas, por enquanto, deve fazer parte da própria estratégia.
O núcleo da estratégia é realizado no método calcule_signals. Em primeiro lugar, estabelecemos os horários e os preços corretos (conforme descrito acima). Então, verificamos que temos os preços para TLT e IEI, em que ponto podemos considerar novos sinais comerciais.
$ y $ é ajustado igual ao preço mais recente para IEI, enquanto $ F $ é a matriz de observação que contém o preço mais recente para TLT, bem como um espaço reservado para representar a interceptação na regressão linear. O Filtro de Kalman é subsequentemente atualizado com estes últimos preços. Finalmente, calculamos o erro de previsão $ e_t $ e o desvio padrão das previsões, $ \ sqrt $. Vamos passar por esse código passo a passo, já que parece um pouco complicado.
A primeira tarefa é formar o valor escalar y e a matriz de observação F, contendo os preços de IEI e TLT respectivamente. Calculamos a matriz de variância-covariância R ou definimos para a matriz zero se ela ainda não foi inicializada. Subsequentemente, calculamos a nova previsão da observação, bem como o erro de previsão et.
Em seguida, calculamos a variância das previsões de observação Qt, bem como o desvio padrão sqrt_Qt. Usamos as regras de atualização derivadas aqui para obter a distribuição posterior dos estados theta, que contém a relação hedge / declive entre os dois preços:
Por fim, geramos os sinais de negociação com base nos valores de $ e_t $ e $ \ sqrt $. Para fazer isso, precisamos verificar qual o status "investido" - quer "longo", "curto" ou "Nenhum". Observe como precisamos ajustar a quantidade atual de hedge cur_hedge_qty quando formos longos ou curtos, pois a inclinação $ \ theta ^ 0_t $ está constantemente se ajustando no tempo:
Este é o código necessário para o objeto Estratégia. Também precisamos criar um arquivo de retorno para encapsular toda a nossa lógica de negociação e escolhas de classe. A versão específica é muito semelhante àquelas usadas no diretório de exemplos e substitui o patrimônio de 500.000 USD por 100.000 USD.
Ele também muda o FixedPositionSizer para o NaivePositionSizer. O último é usado para aceitar "ingenuamente" as sugestões de quantidades absolutas de unidades ETF para negociar conforme determinado na classe KalmanPairsTradingStrategy. Em um ambiente de produção, seria necessário ajustar isso dependendo dos objetivos de gerenciamento de risco do portfólio.
Aqui está o código completo para o kalman_qstrader_backtest. py:
Enquanto QSTrader estiver instalado corretamente e os dados tiverem sido baixados do Yahoo Finance, o código pode ser executado através do seguinte comando no terminal:
Graças aos esforços de muitos desenvolvedores voluntários, particularmente ryankennedyio e femtotrader, o código é bem otimizado para dados de barras do OHLCV e realiza o backtesting rapidamente.
Resultados da Estratégia.
Um dos recursos mais recentes a serem adicionados ao QSTrader é o da "lágrima" desenvolvida principalmente por nwillemse. Este recurso ainda está em estágio inicial de desenvolvimento, mas será demonstrado aqui.
Uma folha de rascunho é usada principalmente dentro de configurações institucionais como uma descrição de "um pager" de uma estratégia de negociação. A classe TearsheetStatistics na base de código QSTrader replica muitas das estatísticas encontradas em um relatório típico de desempenho de estratégia.
Os dois principais gráficos representam a curva de equidade e a porcentagem de redução, respectivamente. Abaixo estão os painéis de desempenho mensais e anuais. Finalmente, a curva de equidade, estatísticas de nível comercial e tempo são apresentadas:
Clique na imagem para ampliar.
A curva de equidade começa relativamente estável para o primeiro ano da estratégia, mas rapidamente se intensifica durante 2011. Durante o ano de 2012, a estratégia se torna significativamente mais volátil permanecendo "subaquática" até 2015 e atingindo uma porcentagem diária máxima de redução de 15,79%. O desempenho aumenta gradualmente a partir da redução máxima no final de 2013 até 2016.
A estratégia tem um CAGR de 8,73% com uma Ratio Sharpe de 0,75. Ele também tem uma longa duração máxima de remoção de 777 dias - em dois anos! Note-se que esta estratégia é realizada de forma bruta de custos de transação, de modo que a verdadeira performance provavelmente seria pior.
Próximos passos.
Há um grande trabalho de pesquisa necessário para transformar isso em uma estratégia rentável que nós implantaremos em uma configuração ao vivo. As possíveis avenidas de pesquisa incluem:
Otimização de parâmetros - Variando os parâmetros do Filtro de Kalman através de busca de grade de validação cruzada ou alguma forma de otimização de aprendizagem de máquina. No entanto, isso introduz a possibilidade distinta de superação de dados históricos. Seleção de ativos - A escolha de pares de ETFs adicionais ou alternativos ajudaria a agregar diversificação ao portfólio, mas aumenta a complexidade da estratégia, bem como a quantidade de negócios (e, portanto, custos de transação).
Em futuros artigos, consideraremos como realizar esses procedimentos para várias estratégias de negociação.
Referências.
Apenas iniciando o comércio quantitativo?
3 razões para se inscrever para a lista de e-mails QuantStart:
1. Quant Trading Lessons.
Você terá acesso instantâneo a um curso de e-mail gratuito de 10 partes, repleto de sugestões e dicas para ajudá-lo a começar a negociação quantitativa!
2. Todo o conteúdo mais recente.
Todas as semanas, vou enviar-lhe um envoltório de todas as atividades no QuantStart para que você nunca mais perca uma postagem novamente.
Real, dicas de negociação viáveis, sem tonturas.
O segredo para encontrar lucro na negociação de pares.
"Quants" é o nome de Wall Street para pesquisadores de mercado que usam análise quantitativa para desenvolver estratégias comerciais lucrativas. Em suma, um quant combina com os índices de preços e as relações matemáticas entre empresas ou veículos comerciais, a fim de divisar as oportunidades comerciais rentáveis. Durante a década de 1980, um grupo de quants trabalhando para Morgan Stanley atingiu o ouro com uma estratégia chamada comércio de pares. Investidores institucionais e mesas de negociação proprietárias em grandes bancos de investimento estão usando a técnica desde então, e muitos fizeram um lucro arrumado com a estratégia.
Raramente é no melhor interesse dos banqueiros de investimento e dos gestores de fundos mútuos compartilhar estratégias de negociação rentáveis com o público, de modo que o comércio de pares continuou sendo um segredo dos profissionais (e alguns indivíduos hábeis) até o advento da internet. O comércio on-line abriu a tampa em informações financeiras em tempo real e deu acesso aos novatos a todos os tipos de estratégias de investimento. Não demorou muito para o comércio de pares atrair investidores individuais e comerciantes de pequeno porte que buscam proteger sua exposição de risco aos movimentos do mercado mais amplo.
O objetivo é combinar dois veículos comerciais que estão altamente correlacionados, negociando um longo e o outro curto quando a relação de preço do par diverge o número "x" de desvios padrão - "x" é otimizado usando dados históricos. Se o par reverte para sua tendência média, um lucro é feito em uma ou ambas as posições.
O primeiro passo na concepção de um comércio de pares é encontrar dois estoques altamente correlacionados. Normalmente isso significa que as empresas estão na mesma indústria ou subsector, mas nem sempre. Por exemplo, os estoques de rastreamento de índices, como o QQQQ (Nasdaq 100) ou o SPY (S & amp; P 500), podem oferecer excelentes oportunidades de negociação de pares. Dois índices que, em geral, comercializam juntos são S & amp; P 500 e Dow Jones Utilities Average. Este gráfico de preços simples dos dois índices demonstra sua correlação:
Para o nosso exemplo, analisaremos duas empresas altamente correlacionadas: GM e Ford. Como ambos são fabricantes de automóveis americanos, seus estoques tendem a se mover juntos.
Abaixo está um gráfico semanal da relação de preço entre Ford e GM (calculado dividindo o preço das ações da Ford pelo preço das ações da GM). Essa relação de preço às vezes é chamada de "desempenho relativo" (não deve ser confundida com o índice de força relativa, algo completamente diferente). A linha branca central representa a relação preço médio nos últimos dois anos. As linhas amarelas e vermelhas representam um e dois desvios padrão da razão média, respectivamente.
No gráfico abaixo, o potencial de lucro pode ser identificado quando o índice de preços atinge seu primeiro ou segundo desvio. Quando ocorrem essas divergências lucrativas, é hora de assumir uma posição longa no desempenho inferior e uma posição curta no overachiever. A receita da venda curta pode ajudar a cobrir o custo da posição longa, tornando o comércio de pares barato para colocar. O tamanho da posição do par deve ser combinado com o valor do dólar em vez do número de ações; desta forma, um movimento de 5% em um é igual a um movimento de 5% na outra. Tal como acontece com todos os investimentos, existe o risco de que os negócios possam se mover para o vermelho, por isso é importante determinar os pontos de parada-perda otimizados antes de implementar o comércio de pares.
Um Exemplo Usando Contratos Futuros.
Um comércio de pares no mercado de futuros pode envolver uma arbitragem entre o contrato de futuros e a posição de caixa de um determinado índice. Quando o contrato de futuros fica à frente da posição de caixa, um comerciante pode tentar lucrar com o curto prazo do futuro e passar muito tempo no estoque de rastreamento do índice, esperando que eles se juntem em algum momento. Muitas vezes, os movimentos entre um índice ou commodity e seu contrato de futuros são tão apertados que os lucros são deixados apenas para os comerciantes mais rápidos - muitas vezes usando computadores para executar automaticamente enormes posições em um piscar de olhos.
Um Exemplo de Opções de Uso.
Evidência de Rentabilidade.
Os interessados na técnica de negociação de pares podem encontrar mais informações e instruções no livro Pairs Trading da Ganapathy Vidyamurthy: métodos quantitativos e análise, que você pode encontrar aqui.
Tutoriais.
Consulte também documentação, vídeos e bate-papo.
Jing é um desenvolvedor quantitativo na QuantConnect. Ela tem um mestrado em Matemática Financeira por John Hopkins e a anterior trabalhou no Northeast Securities fazendo pesquisas quantitativas.
Artigos recentes.
Pairs Trading & # 8211; Cópula vs Cointegração.
Em Tutoriais de Estratégia, publicado em 13 de junho de 2017.
Nós investigamos dois métodos de troca de pares e comparamos os resultados. O comércio de pares envolve investigar a estrutura de dependência entre dois ativos altamente correlacionados. Com o pressuposto de que a reversão média ocorrerá, posições longas ou curtas são inseridas na direção oposta quando há uma divergência de preço. Tipicamente, a distribuição do preço do ativo é modelada por uma distribuição Gaussiana de séries de retorno, mas a distribuição normal conjunta pode falhar em capturar algumas características-chave da dependência do preço dos pares de ações, como a dependência da cauda. Nós investigamos usando a teoria da cópula para identificar essas oportunidades de negociação.
Neste tutorial, vamos discutir o quadro básico de copula a partir da perspectiva matemática e explicar como aplicar a abordagem na negociação de pares. A implementação do algoritmo baseia-se no papel Trading estratégias com copulas [1] Stander Y, Marais D, Botha I. Estratégias de negociação com cópulas [J]. Revista de Ciências Econômicas e Financeiras, 2013, 6 (1): 83-107. Cópia Online do Stander Y, Marais D, Botha I (2013). Comparamos o desempenho da estratégia de negociação de pares de cópula com o método de negociação de pares de co-integração com base no papel estratégias de negociação de arbitragem estatística e negociação de alta freqüência de Hanson TA, Hall J R. (2012) [2] Hanson TA, Hall J R. Estratégias de negociação de arbitragem estatística e negociação de alta frequência [J]. 2012. A técnica de cointegração assume uma relação de cointegração entre as equidades pareadas para identificar oportunidades de negociação lucrativas. Os resultados empíricos sugerem que a estratégia baseada em cópulas é mais lucrativa do que as técnicas tradicionais de negociação de pares.
Estrutura da Copula.
1. Definição.
Dado um vetor aleatório, suas funções de distribuição cumulativa marginal (CDFs) são. Ao aplicar a transformada integral de probabilidade a cada componente, as distribuições marginais são uniformes (da Wikipédia).
Então a cópula de é definida como a função de distribuição cumulativa da junção, para a qual a distribuição marginal de cada variável U é uniforme como.
A função Copulas contém todas as características de dependência das distribuições marginais e descreve melhor a relação linear e não linear entre as variáveis, usando a probabilidade. Eles permitem que as distribuições marginais sejam modeladas independentemente umas das outras, e nenhuma suposição sobre o comportamento conjunto dos marginais é necessária. [3] Rad H, Baixo R K Y, Faff R. A rentabilidade das estratégias de negociação de pares: métodos de distância, cointegração e cópula [J]. Finanças quantitativas, 2016, 16 (10): 1541-1558.aplica on-line.
2. Cópulas Bivariadas.
Uma vez que esta pesquisa se concentra em cópulas bivariadas (para a troca de pares, temos duas variáveis aleatórias), algumas propriedades probabilísticas são especificadas.
Seja X e Y duas variáveis aleatórias com função de probabilidade cumulativa e. que são uniformemente distribuídos. Então a função da cópula é. Tomando a derivada parcial da função cópula sobre U e V daria a função de distribuição condicional da seguinte forma:
3. Cópulas Arquimedianas.
Existem muitas funções de cópula que nos permitem descrever as estruturas de dependência entre variáveis, além da suposição gaussiana. Aqui vamos nos concentrar três destes; as fórmulas Clayton, Gumbel e Frank cópula da classe de Arquimedes.
Cópulas arquimedianas [4] Mahfoud M, Michael M. Cópulas arquimedianas bivariadas: uma aplicação a dois índices do mercado de ações [J]. BMI Paper, 2012. A cópia on-line é baseada nas transformações de Laplace das funções de distribuição univariada. Eles são construídos por uma função de gerador particular [5] LANDGRAF N, SCHOLTUS K, DIRIS D R B. Casos baseados em copula de alta freqüência negociando em estoques Goldmine dos EUA [J]. 2016.
A função de densidade de probabilidade é:
Onde é o inverso da segunda derivada da função geradora.
Genest, MacKay (1986) [6] Genest, C. e MacKay, J., 1986, The Joy of Copulas: Distribuições Bivariadas com Margenes Uniformes, o Statistician Americano, 40, 280-283, provou que a relação entre a função geradora de cópula e a correlação de classificação de Kendall no caso bivariante pode ser dada por:
Então, podemos calcular facilmente o parâmetro nas copulas de Archimedean se conhecemos a medida de classificação de tau de Kendall e a função de gerador. Consulte o passo 3 para ver as fórmulas.
Parte I: Método Cópula.
Os ETFs têm vários setores de ações e classes de ativos que nos fornecem uma ampla gama de pares de candidatos comerciais. Nosso conjunto de dados consiste em dados diários dos ETFs negociados na NASDAQ ou na NYSE.
Utilizamos os primeiros 3 anos de dados para escolher o melhor par de cópula e ativo ("período de formação"). Em seguida, usamos um período de 5 anos de 2011 a 2017 ("período de negociação"), para executar a estratégia. Durante o período de negociação, usamos uma janela de 12 meses para obter os parâmetros da copula ("período de formação contínua").
Passo 1: Selecionando os estoques emparelhados.
O método geral de seleção de pares é baseado em análise tanto fundamental como estatística. [7] Jean Folger. Pares que negociam a cópia em linha do exemplo.
1) Monte uma lista de pares potencialmente relacionados.
Quaisquer pares aleatórios podem ser correlacionados. É possível que essas variáveis não estejam causalmente relacionadas entre si, mas por causa de uma relação espúria devido à coincidência ou à presença de um certo terço, fator invisível. Assim, é importante começarmos com uma lista de títulos que têm algo em comum. Para esta demonstração, escolhemos alguns dos ETFs mais líquidos negociados no Nasdaq ou na NYSE. O relacionamento para esses pares potencialmente relacionados pode ser devido a uma sobreposição de índice, setor ou classe de ativos. por exemplo. QQQ e XLK são dois ETFs que rastreiam os índices líderes do mercado.
2) Filtrar o par de negociação com correlação estatística.
Para determinar quais pares de ações incluir na análise, as correlações entre os pares de ETF pré-selecionados são analisadas. Abaixo estão três tipos de medidas de correlação que geralmente usamos em estatísticas:
= número de concordantes.
= número de discordantes.
= a diferença entre as classificações dos valores correspondentes e.
Podemos obter esses coeficientes em Python usando funções da biblioteca de estatísticas do SciPy. As correlações foram calculadas usando os retornos diários dos preços das ações durante o período de formação. Encontramos as 3 técnicas de correlação que dão aos ETFs pareados a mesma classificação de coeficientes de correlação. A correlação de Pearson pressupõe que ambas as variáveis devem ser normalmente distribuídas. Assim, aqui usamos a classificação de Kendall como a medida de correlação e escolhemos os pares com a maior correlação de classificação de Kendall para implementar a negociação de pares.
Recebemos o preço de fechamento histórico diário do nosso par ETF usando a função História e convertendo os preços em uma série de retorno de registro. Indique e denote a série histórica de preços de ações para ações xe ações y. Os retornos de log para o par de ETFs são dados por:
t = 1,2. n onde n é o número de dados de preço.
Passo 2: Estimativa de distribuições marginais de log-return.
Para construir a cópula, precisamos transformar a série log-return e dois valores uniformemente distribuídos uev. Isso pode ser feito estimando as funções de distribuição marginais de ee conectando os valores de retorno a uma função de distribuição. Como não fazemos suposições sobre a distribuição das duas séries de log-retorno, aqui usamos a função de distribuição empírica para abordar a distribuição marginal e. A função ECDF do Python da biblioteca statsmodel nos fornece o CDF empírico como uma função de etapa.
Etapa 3: Estimando os Parâmetros do Copula.
Como discutido acima, estimamos o parâmetro cópula teta pela relação entre a cópula e a medida de dependência tau de Kendall, para cada uma das cópulas de Arquimedes.
Etapa 4: Selecionando a melhor cópula de adaptação.
Uma vez que recebemos a estimativa de parâmetros para as funções da cópula, usamos os critérios da AIC para selecionar a cópula que fornece o melhor ajuste na inicialização do algoritmo.
onde é a função log-likelihood ek é o número de parâmetros, aqui k = 1.
As funções de densidade de cada função de copula são as seguintes:
A cópula que fornece o melhor ajuste é aquela que corresponde ao menor valor do critério da AIC. O par escolhido é "QQQ" & amp; "XLK".
Etapa 5: Gerando os Sinais de Negociação.
As funções da cópula incluem todas as informações sobre as estruturas de dependência de duas séries de retorno. Segundo Stander Y, Marais D, Botha I (2013) [8] Stander Y, Marais D, Botha I. Estratégias de negociação com copulas [J]. Revista de Ciências Econômicas e Financeiras, 2013, 6 (1): 83-107. Copia on-line, a copula ajustada é usada para derivar as bandas de confiança para a função de distribuição marginal condicional e, isto é, os índices de preços errados. Quando as observações do mercado ficam fora da faixa de confiança, é uma indicação de que a oportunidade de negociação de pares está disponível. Aqui escolhemos 95% como a faixa de confiança superior, 5% como a faixa de confiança mais baixa, conforme indicado no artigo. O nível de confiança foi selecionado com base em uma análise de back-test no documento que mostra que o uso de 95% parece levar a oportunidades comerciais apropriadas para serem identificadas.
Dado o retorno atual do estoque X e estoque Y, nós definimos os "índices de preços errados" são:
Para mais provas matemáticas, consulte Xie W, Wu Y (2013) [9] Xie W, Wu Y. Copula com base em estratégia de negociação de pares [C] // Asian Finance Association (AsFA) 2013 Conference. doi. 2013, 10.
As fórmulas de probabilidade condicional de cópulas bivariadas podem ser derivadas tomando derivadas parciais das funções da cópula mostradas na Tabela 1. Os resultados são os seguintes:
Após a seleção dos pares de negociação e das copas mais adequadas, seguimos as seguintes etapas para a negociação. Por favor, note que implementamos os Passos 1, 2, 3 e 4 no primeiro dia de cada mês usando os dados diários dos últimos 12 meses, o que significa que nossas funções empíricas de distribuição e parâmetros de cópula são atualizados uma vez por mês. Em resumo, a cada mês:
Durante o período de formação de 12 meses, os preços de fechamento diários são usados para calcular os retornos diários de log para o par de ETFs e, em seguida, calcular a correlação de classificação de Kendall. Estime as funções de distribuição marginal dos retornos de log de X e Y, que são ecdf_x e ecdf_y separadamente. Plugue o tau de Kendall nas funções de estimativa de parâmetros da cópula para obter o valor de theta. Execute a regressão linear nas duas séries de preços. O coeficiente é usado para determinar quantas ações do estoque X e Y para comprar e vender. Por exemplo, se o coeficiente for 2, para cada X ação comprada ou vendida, 2 unidades de Y serão vendidas ou compradas.
Finalmente durante o período de troca, cada dia convertem os retornos de hoje para você e v usando funções de distribuição empírica ecdf_x e ecdf_y. Depois disso, dois índices de precificação são calculados a cada dia de negociação usando a cópula estimada C. O algoritmo constrói posições curtas em X e posições longas em Y nos dias que e. Constrói posições curtas em Y e posições longas em X nos dias que e.
Parte II: Método de Cointegração.
Para o método de negociação de pares de cointegração, escolhemos o mesmo par de ETF "GLD" e amp; "DGL". Não há necessidade de escolher uma função de cópula, portanto há apenas um período de formação de 12 meses. O período de negociação é de 5 anos de janeiro de 2011 a maio de 2017.
Etapa 1: gere a série de propagação.
No início de cada mês, geramos a série de preços de log de dois ETFs com o fechamento diário. Em seguida, a série de spread é estimada usando a análise de regressão com base nos dados da série de preços de log.
Para as ações X e Y, corremos regressão linear sobre a série de preços de registro e obtemos o coeficiente β.
Etapa 2: calcular o limite.
Usando o desvio padrão do spread durante o período de formação, um limite de dois desvios-padrão é definido para a estratégia de negociação, conforme indicado no documento.
Etapa 3: configurar os sinais de negociação.
Em cada dia de negociação, entramos em uma negociação sempre que o spread se move mais do que dois desvios padrão de sua média. Por outras palavras, construímos posições curtas em X e posições longas em Y no dia em que se espalhou & gt; significa + 2 * std. Construímos posições curtas em Y e posições compradas em X no dia em que se espalhou & lt; mean-2 * std. O comércio é encerrado se o spread reverte para o seu equilíbrio (definido como menos da metade de um desvio padrão do spread zero).
O valor de média e desvio padrão é calculado a partir do período de formação contínua e será atualizado uma vez por mês.
Conclusão.
Em última análise, a negociação em pares pretende capturar a divergência de preços de dois ativos correlacionados por meio da reversão da média. Nossos resultados demonstram que a abordagem da cópula para a troca de pares é superior ao método de cointegração convencional, porque é baseada na probabilidade da estrutura de dependência, versus cointegração, que depende da variação de regressão linear simples da precificação normal. Encontramos através do teste do desempenho do método da cópula menos sensível aos parâmetros iniciais. Como o método de cointegração depende da distribuição padrão e os pares de ETFs tinham baixa volatilidade, havia poucas oportunidades de negociação.
Geralmente, os ETFs não são muito voláteis e, portanto, a reversão à média não oferece muitas oportunidades de negociação. Existem apenas 39 trades durante 5 anos para o método de cointegração.
Observa-se que o uso de copula em troca de pares oferece mais oportunidades de negociação, uma vez que não exige quaisquer pressupostos rígidos [10] Liew R Q, Wu Y. Pairs trading: A copula approach [J]. Journal of Derivatives & amp; Hedge Funds, 2013, 19 (1): 12-30. .
Backtest para método de copula.
Colaboradores.
Referências.
Olá Jing Wu. Obrigado por um excelente artigo. Eu tenho uma pergunta, mas pode ser porque estou incompreendendo o seu código Python (meu plano de fundo está em C #). A teoria afirma que a série de retorno de registro é dada por ln (P_x, t / P_x, t-1), no entanto, em seu código, parece que você está retornando apenas ln (P_x, t), na seguinte linha de código: np. log ([float (z) para z em close_price]). Por favor, deixe-me saber o que estou perdendo. Obrigado.
Você está falando sobre a cointegração? Teoricamente, ln (Pt) deve ser usado em vez disso, se o log retornar.
Desculpe, um erro de digitação para minha última resposta:
Ignore meu comentário / pergunta anterior, percebo o & # 8220; diff & # 8221; A função cuida deste & # 8211; Matemática 101
Oi Jing Wu, eu tenho backtested sua estratégia do período de 2010-01-01 a 2017-09-11. No entanto, em torno de setembro de 2012 em diante, as participações beta, líquidas e alavancagem parecem ser constantes. Existe alguma intuição para isso? Eu não acho que o código está quebrado, mas estou apenas curioso para ver qual seria a intuição de causar tal resultado.
Isso pode porque não há novo comércio naquele momento. Para negociação de pares, isso significa que a condição de negociação não é desencadeada.
Muito obrigado por esta publicação muito interessante. É muito útil ter todo o raciocínio e fórmula tão claramente explicados e sintetizados.
Eu tenho 2 observações sobre o algo embora:
+ o ajuste de Gumbel feito no conjunto de calibração [2006 - 2009] não funciona. Isso não impede o algoritmo, e o último escolhe a cópula de Frank no final, mas só decide usar o AIC para Frank e Clayton. A razão pela qual o ajuste em Gumbel não funciona vem de 2 divisões por 0, devido aos valores u ou v.
+ um post acima menciona o beta muito alto do algoritmo e eu concordo que é surpreendente para uma estratégia de par. This high beta is particularly stricking when simply comparing the algo results and the S&P. Local corrections of US Stocks in Q3-2015 and Q1-2016 are visible on the copula strat as if the latter was simply long equities. I took the liberty to compute the day by day net position in each component of the selected pair [i. e. XLK and QQQ]. It appears that from end 2010 until the end the algo is LONG BOTH ETFs and barely changes the position. I might be totally wrong but I think this explains the beta, the net holdings and the suddenly dropping size of trades.
Hi Jing Wu, I have backtested your strategy but I don’t seem to grasp how exactly the positions are made. According to Trade tab only small quantities of underlying assets are traded.
My reasoning is this. Suppose I have $100 000 and there’s a signal from the copulas to buy A (currently prices at $10) and short B (currently priced at $20) . Do I buy 10 000 shares of A and short 5 000 shares of B?
How long will I be in this position? Till the end of the day/next day or until another signal occurs? Obrigado.
Hi Fraty, yes here I allocate 40% capital in each stock. But the ratio of stock A and B are based on the regression coefficient of the historical price of two assets, not just the price at the trading day. The position is changed until another signal occurs.
Hello Jing, Thank you ver much for your excellent article and for presenting the method applying Copula to pair trading 🙂
Regarding the trading signals you mentioned that “we construct short positions in X and long positions in Y on the day that spread>mean+2*std. We construct short positions in Y and long positions in X on the day that spread<mean-2*std."
Since we are regressing Y on X, then if the "normalized"spread, (spread-mean)/sd, is wider than two standard deviations, this means that Y is out-performing X and hence we would want to short the spread, meaning we go short on Y (which is the outperforming stock) and Long X (which is the undersperforming stock).
Hello I am a student study pair trading, and I’m only beginner,
I wanna Run your code and understand the logic, but I can’t see.
all of your code.. if you mind ask you send to me complete code.
I’m not so good at english because I’m Korean Sorry about that !
I hope that your reply. obrigado.
The code is at the end of the page. Just click the ‘code’ tab of the attached backtest or clone the algorithm you will see the code.
Bom trabalho. Sometimes we might be interested in when and why the assumption of mean reversion holds. It would be tempting to introduce new ideas to confirm mean reversion property at trading times. Your work is amazing, hope it better.
Ótimo post. I am not a python programmer so am pulling my hair out converting this to MATLAB. But, in the following lines of code it looks to me like the order of calculating the log returns are different:
1. logreturn[self. ticker[j]] = np. diff(np. log([float(z) for z in close]))
2. return_x = np. log(float(self. price_list[self. syl[0]][-1]/self. price_list[self. syl[0]][-2]))
In (1) the log of the price is differenced but in (2) the difference is logged?
(1) and (2) are the same because log(A/B) = log(A) – log(B)
Can you please explain what the following lines do?
% Convert the two returns to uniform values u and v using the empirical distribution functions.
Presumably it is not simply: ecdf_x, ecdf_y = ECDF(x), ECDF(y)?
Why does the coupla algo only trade QQQ/XLK? I ran a backtest from 01/01/2006 and only this pair trades.
Taking the discussion to the uses of Copula in other areas (I’m an options trader)….wikipedia says: “While the application of copulas in credit has gone through popularity as well as misfortune during the global financial crisis of 2008–2009,[29] it is arguably an industry standard model for pricing CDOs. Copulas have also been applied to other asset classes as a flexible tool in analyzing multi-asset derivative products. The first such application outside credit was to use a copula to construct an implied basket volatility surface,[30] taking into account the volatility smile of basket components. Copulas have since gained popularity in pricing and risk management [31] of options on multi-assets in the presence of volatility smile/skew,” Does this mean constructing a volatility smile for say SPX options using the volatility smiles of its components? This is a problem I’ve faced numerous times as a position manager. Obrigado.
Can this copula approach to pairs trading work on a much shorter time frame….. say 3-5 minute chart where you are looking for much higher frequency of trades?
Par Estratégia de Negociação [MODELO EXCEL]
Par Trading.
A negociação de par é uma estratégia de negociação que corresponde a uma posição longa em um estoque / ativo com uma posição de compensação em outro estoque / ativo que está relacionado estatisticamente. O intercâmbio de pares é uma estratégia de reversão média onde apostamos que os preços reverterão para suas tendências históricas.
Quem pode usar este modelo Excel?
Pessoas interessadas em negociação algorítmica e Quant, aqueles que querem aprender sobre arbitragem estatística.
Como isso ajuda?
Este modelo de excel irá ajudá-lo a:
Aprenda a aplicação da reversão média Compreender o comércio de pares Otimizar os parâmetros de negociação Compreender os retornos significativos da arbitragem estatística.
Por que você deve baixar o modelo de negociação?
Como a lógica de negociação é codificada nas células da folha, você pode melhorar a compreensão, baixando e analisando os arquivos em sua própria conveniência. Não só isso, você pode brincar com os números para obter melhores resultados. Você pode encontrar parâmetros adequados que proporcionem maiores lucros do que o especificado no artigo.
Explicação do modelo.
Neste exemplo, consideramos os pares MSCI e Nifty, pois ambos são índices do mercado de ações. Implementamos estratégia de reversão média nesse par. A reversão média é uma propriedade de séries temporais estacionárias. Uma vez que afirmamos que o par que escolhemos significa reverter, devemos testar se segue a estacionança. O diagrama a seguir mostra o gráfico da relação logarítmica de Nifty para MSCI. No início, isso parece ser significante reverter com um valor médio de 2.088, mas usamos Dicky Fuller Test para testar se ele é estacionário com uma significância estatística. Os resultados da tabela de resultados da Cointegração mostram que a série de preços é estacionária e, portanto, significa reverter. A estatística do teste de Dicky Fuller e um valor de p significativamente baixo (& lt; 0,05) confirmam nossa suposição. Tendo determinado que a reversão média é válida para o par escolhido, procedemos com a especificação de suposições e parâmetros de entrada.
Premissas.
Para fins de simplificação, ignoramos os spreads de oferta. Os preços estão disponíveis no intervalo de 5 minutos e nós negociamos somente no preço de fechamento de 5 minutos. Uma vez que este é um dado discreto, o desligamento da posição acontece no final da vela, isto é, ao preço disponível no final de 5 minutos. Apenas a sessão regular (T) é negociada. Os custos de transação são de US $ 0,375 para Nifty e US $ 1,10 para MSCI. A margem para cada comércio é de US $ 990 (aproximado de US $ 1000).
Parâmetros de entrada.
Observe que todos os valores dos parâmetros de entrada mencionados abaixo são configuráveis.
Média de 10 velas (uma vela = a cada 5 minutos de preço) é considerada. Um "z" pontuação de +2 é considerado para compra e -2 para venda. Uma queda de $ 100 e um limite de lucro de $ 200 é definido. O tamanho da ordem para negociação MSCI é de 50 (1 lote) e para Nifty é de 6 (3 lotes).
Os dados de mercado e os parâmetros de negociação estão incluídos na folha de cálculo a partir da 12 ª fila em diante. Então, quando a referência é feita para a coluna D, deve ser óbvio que a referência começa a partir de D12 em diante.
Explicação das colunas no modelo do Excel.
A coluna C representa o preço do MSCI.
A coluna D representa o preço Nifty.
A coluna E é a relação logarítmica de Nifty para MSCI.
A coluna F calcula a média de 10 velas. Como 10 valores são necessários para os cálculos médios, não há valores de F12 a F22. A fórmula = IF (A23 & gt; $ C $ 3, MÉDIA (ÍNDICE ($ E $ 13: $ E $ 1358, A23- $ C $ 3): E22), & # 8220; & # 8221;) significa que a média só deve ser calculada se a amostra de dados disponível for superior a 10 (ou seja, o valor especificado na célula C3), caso contrário, a célula deve estar em branco. Considere a célula F22. A célula correspondente A22 tem um valor de 10. Como A22 & gt; $ C $ 3 falha, a entrada nessa célula está em branco. A próxima célula F23 tem um valor, pois A23 & gt; $ C $ 3 é verdade. O próximo bit da fórmula.
MÉDIA (ÍNDICE ($ E $ 13: $ E $ 1358, A23- $ C $ 3): E22) calcula o valor médio das últimas 10 (como mencionadas na célula C3) velas de dados da coluna E. Uma lógica semelhante é válida para a coluna G onde o desvio padrão é calculado. O resultado "z" é calculado na coluna H. A fórmula para calcular o escore "z" é z = (x -) / (σ). Aqui x é a amostra (Coluna E), é o valor médio (Coluna F) e σ é o desvio padrão (Coluna G).
A coluna I representa o sinal de negociação. Conforme mencionado nos parâmetros de entrada, se a pontuação "z" for inferior a -2 nós compramos e, se for superior a +2 nós vendemos. Quando dizemos comprar, temos uma posição longa em 3 lotes de Nifty e temos uma posição curta em 1 lote de MSCI. Da mesma forma, quando dizemos que vendemos, temos uma posição longa em 1 lote de MSCI e temos uma posição curta em 3 lotes de Nifty, colocando assim a posição. Temos uma posição aberta o tempo todo. Para entender o que isso significa, considere dois sinais comerciais "comprar" e "vender". Para o sinal de "compra", como explicado anteriormente, compramos 3 lotes de futuro Nifty e um curto 1% de MSCI futuro. Uma vez que a posição é tomada, rastreamos a posição usando a coluna Status, ou seja, a coluna M. Em cada nova fila enquanto a posição continua, verificamos se a perda de parada (como mencionado na célula C6) ou o lucro obtido (como mencionado na célula C7) é atingido. A perda de stop é dado o valor de USD -100, ou seja, a perda de US $ 100 e o lucro obtido recebe o valor de USD 200 nas células C6 e C7, respectivamente. Enquanto a posição não atinge qualquer perda de parada ou lucro, continuamos com esse comércio e ignoramos todos os sinais que aparecem na coluna I. Uma vez que o comércio atinge a perda de parada ou o lucro, novamente começamos a olhar os sinais na coluna Eu e abrir uma nova posição comercial assim que tivermos o sinal de Compra ou Venda na coluna I.
A coluna M representa os sinais de negociação com base nos parâmetros de entrada especificados. Coluna Eu já tenho sinais de negociação e M nos fala sobre o status de nossa posição de negociação, ou seja, nós somos longos ou curtos ou reservamos os lucros ou saímos na parada de perda. Se o comércio não for encerrado, transportamos a posição para a próxima vela, repetindo o valor da coluna de status na vela anterior. Se o movimento do preço ocorrer de forma a quebrar o TP ou SL determinado, nós colocamos nossa posição, denotando-a assim por "TP" e "SL", respectivamente.
A coluna L representa Mark to Market. Especifica a posição da carteira no final do período de tempo. Conforme especificado nos parâmetros de entrada, trocamos 1 lote de MSCI e 3 lotes de Nifty. Então, quando trocamos nossa posição, a diferença de preço apropriada (dependendo da compra ou venda) é multiplicada pelo número de lotes.
A coluna N representa o status de lucro / perda do comércio. P / L é calculado apenas quando nós colocamos a nossa posição. A coluna O calcula o lucro acumulado.
A tabela de saída possui algumas métricas de desempenho tabuladas. A perda de todas as negociações de perda é de US $ 3699 e o lucro de negociações que atingiram TP é de US $ 9280. Então, o total de P / L é de US $ 9280- $ 3699 = $ 5581. Os negócios de perda são os negócios que resultaram na perda de dinheiro nas posições de negociação. Negociações rentáveis são os negócios bem sucedidos que acabam por ganhar causa. O lucro médio é a proporção do lucro total para o número total de negócios. O lucro médio líquido é calculado depois de subtrair os custos de transação, que somam US $ 91,77.
Pairs Trading with Stocks.
The pairs trading concept is straight forward - find 2 stocks which have prices that moved historically together and bet on convergence when the spread between them widens. This relative arbitrage should exhibit positive return expectation as there is usually high probability of convergence. The basic strategy (as mentioned in Gatev, Goetzmann, Rouwenhorst, 2006) has become popular therefore these simple rules are still profitable but profits are slowly eroding. Lots of new improvements in strategy therefore emerged in last few years (we could mention for example Do, Faff, 2010).
Razão fundamental.
As prices in pair of stocks were closely cointegrated in past, there is high probability that those two securities share common sources of fundamental return correlations. A temporary shock could move one stock out of the common price band which presents statistical arbitrage opportunity. The universe of pairs is continuously updated which ensures that pairs which no longer move in synchronicity are removed from trading, and only pairs with high probability of convergence remains.
pairs trading, equity long short, arbitrage.
Estratégia de negociação simples.
Illiquid stocks are removed from the investment universe. Cumulative total return index is then created for each stock (dividends included) and starting price during formation period is set to $1 (price normalization). Pairs are formed over a twelve-month period (formation period) and are then traded in next six-month period (trading period). The matching partner for each stock is found by looking for the security that minimizes the sum of squared deviations between two normalized price series. Top 20 pairs with the smallest historical distance measure are then traded and long-short position is opened when pair prices have diverged by two standard deviations and the position is closed when prices revert back.
Papel Fonte.
Gatev, Goetzmann, Rouwenhorst: Pairs Trading: Performance of a Relative Value Arbitrage Rule.
We test a Wall Street investment strategy, pairs trading, with daily data over 1962-2002. Stocks are matched into pairs with minimum distance between normalized historical prices. A simple trading rule yields average annualized excess returns of up to 11 percent for selffinancing portfolios of pairs. The profits typically exceed conservative transaction costs estimates. Bootstrap results suggest that the pairs effect differs from previously-documented reversal profits. Robustness of the excess returns indicates that pairs trading profits from temporary mis-pricing of close substitutes. We link the profitability to the presence of a common factor in the returns, different from conventional risk measures.
Outros documentos.
Do, Faff: Does simple pairs trading still work?
We re-examine and enhance evidence on ‘pairs trading’ most prominently documented in US markets by Gatev, Goeztmann and Rouwenhorst (1999, 2006). Extending their original analysis to June 2008, we confirm a continuation of the declining trend in profitability. However, contrary to popular belief, we find that the rise in hedge fund activity is not a plausible explanation for the decline. Instead, we observe that the underlying convergence properties are less reliable - there is an increased probability that a pair of close substitutes over the past 12 months are no longer close substitutes in the subsequent half year. This fragility in the Law of One Price dynamics reflects increased fundamental risks, or uncertainty in market perception of relative values of the paired securities. Nevertheless, we still find more than half the selected pairs are either profitable or very profitable. Moreover, we demonstrate some success in identifying these successful cases by augmenting the original pair matching method to incorporate the time series aspect of historical prices, and/or by focusing on industries with a high level of homogeneity.
This paper tests asset pricing implications of the investor attention shift hypothesis proposed in recent theoretical work. Our objective is to directly assess how the dynamics of investor inattention affect the relative pricing efficiency of linked assets. We create a novel proxy for investor distraction in the time series and explore its impact in a promising and so far widely neglected setup: Stock pairs trading (Gatev(2006)), a popular proprietary relative value arbitrage approach. Relying on almost 50 years of daily data for the US stock market as well as on evidence from eight major international stock markets, we provide broad and robust evidence for substantial distraction effects. For instance, the average one-month return on long-short US stock pairs that open on high distraction days is about twice as high as the return on pairs that open on low distraction days. A number of conceptually quite diverse tests further lend support to the idea of time-varying investor attention being an important source of friction in financial markets.
We show that an equity pairs trading strategy generates large and significant abnormal returns. We then examine the economic drivers of this strategy. First, we find that this return is not driven purely by the short-term reversal of returns. Second, we decompose the pair-wise stock return correlations into those that can be explained by common factors (such as size, book-to-market, and accruals) and those that cannot. We find that the pairs correlations explainable by common factors drive most of the pairs trading returns. Third, the value-weighted profits of pairs trading are higher in firms in a richer information environment, and our trading strategy performs poorly in the recent liquidity crisis, suggesting that the pairs trading profits are not primarily driven by the delay in information diffusion and liquidity provision. Finally, consistent with the adaptive market efficiency theory, the return to this simple pairs trading strategy has diminished over time.
This article examines an equity pairs trading strategy using daily, weekly and monthly European share price data over the period 1998-2007. The authors shows that when stocks are matched into pairs with minimum distance between normalised historical prices, a simple trading rule based on volatility between these prices yields annualised raw returns of up to 15% for the weekly data frequency. Bootstrap results suggest returns from the strategy are attributable to skill rather than luck, while insignificant beta coefficients provide evidence that this is a market neutral strategy. Resistance of the strategy’s returns to reversal factors suggest pairs trading is fundamentally different to previously documented reversal strategies based on concepts such as mean reversion.
The relative value arbitrage rule ("pairs trading") is a well-established speculative investment strategy on financial markets, dating back to the 1980s. Based on relative mispricing between a pair of stocks, pairs trading strategies create excess returns if the spread between two normally comoving stocks is away from its equilibrium path and is assumed to be mean reverting. To overcome the problem of detecting temporary in contrast to longer lasting deviations from spread equilibrium, this paper bridges the literature on Markov regime-switching and the scientific work on statistical arbitrage.
Statistical arbitrage strategies, such as pairs trading and its generalizations, rely on the construction of mean - reverting spreads with a certain degree of predictability. This paper applies cointegration tests to identify stocks to be used in pairs trading strategies. In addition to estimating long-term equilibrium and to model the resulting residuals, we select stock pairs to compose a pairs trading portfolio based on an indicator of profitability evaluated in-sample. The profitability of the strategy is assessed with data from the São Paulo stock exchange ranging from January 2005 to October 2012. Empirical analysis shows that the proposed strategy exhibit excess returns of 16.38% per year, Sharpe Ratio of 1.34 and low correlation with the market.
In this paper we provide the first comprehensive UK evidence on the profitability of the pairs trading strategy. Evidence suggests that the strategy performs well in crisis periods, so we control for both risk and liquidity to assess performance. To evaluate the effect of market frictions on the strategy we use several estimates of transaction costs. We also present evidence on the performance of the strategy in different economic and market states. Our results show that pairs trading portfolios typically have little exposure to known equity risk factors such as market, size, value, momentum and reversal. However, a model controlling for risk and liquidity explains a far larger proportion of returns. Incorporating different assumptions about bid ask spreads leads to reductions in performance estimates. When we allow for time-varying risk exposures, conditioned on the contemporaneous equity market return, risk adjusted returns are generally not significantly different from zero.
An exploratory study is conducted to assess the persistence of cointegration among U. S. equities. In other words, if a pair of equities is found to be cointegrated in one period, is it likely that it will be found to be cointegrated in the subsequent period? An examination is performed of pairs formed from constituents of the S&P 500 during each of the calendar years 2002-2012, comprising over 860,000 pairs in total. The evidence does not support the hypothesis that cointegration is a persistent property.
We perform a large-scale empirical analysis of pairs trading, a popular relative-value arbitrage approach. We start with a cross-country study of 34 international stock markets and uncover that abnormal returns are a persistent phenomenon. We then construct a comprehensive U. S. data set to explore the sources behind the puzzling profitability in more depth. Our findings indicate that the type of news leading to pair divergence, the dynamics of investor attention as well as the dynamics of limits to arbitrage are important drivers of the strategy's time-varying performance.
Motivated by the industry practice of pairs trading, we study the optimal timing strategies for trading a mean-reverting price spread. An optimal double stopping problem is formulated to analyze the timing to start and subsequently liquidate the position subject to transaction costs. Modeling the price spread by an Ornstein-Uhlenbeck process, we apply a probabilistic methodology and rigorously derive the optimal price intervals for market entry and exit. As an extension, we incorporate a stop-loss constraint to limit the maximum loss. We show that the entry region is characterized by a bounded price interval that lies strictly above the stop-loss level. As for the exit timing, a higher stop-loss level always implies a lower optimal take-profit level. Both analytical and numerical results are provided to illustrate the dependence of timing strategies on model parameters such as transaction cost and stop-loss level.
Pairs trading is a well-acknowledged speculative investment strategy that is widely used in the financial markets, and distance method is the most commonly implemented pairs trading strategy by traders and hedge funds. However, this approach, which can be seen as a standard linear correlation analysis, is only able to fully describe the dependency structure between stocks under the assumption of multivariate normal returns. To overcome this limitation, we propose a new pairs trading strategy using copula modeling technique. Copula allows separate estimation of the marginal distributions of stock returns as well as their joint dependency structure. Thus, the proposed new strategy, which is based on the estimated optimal dependency structure and marginal distributions, can identify relative undervalued or overvalued positions with more accuracy and confidence. Hence, it is deemed to generate more trading opportunities and profits. A simple one-pair-one-cycle example is used to illustrate the advantages of the proposed method. Besides, a large sample analysis using the utility industry data is provided as well. The overall empirical results have verified that the proposed strategy can generate higher profits compared with the conventional distance method. We argue that the proposed trading strategy can be considered as a generalization of the conventional pairs trading strategy.
This paper tests the Pairs Trading strategy as proposed by Gatev, Goetzmann and Rouwenhorts (2006). It investigates if the profitability of pairs opening after an above average volume day in one of the assets are distinct in returns characteristics and if the introduction of a limit on the days the pair is open can improve the strategy returns. Results suggest that indeed pairs opening after a single sided shock are less profitable and that a limitation on the numbers of days a pair is open can significantly improve the profitability by as much as 30 basis points per month.
We examine and compare the performance of three different pairs trading strategies - the distance cointegration, and copula methods - on the US equity market from 1962 to 2014 using a time-varying series of trading costs. Using various performance measures, we conclude that cointegration strategy performs as well as the distance method. However, the copula method shows relatively poor performance. Particularly, the distance, cointegration, and copula methods show a mean monthly excess return of 36, 33, and 5 bps after transaction costs and 88, 83, and 43 bps before transaction costs. In recent years, the distance and cointegration methods have presented less trading opportunities whereas this frequency remains stable for the copula method. While liquidity factor is negatively correlated to all strategies' returns, we find no evidence of their correlation to market excess returns. All strategies show positive and significant alphas after accounting for various risk-factors.
We analyse statistical arbitrage with pairs trading assuming that the spread of two assets follows a mean-reverting Ornstein-Uhlenbeck process around a long-term equilibrium level. Within this framework, we prove the existence of statistical arbitrage and derive optimality conditions for trading the spread portfolio. In the existence of uncertainty in the long-term mean and volatility of the spread, statistical arbitrage is no longer guaranteed. However, the asymptotic probability of loss can be bounded as a function of the standard error of the model parameters. The proposed framework provides a new filtering technique for identifying best pairs in the market. Empirical examples are provided for three pairs of stocks from the NYSE.
We assume that the drift in the returns of asset prices consists of an idiosyncratic component and a common component given by a co-integration factor. We analyze the optimal investment strategy for an agent who maximizes expected utility of wealth by dynamically trading in these assets. The optimal solution is constructed explicitly in closed-form and is shown to be affine in the co-integration factor. We calibrate the model to three assets traded on the Nasdaq exchange (Google, Facebook, and Amazon) and employ simulations to showcase the strategy's performance.
This paper investigates how the two technical drivers, volatility and correlation, influence the algorithm of the investment strategy pairs trading. We model and empirically prove the connection between the rule-based pair selection, the trading algorithm, and the total return. Our insights explain why pairs trading profitability varies across markets, industries, macroeconomic circumstances, and firm characteristics. Furthermore, we critically evaluate the power of the traditionally applied pair selection procedure. In the US market, we find risk-adjusted monthly returns of up to 76bp for portfolios, which are double sorted on volatility and correlation between 1990 and 2014. Our findings are robust to liquidity issues, bid-ask spread, and limits of arbitrage.
Pairs trading strategy’s return depends on the divergence/convergence movements of a selected pair of stocks’ prices. However, if the stable long term relationship of the stocks changes, price will not converge and the trade opened after divergence will close with losses. We propose a new model that, including companies’ fundamental variables that measure idiosyncratic factors, anticipates the changes in this relationship and rejects those trades triggered by a divergence produced by fundamental changes in one of the companies. The model is tested on European stocks and the results obtained outperform those of the base distance model.
We examine a new method for identifying close economic substitutes in the context of relative value arbitrage. We show that close economic substitutes correspond to a special case of cointegration whereby individual prices have approximately the same exposure to a common nonstationary factor. A metric of closeness constructed from the cointegrating relation strongly predicts both convergence probability and profitability in cointegration-based pairs trading. From 1962 to 2013, a strategy of trading cointegrated pairs of near-parity generates 58 bps per month after trading costs, experiences a 71% convergence probability and outperforms a strategy of pairs selected by minimized price distances.
Pairs trading is a venerable trading strategy. There is agreement that it worked fine in the far past. But it is less clear if it still profitable today. In this working paper the universe of eligible pairs is defined by the holdings of a given ETF. It is shown that the stocks must be from ETFs which select high-quality, low-volatility stocks. The usual closeness measure presented in the literature performs poor. The paper presents a simple and clearly superior alternative based on zero-crossings. The strategy performs with the correct universe and the improved pairs selection rule before trading costs quite fine. It depends on the assumed trading costs if this is also in real-trading life the case.
This paper uses S&P100 data to examine the performance of pairs trading portfolios that are sorted by the significance level of cointegration between their constituents. We find that portfolios that are formed with highly cointegrated pairs, named as "supercointegrated", yield the best performance reflecting a positive relationship between the level of cointegration and pairs trading profitability. The supercointegrated portfolio also shows superior out-of-sample performance to the simple buy-and-hold investments on the market portfolio in terms of Sharpe ratio. We link the time-varying risk of the pairs trading strategy to aggregated market volatility. Moreover we report a positive risk-return relationship between the strategy and market volatility, which is enhanced during the bear market. Our results remain valid when applying the strategy to European index data.
Comments
Post a Comment